diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..a8392555 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "composer" + directory: "/" + schedule: + interval: "daily" diff --git a/composer.json b/composer.json index bd04e50a..62f86b4c 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ "issues": "https://github.com/sifophp/SIFO/issues" }, "require": { - "php": ">=7.2", + "php": "^7.4", "geoip/geoip": "^1.17", "neutron/sphinxsearch-api": "^2.0", "phpmailer/phpmailer": "^6.0", @@ -34,7 +34,10 @@ }, "require-dev": { "phpcompatibility/php-compatibility": "^9.3", + "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^5.0", + "predis/predis": "^1.1", + "rector/rector": "^0.12.9", "symfony/var-dumper": "^3.2" }, "scripts": { diff --git a/constants.php b/constants.php new file mode 100644 index 00000000..bb1a0e17 --- /dev/null +++ b/constants.php @@ -0,0 +1,55 @@ +Bad $rs in %s. Connection or SQL invalid. Try using $connection->debug=true;

'); +define('ADODB_FETCH_NUM', 1); +define('ADODB_FETCH_ASSOC', 2); +define('ADODB_FETCH_BOTH', 3); +define('ADODB_FETCH_DEFAULT', 0); +define('ADODB_OPT_HIGH', 2); +define('ADODB_OPT_LOW', 1); +define('ADODB_ASSOC_CASE',0); +define('ADODB_PHPVER',74000); +define('ADODB_EXTENSION', '.php'); +define('ADODB_TABLE_REGEX','([]0-9a-z_\:\"\`\.\@\[-]*)'); + + +define('PEAR_ERROR_RETURN', 1); +define('SMARTY_RESOURCE_CHAR_SET', 'utf-8'); + +define('IFX_SCROLL',1); + +define('TIMESTAMP_FIRST_YEAR',0); + +define("DB_ERROR", -1); +define("DB_ERROR_SYNTAX", -2); +define("DB_ERROR_CONSTRAINT", -3); +define("DB_ERROR_NOT_FOUND", -4); +define("DB_ERROR_ALREADY_EXISTS", -5); +define("DB_ERROR_UNSUPPORTED", -6); +define("DB_ERROR_MISMATCH", -7); +define("DB_ERROR_INVALID", -8); +define("DB_ERROR_NOT_CAPABLE", -9); +define("DB_ERROR_TRUNCATED", -10); +define("DB_ERROR_INVALID_NUMBER", -11); +define("DB_ERROR_INVALID_DATE", -12); +define("DB_ERROR_DIVZERO", -13); +define("DB_ERROR_NODBSELECTED", -14); +define("DB_ERROR_CANNOT_CREATE", -15); +define("DB_ERROR_CANNOT_DELETE", -16); +define("DB_ERROR_CANNOT_DROP", -17); +define("DB_ERROR_NOSUCHTABLE", -18); +define("DB_ERROR_NOSUCHFIELD", -19); +define("DB_ERROR_NEED_MORE_DATA", -20); +define("DB_ERROR_NOT_LOCKED", -21); +define("DB_ERROR_VALUE_COUNT_ON_ROW", -22); +define("DB_ERROR_INVALID_DSN", -23); +define("DB_ERROR_CONNECT_FAILED", -24); +define("DB_ERROR_EXTENSION_NOT_FOUND", -25); +define("DB_ERROR_NOSUCHDB", -30); +define("DB_ERROR_ACCESS_VIOLATION", -26); +define("DB_ERROR_DEADLOCK", -27); +define("DB_ERROR_STATEMENT_TIMEOUT", -28); +define("DB_ERROR_SERIALIZATION_FAILURE", -29); +define('DB_FETCHMODE_ASSOC', 2); diff --git a/instances/default/config/configuration_files.config.php b/instances/default/config/configuration_files.config.php new file mode 100644 index 00000000..7c19642b --- /dev/null +++ b/instances/default/config/configuration_files.config.php @@ -0,0 +1,3 @@ + - - Pheature coding standard + + SifoPHP coding standard diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon new file mode 100644 index 00000000..d06c263a --- /dev/null +++ b/phpstan-baseline.neon @@ -0,0 +1,502 @@ +parameters: + ignoreErrors: + - + message: "#^Undefined variable\\: \\$list$#" + count: 2 + path: src/Php-Sql-Parser/php-sql-parser.php + + - + message: "#^Variable \\$token_category might not be defined\\.$#" + count: 1 + path: src/Php-Sql-Parser/php-sql-parser.php + + - + message: "#^Instantiated class ImagickThumb not found\\.$#" + count: 1 + path: src/PhpThumb/ThumbLib.inc.php + + - + message: "#^Result of method S3\\:\\:__construct\\(\\) \\(void\\) is used\\.$#" + count: 1 + path: src/Sifo/AmazonS3.php + + - + message: "#^Call to an undefined method Sifo\\\\Database\\:\\:close\\(\\)\\.$#" + count: 1 + path: src/Sifo/Database.php + + - + message: "#^Result of method Sifo\\\\Search\\:\\:__construct\\(\\) \\(void\\) is used\\.$#" + count: 1 + path: src/Sifo/Debug/Search.php + + - + message: "#^Call to an undefined method Sifo\\\\FilterFilesByExtensionIterator\\:\\:getBaseName\\(\\)\\.$#" + count: 1 + path: src/Sifo/DirectoryList.php + + - + message: "#^Result of method Sifo\\\\Filter\\:\\:__construct\\(\\) \\(void\\) is used\\.$#" + count: 1 + path: src/Sifo/Filter.php + + - + message: "#^Access to an undefined property Sifo\\\\JsPacker\\:\\:\\$instance_static_host\\.$#" + count: 1 + path: src/Sifo/JsPacker.php + + - + message: "#^Access to an undefined property Sifo\\\\JsGenerator\\:\\:\\$instance_static_host\\.$#" + count: 1 + path: src/Sifo/MediaGenerator.php + + - + message: "#^Access to an undefined property Sifo\\\\MediaGenerator\\:\\:\\$hashes_file\\.$#" + count: 3 + path: src/Sifo/MediaGenerator.php + + - + message: "#^Access to an undefined property Sifo\\\\MediaGenerator\\:\\:\\$instance_static_host\\.$#" + count: 1 + path: src/Sifo/MediaGenerator.php + + - + message: "#^Access to an undefined property Sifo\\\\MediaPacker\\:\\:\\$instance_static_host\\.$#" + count: 1 + path: src/Sifo/MediaPacker.php + + - + message: "#^Access to an undefined property Sifo\\\\MediaPacker\\:\\:\\$working_instance\\.$#" + count: 1 + path: src/Sifo/MediaPacker.php + + - + message: "#^Call to an undefined method Sifo\\\\MediaPacker\\:\\:getBasePathConfig\\(\\)\\.$#" + count: 1 + path: src/Sifo/MediaPacker.php + + - + message: "#^Using static outside of class scope\\.$#" + count: 2 + path: src/Smarty-sifo-plugins/function.email_obfuscator.php + + - + message: "#^Using static outside of class scope\\.$#" + count: 2 + path: src/Twig-sifo-plugins/function.email_obfuscator.php + + - + message: "#^Call to static method normalize\\(\\) on an unknown class Verticalroot\\\\UrlsManagement\\.$#" + count: 1 + path: src/Twig-sifo-plugins/function.filln.php + + - + message: "#^Class ADODB_Active_Record referenced with incorrect case\\: ADOdb_Active_Record\\.$#" + count: 2 + path: src/adodb5/adodb-active-record.inc.php + + - + message: "#^Variable \\$valarr might not be defined\\.$#" + count: 1 + path: src/adodb5/adodb-active-record.inc.php + + - + message: "#^Call to an undefined method ADODB_Active_Record\\:\\:outp_throw\\(\\)\\.$#" + count: 1 + path: src/adodb5/adodb-active-recordx.inc.php + + - + message: "#^Variable \\$indices might not be defined\\.$#" + count: 1 + path: src/adodb5/adodb-active-recordx.inc.php + + - + message: "#^Variable \\$valarr might not be defined\\.$#" + count: 1 + path: src/adodb5/adodb-active-recordx.inc.php + + - + message: "#^Access to an undefined property ADODB_DataDict\\:\\:\\$upperName\\.$#" + count: 8 + path: src/adodb5/adodb-datadict.inc.php + + - + message: "#^Variable \\$ty might not be defined\\.$#" + count: 10 + path: src/adodb5/adodb-datadict.inc.php + + - + message: "#^Access to an undefined property ADODB_Exception\\:\\:\\$msg\\.$#" + count: 1 + path: src/adodb5/adodb-exceptions.inc.php + + - + message: "#^Function adodb_movenext not found\\.$#" + count: 1 + path: src/adodb5/adodb-lib.inc.php + + - + message: "#^Undefined variable\\: \\$hosts$#" + count: 1 + path: src/adodb5/adodb-memcache.lib.inc.php + + - + message: "#^Instantiated class PEAR_Error not found\\.$#" + count: 2 + path: src/adodb5/adodb-pear.inc.php + + - + message: "#^Access to an undefined property adodb_perf\\:\\:\\$settings\\.$#" + count: 2 + path: src/adodb5/adodb-perf.inc.php + + - + message: "#^Method adodb_perf\\:\\:OptimizeTables\\(\\) should return Returns but return statement is missing\\.$#" + count: 1 + path: src/adodb5/adodb-perf.inc.php + + - + message: "#^Function adodb_daylight_sv not found\\.$#" + count: 1 + path: src/adodb5/adodb-time.inc.php + + - + message: "#^Access to an undefined property adoSchema\\:\\:\\$obj\\.$#" + count: 2 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Access to an undefined property dbData\\:\\:\\$current_field\\.$#" + count: 4 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Access to an undefined property dbTable\\:\\:\\$data\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Constructor of class dbData has an unused parameter \\$attributes\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Constructor of class dbObject has an unused parameter \\$attributes\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Method adoSchema\\:\\:SaveSQL\\(\\) should return bool but return statement is missing\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Method dbData\\:\\:addData\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Method dbData\\:\\:addField\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Method dbTable\\:\\:addField\\(\\) should return array but return statement is missing\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Method dbTable\\:\\:addFieldOpt\\(\\) should return array but return statement is missing\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Using static outside of class scope\\.$#" + count: 2 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Variable \\$sqlArray in isset\\(\\) always exists and is not nullable\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Variable \\$sqlArray in isset\\(\\) is never defined\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema.inc.php + + - + message: "#^Access to an undefined property adoSchema\\:\\:\\$obj\\.$#" + count: 2 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Access to an undefined property dbData\\:\\:\\$current_field\\.$#" + count: 4 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Access to an undefined property dbTable\\:\\:\\$data\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Constructor of class dbData has an unused parameter \\$attributes\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Constructor of class dbObject has an unused parameter \\$attributes\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Method adoSchema\\:\\:SaveSQL\\(\\) should return bool but return statement is missing\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Method dbData\\:\\:addData\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Method dbData\\:\\:addField\\(\\) should return string but return statement is missing\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Method dbTable\\:\\:addField\\(\\) should return array but return statement is missing\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Method dbTable\\:\\:addFieldOpt\\(\\) should return array but return statement is missing\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Undefined variable\\: \\$pfx$#" + count: 1 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Using static outside of class scope\\.$#" + count: 2 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Variable \\$sqlArray in isset\\(\\) always exists and is not nullable\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Variable \\$sqlArray in isset\\(\\) is never defined\\.$#" + count: 1 + path: src/adodb5/adodb-xmlschema03.inc.php + + - + message: "#^Access to an undefined property ADOConnection\\:\\:\\$_genIDSQL\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Access to an undefined property ADOConnection\\:\\:\\$_genSeqSQL\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Access to an undefined property ADOConnection\\:\\:\\$_metars\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Access to an undefined property ADOConnection\\:\\:\\$locale\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Access to an undefined property ADODB_Cache_File\\:\\:\\$notSafeMode\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Access to an undefined property ADORecordSet_array\\:\\:\\$adodbFetchMode\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Call to an undefined method ADOConnection\\:\\:_affectedrows\\(\\)\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Call to an undefined method ADOConnection\\:\\:_close\\(\\)\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Call to an undefined method ADOConnection\\:\\:_connect\\(\\)\\.$#" + count: 2 + path: src/adodb5/adodb.inc.php + + - + message: "#^Call to an undefined method ADOConnection\\:\\:_insertid\\(\\)\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Call to an undefined method ADOConnection\\:\\:_pconnect\\(\\)\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Call to an undefined method ADOConnection\\:\\:_query\\(\\)\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Call to an undefined method ADORecordSet\\:\\:_fetch\\(\\)\\.$#" + count: 6 + path: src/adodb5/adodb.inc.php + + - + message: "#^Call to an undefined method ADORecordSet\\:\\:_initrs\\(\\)\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Call to an undefined method ADORecordSet\\:\\:_seek\\(\\)\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Class ADOConnection referenced with incorrect case\\: ADOCOnnection\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Function adodb_GetActiveRecordsClass invoked with 8 parameters, 7 required\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Function adodb_getall not found\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Function adodb_movenext not found\\.$#" + count: 5 + path: src/adodb5/adodb.inc.php + + - + message: "#^Instantiated class PEAR_Error not found\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Result of method ADOConnection\\:\\:GetActiveRecordsClass\\(\\) \\(void\\) is used\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Variable \\$err in empty\\(\\) always exists and is not falsy\\.$#" + count: 2 + path: src/adodb5/adodb.inc.php + + - + message: "#^Variable \\$opt might not be defined\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Variable \\$ret might not be defined\\.$#" + count: 1 + path: src/adodb5/adodb.inc.php + + - + message: "#^Access to an undefined property ADODB2_mysql\\:\\:\\$upperName\\.$#" + count: 2 + path: src/adodb5/datadict/datadict-mysql.inc.php + + - + message: "#^Access to an undefined property ADODB_mysqli\\:\\:\\$databaseName\\.$#" + count: 1 + path: src/adodb5/drivers/adodb-mysqli.inc.php + + - + message: "#^Access to an undefined property ADORecordSet_mysqli\\:\\:\\$adodbFetchMode\\.$#" + count: 1 + path: src/adodb5/drivers/adodb-mysqli.inc.php + + - + message: "#^Constructor of class ADORecordSet_array_mysqli has an unused parameter \\$mode\\.$#" + count: 1 + path: src/adodb5/drivers/adodb-mysqli.inc.php + + - + message: "#^Variable \\$rs in empty\\(\\) always exists and is not falsy\\.$#" + count: 1 + path: src/adodb5/drivers/adodb-mysqli.inc.php + + - + message: "#^Access to an undefined property ADODB_pdo\\:\\:\\$_driver\\.$#" + count: 22 + path: src/adodb5/drivers/adodb-pdo.inc.php + + - + message: "#^Access to an undefined property ADODB_pdo\\:\\:\\$_dropSeqSQL\\.$#" + count: 1 + path: src/adodb5/drivers/adodb-pdo.inc.php + + - + message: "#^Access to an undefined property ADODB_pdo\\:\\:\\$_genIDSQL\\.$#" + count: 1 + path: src/adodb5/drivers/adodb-pdo.inc.php + + - + message: "#^Access to an undefined property ADODB_pdo\\:\\:\\$_stmt\\.$#" + count: 4 + path: src/adodb5/drivers/adodb-pdo.inc.php + + - + message: "#^Access to an undefined property ADORecordSet_pdo\\:\\:\\$adodbFetchMode\\.$#" + count: 2 + path: src/adodb5/drivers/adodb-pdo.inc.php + + - + message: "#^Undefined variable\\: \\$enc$#" + count: 1 + path: src/adodb5/drivers/adodb-pdo_sqlite.inc.php + + - + message: "#^File begins with UTF\\-8 BOM character\\. This may cause problems when running the code in the web browser\\.$#" + count: 1 + path: src/adodb5/lang/adodb-bgutf8.inc.php + + - + message: "#^Variable \\$ACCEPTIP in empty\\(\\) always exists and is not falsy\\.$#" + count: 1 + path: src/adodb5/server.php + + - + message: "#^Call to static method read\\(\\) on an unknown class Secret\\.$#" + count: 1 + path: src/adodb5/session/adodb-encrypt-secret.php + + - + message: "#^Call to static method write\\(\\) on an unknown class Secret\\.$#" + count: 1 + path: src/adodb5/session/adodb-encrypt-secret.php + + - + message: "#^Variable \\$sql in empty\\(\\) always exists and is not falsy\\.$#" + count: 1 + path: src/adodb5/session/adodb-session.php + + - + message: "#^Variable \\$sql in empty\\(\\) always exists and is not falsy\\.$#" + count: 1 + path: src/adodb5/session/adodb-session2.php + diff --git a/phpstan.neon b/phpstan.neon new file mode 100644 index 00000000..93886b8f --- /dev/null +++ b/phpstan.neon @@ -0,0 +1,7 @@ +includes: + - phpstan-baseline.neon + +parameters: + bootstrapFiles: + - constants.php + \ No newline at end of file diff --git a/phpunit.xml b/phpunit.xml.dist similarity index 100% rename from phpunit.xml rename to phpunit.xml.dist diff --git a/rector.php b/rector.php new file mode 100644 index 00000000..9174533b --- /dev/null +++ b/rector.php @@ -0,0 +1,32 @@ +parameters(); + $parameters->set(Option::PATHS, [ + __DIR__ . '/src' + ]); + + // Define what rule sets will be applied + $containerConfigurator->import(LevelSetList::UP_TO_PHP_74); + $parameters->set(Option::PHPSTAN_FOR_RECTOR_PATH, getcwd() . '/phpstan.neon'); + + // get services (needed for register a single rule) + $services = $containerConfigurator->services(); + + // register a single rule + $services->set(TypedPropertyRector::class); + $services->set(ClosureToArrowFunctionRector::class); + $services->set(AddDefaultValueForUndefinedVariableRector::class); +}; diff --git a/src/Browscap/Browscap.php b/src/Browscap/Browscap.php old mode 100755 new mode 100644 index 4c1cf14b..22a7b40e --- a/src/Browscap/Browscap.php +++ b/src/Browscap/Browscap.php @@ -43,9 +43,9 @@ class Browscap /** * Current version of the class. */ - const VERSION = '2.0'; + public const VERSION = '2.0'; - const CACHE_FILE_VERSION = '2.0b'; + public const CACHE_FILE_VERSION = '2.0b'; /** * Different ways to access remote and local files. @@ -55,10 +55,10 @@ class Browscap * UPDATE_CURL: Uses the cURL extension. * UPDATE_LOCAL: Updates from a local file (file_get_contents). */ - const UPDATE_FOPEN = 'URL-wrapper'; - const UPDATE_FSOCKOPEN = 'socket'; - const UPDATE_CURL = 'cURL'; - const UPDATE_LOCAL = 'local'; + public const UPDATE_FOPEN = 'URL-wrapper'; + public const UPDATE_FSOCKOPEN = 'socket'; + public const UPDATE_CURL = 'cURL'; + public const UPDATE_LOCAL = 'local'; /** * Options for regex patterns. @@ -66,23 +66,23 @@ class Browscap * REGEX_DELIMITER: Delimiter of all the regex patterns in the whole class. * REGEX_MODIFIERS: Regex modifiers. */ - const REGEX_DELIMITER = '@'; - const REGEX_MODIFIERS = 'i'; + public const REGEX_DELIMITER = '@'; + public const REGEX_MODIFIERS = 'i'; - const COMPRESSION_PATTERN_START = '@'; - const COMPRESSION_PATTERN_DELIMITER = '|'; + public const COMPRESSION_PATTERN_START = '@'; + public const COMPRESSION_PATTERN_DELIMITER = '|'; /** * The values to quote in the ini file */ - const VALUES_TO_QUOTE = 'Browser|Parent'; + public const VALUES_TO_QUOTE = 'Browser|Parent'; - const BROWSCAP_VERSION_KEY = 'GJK_Browscap_Version'; + public const BROWSCAP_VERSION_KEY = 'GJK_Browscap_Version'; /** * The headers to be sent for checking the version and requesting the file. */ - const REQUEST_HEADERS = "GET %s HTTP/1.0\r\nHost: %s\r\nUser-Agent: %s\r\nConnection: Close\r\n\r\n"; + public const REQUEST_HEADERS = "GET %s HTTP/1.0\r\nHost: %s\r\nUser-Agent: %s\r\nConnection: Close\r\n\r\n"; /** * Options for auto update capabilities @@ -209,7 +209,7 @@ class Browscap * Constructor class, checks for the existence of (and loads) the cache and * if needed updated the definitions * - * @param string $cache_dir + * @param ?string $cache_dir * * @throws Exception */ @@ -638,10 +638,9 @@ public function updateCache() { $this->_patterns[$pattern] = $pattern_data; } - elseif (2 == count($pattern_data)) + elseif (2 == (is_countable($pattern_data) ? count($pattern_data) : 0)) { - end($pattern_data); - $this->_patterns[$pattern_data['first']] = key($pattern_data); + $this->_patterns[$pattern_data['first']] = array_key_last($pattern_data); } else { @@ -819,9 +818,16 @@ protected function _pregUnQuote($pattern, $matches) */ protected function _loadCache($cache_file) { + /** @var null|string $cache_version */ + $cache_version = self::CACHE_FILE_VERSION; + $source_version = ''; + $browsers = []; + $userAgents = []; + $patterns = []; + $properties = []; require $cache_file; - if (!isset($cache_version) || $cache_version != self::CACHE_FILE_VERSION) + if (is_null($cache_version) || $cache_version != self::CACHE_FILE_VERSION) { return false; } @@ -1180,7 +1186,8 @@ protected function _getUserAgent() * @copyright Copyright (c) 2006-2012 Jonathan Stoppani * @version 1.0 * @license http://www.opensource.org/licenses/MIT MIT License - * @link https://github.com/GaretJax/phpbrowscap/*/ + * @link https://github.com/GaretJax/phpbrowscap/ + */ class Exception extends BaseException { } diff --git a/src/Browscap/cache.php b/src/Browscap/cache.php index c3602b33..4ed42c77 100644 --- a/src/Browscap/cache.php +++ b/src/Browscap/cache.php @@ -39,6044 +39,6044 @@ 'RenderingEngine_Version' ); $browsers=array( -'a:2:{i:3;i:4646;i:5;s:18:"TKC AutoDownloader";}', -'a:9:{i:3;i:5607;i:5;s:9:"BrowserNG";i:6;s:3:"7.2";i:7;s:1:"7";i:8;s:1:"2";i:9;s:9:"SymbianOS";i:10;s:3:"9.4";i:33;s:6:"WebKit";i:34;s:3:"525";}', -'a:10:{i:3;i:5091;i:9;s:3:"iOS";i:10;s:3:"5.1";i:11;s:19:"iPod, iPhone & iPad";i:15;s:5:"false";i:26;s:4:"true";i:31;s:6:"iPhone";i:32;s:5:"Apple";i:33;s:6:"WebKit";i:34;s:6:"534.46";}', -'a:9:{i:3;i:5091;i:9;s:3:"iOS";i:10;s:3:"5.1";i:11;s:19:"iPod, iPhone & iPad";i:15;s:5:"false";i:26;s:4:"true";i:31;s:4:"iPad";i:32;s:5:"Apple";i:34;s:6:"534.46";}', +'a:2:{i:3;i:4657;i:5;s:18:"TKC AutoDownloader";}', +'a:9:{i:3;i:5610;i:5;s:9:"BrowserNG";i:6;s:3:"7.2";i:7;s:1:"7";i:8;s:1:"2";i:9;s:9:"SymbianOS";i:10;s:3:"9.4";i:33;s:6:"WebKit";i:34;s:3:"525";}', +'a:10:{i:3;i:5141;i:9;s:3:"iOS";i:10;s:3:"5.1";i:11;s:19:"iPod, iPhone & iPad";i:15;s:5:"false";i:26;s:4:"true";i:31;s:6:"iPhone";i:32;s:5:"Apple";i:33;s:6:"WebKit";i:34;s:6:"534.46";}', +'a:9:{i:3;i:5141;i:9;s:3:"iOS";i:10;s:3:"5.1";i:11;s:19:"iPod, iPhone & iPad";i:15;s:5:"false";i:26;s:4:"true";i:31;s:4:"iPad";i:32;s:5:"Apple";i:34;s:6:"534.46";}', 'a:5:{i:3;i:5628;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:34;s:5:"533.1";}', -'a:2:{i:3;i:5336;i:10;s:3:"5.1";}', +'a:2:{i:3;i:5334;i:10;s:3:"5.1";}', 'a:5:{i:3;i:5628;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:34;s:6:"533.16";}', -'a:8:{i:3;i:5555;i:4;s:11:"Kindle Fire";i:5;s:11:"Kindle Fire";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:10;s:3:"2.3";i:34;s:5:"533.1";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:2:{i:3;i:5443;i:9;s:5:"Linux";}', -'a:3:{i:3;i:5450;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:4593;i:10;s:3:"5.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4591;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.3";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4590;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"4.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"4.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4593;i:10;s:3:"5.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4593;i:10;s:3:"5.0";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.3";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4591;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4590;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4593;i:10;s:3:"5.1";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.3";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4593;i:10;s:3:"5.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4587;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4593;i:10;s:3:"5.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4590;i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4591;i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"4.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"4.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4587;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4787;i:5;s:9:"Girafabot";i:15;s:4:"true";}', -'a:7:{i:3;i:5555;i:5;s:11:"Kindle Nook";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:10;s:3:"2.3";i:34;s:5:"533.1";}', -'a:3:{i:3;i:4587;i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:5450;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5450;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5450;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:7:{i:3;i:5515;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:9;s:6:"MacOSX";i:10;s:4:"10.5";i:26;s:5:"false";}', -'a:1:{i:3;i:4949;}', -'a:5:{i:3;i:5322;i:6;s:3:"3.5";i:7;s:1:"3";i:8;s:1:"5";i:9;s:6:"MacOSX";}', +'a:8:{i:3;i:5556;i:4;s:11:"Kindle Fire";i:5;s:11:"Kindle Fire";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:10;s:3:"2.3";i:34;s:5:"533.1";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:2:{i:3;i:5438;i:9;s:5:"Linux";}', +'a:3:{i:3;i:5451;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4584;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"4.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"4.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4588;i:10;s:3:"2.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4588;i:10;s:3:"2.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.3";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4588;i:10;s:3:"2.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4583;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4583;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.3";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.0";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.1";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4584;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4588;i:10;s:3:"2.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.3";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4588;i:10;s:3:"2.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4588;i:10;s:3:"2.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4583;i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"4.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"4.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4581;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4584;i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4581;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4784;i:5;s:9:"Girafabot";i:15;s:4:"true";}', +'a:7:{i:3;i:5556;i:5;s:11:"Kindle Nook";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:10;s:3:"2.3";i:34;s:5:"533.1";}', +'a:3:{i:3;i:4581;i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:5451;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5451;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5451;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:7:{i:3;i:5503;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:9;s:6:"MacOSX";i:10;s:4:"10.5";i:26;s:5:"false";}', +'a:1:{i:3;i:4982;}', +'a:5:{i:3;i:5337;i:6;s:3:"3.5";i:7;s:1:"3";i:8;s:1:"5";i:9;s:6:"MacOSX";}', 'a:4:{i:3;i:4582;i:10;s:3:"1.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:10:{i:3;i:5555;i:4;s:11:"Kindle Nook";i:5;s:11:"Kindle Nook";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:10;s:3:"2.3";i:31;s:6:"Kindle";i:32;s:6:"Amazon";i:34;s:5:"533.1";}', +'a:10:{i:3;i:5556;i:4;s:11:"Kindle Nook";i:5;s:11:"Kindle Nook";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:10;s:3:"2.3";i:31;s:6:"Kindle";i:32;s:6:"Amazon";i:34;s:5:"533.1";}', 'a:4:{i:3;i:4582;i:10;s:3:"1.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:2:{i:3;i:4657;i:5;s:18:"McAffee Scan Alert";}', -'a:4:{i:3;i:5441;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5441;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5441;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5441;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5441;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:1:{i:3;i:5336;}', -'a:4:{i:3;i:5105;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5105;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5105;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5105;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5105;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:2:{i:3;i:4940;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4974;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4486;i:10;s:3:"3.0";}', -'a:2:{i:3;i:5067;i:5;s:5:"Ruunk";}', -'a:2:{i:3;i:4486;i:10;s:3:"2.0";}', -'a:2:{i:3;i:4486;i:10;s:3:"2.1";}', -'a:2:{i:3;i:4486;i:10;s:3:"2.2";}', -'a:2:{i:3;i:4486;i:10;s:3:"4.1";}', -'a:2:{i:3;i:4486;i:10;s:3:"1.6";}', -'a:2:{i:3;i:4486;i:10;s:3:"4.0";}', -'a:2:{i:3;i:4486;i:10;s:3:"2.3";}', -'a:2:{i:3;i:4488;i:10;s:3:"1.1";}', -'a:5:{i:3;i:4488;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"1.6";}', -'a:5:{i:3;i:4488;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"2.1";}', -'a:5:{i:3;i:4488;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"1.5";}', -'a:2:{i:3;i:4488;i:10;s:3:"1.0";}', -'a:2:{i:3;i:4486;i:10;s:3:"1.5";}', -'a:5:{i:3;i:4488;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"2.2";}', -'a:5:{i:3;i:4488;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"2.0";}', -'a:2:{i:3;i:4486;i:10;s:3:"1.0";}', -'a:2:{i:3;i:4486;i:10;s:3:"1.1";}', -'a:5:{i:3;i:4488;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"2.3";}', -'a:7:{i:3;i:4946;i:4;s:12:"OmniWeb 5.11";i:5;s:7:"OmniWeb";i:6;s:4:"5.11";i:7;s:1:"5";i:8;s:2:"11";i:29;s:1:"3";}', -'a:2:{i:3;i:4486;i:10;s:3:"3.0";}', -'a:5:{i:3;i:4488;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"3.0";}', -'a:2:{i:3;i:4787;i:5;s:9:"ShopSalad";}', -'a:6:{i:3;i:5504;i:10;s:3:"6.0";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5504;i:10;s:3:"6.1";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:8:{i:3;i:5504;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:1:{i:3;i:4874;}', -'a:1:{i:3;i:4877;}', -'a:1:{i:3;i:4876;}', -'a:1:{i:3;i:4842;}', -'a:1:{i:3;i:4830;}', -'a:1:{i:3;i:4871;}', -'a:1:{i:3;i:4887;}', +'a:2:{i:3;i:4645;i:5;s:18:"McAffee Scan Alert";}', +'a:4:{i:3;i:5435;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5435;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5435;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5435;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5435;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:1:{i:3;i:5334;}', +'a:4:{i:3;i:5085;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5085;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5085;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5085;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5085;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:4948;i:9;s:9:"SymbianOS";}', +'a:2:{i:3;i:4944;i:9;s:9:"SymbianOS";}', +'a:2:{i:3;i:4490;i:10;s:3:"3.0";}', +'a:2:{i:3;i:5060;i:5;s:5:"Ruunk";}', +'a:2:{i:3;i:4490;i:10;s:3:"2.0";}', +'a:2:{i:3;i:4491;i:10;s:3:"1.0";}', +'a:2:{i:3;i:4490;i:10;s:3:"4.0";}', +'a:2:{i:3;i:4491;i:10;s:3:"1.1";}', +'a:2:{i:3;i:4490;i:10;s:3:"2.1";}', +'a:2:{i:3;i:4490;i:10;s:3:"2.3";}', +'a:2:{i:3;i:4490;i:10;s:3:"2.2";}', +'a:5:{i:3;i:4491;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"1.5";}', +'a:2:{i:3;i:4490;i:10;s:3:"1.6";}', +'a:2:{i:3;i:4490;i:10;s:3:"1.5";}', +'a:2:{i:3;i:4490;i:10;s:3:"1.1";}', +'a:2:{i:3;i:4490;i:10;s:3:"1.0";}', +'a:5:{i:3;i:4491;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"2.3";}', +'a:5:{i:3;i:4491;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"2.2";}', +'a:5:{i:3;i:4491;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"2.1";}', +'a:2:{i:3;i:4490;i:10;s:3:"4.1";}', +'a:5:{i:3;i:4491;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"2.0";}', +'a:5:{i:3;i:4491;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"1.6";}', +'a:7:{i:3;i:4945;i:4;s:12:"OmniWeb 5.11";i:5;s:7:"OmniWeb";i:6;s:4:"5.11";i:7;s:1:"5";i:8;s:2:"11";i:29;s:1:"3";}', +'a:2:{i:3;i:4490;i:10;s:3:"3.0";}', +'a:5:{i:3;i:4491;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:10;s:3:"3.0";}', +'a:2:{i:3;i:4784;i:5;s:9:"ShopSalad";}', +'a:6:{i:3;i:5514;i:10;s:3:"6.1";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:8:{i:3;i:5514;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5514;i:10;s:3:"6.0";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:1:{i:3;i:4875;}', +'a:1:{i:3;i:4860;}', +'a:1:{i:3;i:4863;}', +'a:1:{i:3;i:4864;}', +'a:1:{i:3;i:4855;}', +'a:1:{i:3;i:4859;}', 'a:1:{i:3;i:4856;}', +'a:1:{i:3;i:4858;}', +'a:1:{i:3;i:4866;}', 'a:1:{i:3;i:4853;}', -'a:1:{i:3;i:4859;}', -'a:1:{i:3;i:4838;}', -'a:1:{i:3;i:4846;}', -'a:1:{i:3;i:4847;}', -'a:1:{i:3;i:4884;}', -'a:1:{i:3;i:4879;}', -'a:1:{i:3;i:4854;}', -'a:1:{i:3;i:4885;}', +'a:1:{i:3;i:4857;}', +'a:1:{i:3;i:4865;}', +'a:1:{i:3;i:4862;}', +'a:1:{i:3;i:4861;}', +'a:1:{i:3;i:4868;}', +'a:1:{i:3;i:4871;}', +'a:1:{i:3;i:4870;}', +'a:1:{i:3;i:4869;}', 'a:1:{i:3;i:4872;}', -'a:1:{i:3;i:4880;}', -'a:1:{i:3;i:4850;}', -'a:1:{i:3;i:4845;}', -'a:1:{i:3;i:4852;}', -'a:1:{i:3;i:4860;}', -'a:4:{i:3;i:4486;i:10;s:3:"4.0";i:31;s:10:"Galaxy Tab";i:32;s:7:"Samsung";}', -'a:4:{i:3;i:4486;i:10;s:3:"3.2";i:31;s:10:"Galaxy Tab";i:32;s:7:"Samsung";}', -'a:4:{i:3;i:4486;i:10;s:3:"4.1";i:31;s:10:"Galaxy Tab";i:32;s:7:"Samsung";}', -'a:5:{i:3;i:4593;i:4;s:12:"Facebook App";i:10;s:3:"5.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:1:{i:3;i:4886;}', -'a:1:{i:3;i:4882;}', 'a:1:{i:3;i:4873;}', -'a:4:{i:3;i:5111;i:6;s:3:"5.8";i:7;s:1:"5";i:8;s:1:"8";}', -'a:2:{i:3;i:4961;i:9;s:5:"Linux";}', -'a:1:{i:3;i:4968;}', -'a:1:{i:3;i:4973;}', -'a:1:{i:3;i:4971;}', -'a:4:{i:3;i:4593;i:10;s:3:"5.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4591;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4590;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"4.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"4.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4593;i:10;s:3:"5.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.3";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:2:{i:3;i:4657;i:5;s:6:"Kyluka";}', -'a:6:{i:3;i:5086;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5085;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5349;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5337;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5085;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5085;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5085;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5127;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5088;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5087;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5087;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5087;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5133;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5127;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5087;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5127;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5086;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5086;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5088;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5086;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5084;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5089;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5096;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5089;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5089;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5129;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5096;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5096;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5114;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5114;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5114;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5096;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5096;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5129;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5084;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5129;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5084;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5133;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5136;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5129;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5084;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5136;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5129;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5084;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5133;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4876;}', -'a:1:{i:3;i:4838;}', -'a:1:{i:3;i:4846;}', -'a:6:{i:3;i:5128;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4859;}', -'a:6:{i:3;i:5128;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4847;}', -'a:6:{i:3;i:5138;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5138;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4884;}', -'a:6:{i:3;i:5138;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5138;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4850;}', -'a:1:{i:3;i:4853;}', -'a:6:{i:3;i:5128;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', 'a:1:{i:3;i:4874;}', -'a:1:{i:3;i:4845;}', -'a:1:{i:3;i:4842;}', -'a:6:{i:3;i:5128;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4880;}', -'a:6:{i:3;i:5114;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5128;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:1:{i:3;i:4876;}', +'a:1:{i:3;i:4867;}', +'a:4:{i:3;i:4490;i:10;s:3:"4.0";i:31;s:10:"Galaxy Tab";i:32;s:7:"Samsung";}', +'a:4:{i:3;i:4490;i:10;s:3:"4.1";i:31;s:10:"Galaxy Tab";i:32;s:7:"Samsung";}', +'a:4:{i:3;i:4490;i:10;s:3:"3.2";i:31;s:10:"Galaxy Tab";i:32;s:7:"Samsung";}', +'a:5:{i:3;i:4594;i:4;s:12:"Facebook App";i:10;s:3:"5.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:1:{i:3;i:4832;}', 'a:1:{i:3;i:4852;}', -'a:1:{i:3;i:4854;}', -'a:1:{i:3;i:4860;}', -'a:6:{i:3;i:5138;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4885;}', -'a:6:{i:3;i:5123;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4887;}', -'a:6:{i:3;i:5123;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4830;}', -'a:6:{i:3;i:5123;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5123;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5115;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5127;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5133;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5136;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5127;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5136;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4877;}', -'a:1:{i:3;i:4879;}', -'a:6:{i:3;i:5125;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5125;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:4:{i:3;i:5086;i:6;s:3:"5.8";i:7;s:1:"5";i:8;s:1:"8";}', +'a:1:{i:3;i:4837;}', +'a:2:{i:3;i:4966;i:9;s:5:"Linux";}', +'a:1:{i:3;i:4972;}', +'a:1:{i:3;i:4975;}', +'a:1:{i:3;i:4964;}', +'a:3:{i:3;i:4584;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"4.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4583;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"4.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.3";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:2:{i:3;i:4645;i:5;s:6:"Kyluka";}', +'a:6:{i:3;i:5120;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5134;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5134;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5134;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5131;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5061;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5061;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5131;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5061;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5137;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5137;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', 'a:6:{i:3;i:5125;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5061;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5143;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5143;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5143;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5125;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5130;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5125;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', 'a:6:{i:3;i:5125;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', 'a:6:{i:3;i:5125;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5123;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4871;}', -'a:6:{i:3;i:5136;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4872;}', -'a:6:{i:3;i:5133;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4856;}', -'a:6:{i:3;i:5093;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5121;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5093;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5121;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5092;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5093;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5117;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5093;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5117;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5093;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5137;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5137;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5137;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5131;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5358;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5130;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5126;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', 'a:6:{i:3;i:5092;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5121;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5113;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5113;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5113;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5091;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5091;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5113;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5113;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5091;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5091;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5091;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5117;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5127;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5126;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5092;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', 'a:6:{i:3;i:5092;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', 'a:6:{i:3;i:5092;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5090;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', 'a:6:{i:3;i:5092;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5117;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5115;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5115;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5115;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5114;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5115;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5117;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:4593;i:4;s:11:"Google+ App";i:10;s:3:"5.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:8:{i:3;i:4252;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:4:{i:3;i:5111;i:6;s:3:"5.7";i:7;s:1:"5";i:8;s:1:"7";}', -'a:4:{i:3;i:5111;i:6;s:3:"5.9";i:7;s:1:"5";i:8;s:1:"9";}', -'a:13:{i:3;i:4250;i:5;s:8:"Epiphany";i:6;s:4:"2.30";i:7;s:1:"2";i:8;s:2:"30";i:9;s:5:"Linux";i:14;s:5:"false";i:15;s:5:"false";i:16;s:5:"false";i:18;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";}', -'a:6:{i:3;i:5345;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5340;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5341;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5126;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5120;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5120;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5120;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5120;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5090;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5130;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5128;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5061;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5141;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5130;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5130;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5090;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5128;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5357;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5127;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5128;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5128;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5128;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5127;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5127;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5127;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5126;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5099;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5141;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:1:{i:3;i:4860;}', +'a:6:{i:3;i:5102;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5102;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5102;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5102;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5103;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5103;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5103;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5103;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:1:{i:3;i:4876;}', +'a:1:{i:3;i:4875;}', +'a:1:{i:3;i:4856;}', +'a:1:{i:3;i:4857;}', +'a:1:{i:3;i:4858;}', +'a:1:{i:3;i:4859;}', +'a:1:{i:3;i:4861;}', +'a:6:{i:3;i:5123;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:1:{i:3;i:4865;}', +'a:1:{i:3;i:4871;}', +'a:1:{i:3;i:4872;}', +'a:1:{i:3;i:4870;}', +'a:1:{i:3;i:4873;}', +'a:1:{i:3;i:4869;}', +'a:1:{i:3;i:4874;}', +'a:1:{i:3;i:4868;}', +'a:1:{i:3;i:4862;}', +'a:1:{i:3;i:4867;}', +'a:1:{i:3;i:4853;}', +'a:1:{i:3;i:4866;}', +'a:1:{i:3;i:4864;}', +'a:1:{i:3;i:4855;}', +'a:1:{i:3;i:4863;}', +'a:6:{i:3;i:5141;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5123;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5123;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5122;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5141;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5141;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5139;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5139;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5139;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5144;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5144;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5144;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5122;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5123;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5122;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5122;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5122;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5099;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5099;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5099;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5096;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5096;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5096;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5096;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5096;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5095;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5095;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5095;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5126;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:4594;i:4;s:11:"Google+ App";i:10;s:3:"5.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:8:{i:3;i:4251;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:4:{i:3;i:5086;i:6;s:3:"5.9";i:7;s:1:"5";i:8;s:1:"9";}', +'a:13:{i:3;i:4252;i:5;s:8:"Epiphany";i:6;s:4:"2.30";i:7;s:1:"2";i:8;s:2:"30";i:9;s:5:"Linux";i:14;s:5:"false";i:15;s:5:"false";i:16;s:5:"false";i:18;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";}', +'a:4:{i:3;i:5086;i:6;s:3:"5.7";i:7;s:1:"5";i:8;s:1:"7";}', +'a:6:{i:3;i:5332;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5333;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', 'a:6:{i:3;i:5348;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5323;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5350;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5355;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5358;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5229;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4656;}', -'a:6:{i:3;i:5229;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5229;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5229;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5236;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4968;}', -'a:6:{i:3;i:5232;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4971;}', -'a:6:{i:3;i:5232;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4973;}', -'a:6:{i:3;i:5236;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5236;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5232;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4961;}', -'a:6:{i:3;i:5236;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5228;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5228;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5232;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5228;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5228;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:6:{i:3;i:5565;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:10;s:3:"1.0";i:34;s:5:"533.1";}', +'a:6:{i:3;i:5347;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5360;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5345;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5346;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5359;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5221;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5221;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5221;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5221;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5226;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5226;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5226;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:1:{i:3;i:4972;}', +'a:1:{i:3;i:4964;}', +'a:6:{i:3;i:5226;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5220;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:1:{i:3;i:4966;}', +'a:6:{i:3;i:5220;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5220;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5219;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5219;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5220;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5219;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:1:{i:3;i:4975;}', +'a:6:{i:3;i:5219;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:1:{i:3;i:4652;}', +'a:4:{i:3;i:4588;i:10;s:3:"2.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4588;i:10;s:3:"2.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4588;i:10;s:3:"2.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', 'a:6:{i:3;i:5565;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:10;s:3:"2.0";i:34;s:6:"534.20";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4587;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4590;i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.3";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4591;i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4593;i:10;s:3:"5.0";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4593;i:10;s:3:"5.1";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4579;i:10;s:3:"2.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4590;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4591;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.3";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"4.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4593;i:10;s:3:"5.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"4.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4593;i:10;s:3:"5.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4585;i:10;s:3:"4.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4577;i:10;s:3:"3.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:1:{i:3;i:4949;}', -'a:4:{i:3;i:5111;i:6;s:3:"5.6";i:7;s:1:"5";i:8;s:1:"6";}', -'a:7:{i:3;i:5457;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:29;s:1:"2";i:31;s:4:"Pixi";i:32;s:4:"Palm";}', -'a:7:{i:3;i:5457;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:29;s:1:"2";i:31;s:4:"Pixi";i:32;s:4:"Palm";}', -'a:2:{i:3;i:4657;i:5;s:13:"DomainCrawler";}', -'a:5:{i:3;i:5254;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', -'a:5:{i:3;i:5261;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:4:{i:3;i:5239;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5222;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5240;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5239;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:5:{i:3;i:5222;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', -'a:5:{i:3;i:5222;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', -'a:4:{i:3;i:5239;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5219;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:5:{i:3;i:5219;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', -'a:5:{i:3;i:5219;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', -'a:5:{i:3;i:5219;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:5:{i:3;i:5222;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:4:{i:3;i:5239;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:5:{i:3;i:5254;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:5219;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:4:{i:3;i:5239;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:5:{i:3;i:5219;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:4:{i:3;i:5240;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5240;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:5:{i:3;i:5254;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:4:{i:3;i:5261;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:5:{i:3;i:5261;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:5261;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', -'a:5:{i:3;i:5254;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:5261;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', -'a:5:{i:3;i:5261;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:5222;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:5:{i:3;i:5222;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:4:{i:3;i:5240;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5240;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5254;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:5:{i:3;i:5254;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', -'a:6:{i:3;i:4774;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4774;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4774;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:1:{i:3;i:4656;}', -'a:6:{i:3;i:4774;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:5121;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5115;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5115;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5115;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5115;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5115;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5138;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5115;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5138;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5115;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5115;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5123;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5123;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5133;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5123;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5123;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5123;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5123;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5123;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5123;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5121;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5133;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5133;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:6:{i:3;i:5565;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:10;s:3:"1.0";i:34;s:5:"533.1";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.3";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.0";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.1";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.3";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4588;i:10;s:3:"2.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4583;i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4581;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4594;i:10;s:3:"5.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"4.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4584;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"4.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4584;i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4583;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4589;i:10;s:3:"3.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4588;i:10;s:3:"2.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4588;i:10;s:3:"2.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:4:{i:3;i:4593;i:10;s:3:"4.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:1:{i:3;i:4982;}', +'a:4:{i:3;i:5086;i:6;s:3:"5.6";i:7;s:1:"5";i:8;s:1:"6";}', +'a:7:{i:3;i:5448;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:29;s:1:"2";i:31;s:4:"Pixi";i:32;s:4:"Palm";}', +'a:7:{i:3;i:5448;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:29;s:1:"2";i:31;s:4:"Pixi";i:32;s:4:"Palm";}', +'a:2:{i:3;i:4645;i:5;s:13:"DomainCrawler";}', +'a:4:{i:3;i:5253;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5253;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5246;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:5:{i:3;i:5246;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', +'a:5:{i:3;i:5246;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:5246;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:5246;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', +'a:5:{i:3;i:5246;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', +'a:4:{i:3;i:5253;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5235;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:5:{i:3;i:5248;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', +'a:4:{i:3;i:5247;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:5:{i:3;i:5247;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', +'a:5:{i:3;i:5247;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', +'a:5:{i:3;i:5247;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:5247;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:5247;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', +'a:5:{i:3;i:5248;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:5235;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', +'a:5:{i:3;i:5235;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', +'a:5:{i:3;i:5235;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:5235;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:5235;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', +'a:4:{i:3;i:5237;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:5:{i:3;i:5248;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', +'a:5:{i:3;i:5248;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:4:{i:3;i:5237;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5248;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:5:{i:3;i:5248;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', +'a:4:{i:3;i:5237;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5237;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5253;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5253;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5237;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:6:{i:3;i:4789;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4789;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4789;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:1:{i:3;i:4652;}', +'a:6:{i:3;i:4789;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5137;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', 'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5133;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5113;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5133;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5113;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5123;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5123;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5136;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5136;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5136;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5136;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5136;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5121;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5136;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5136;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5136;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5133;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5133;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5133;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5133;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5121;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5136;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5136;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5133;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5137;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5137;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5137;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5137;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', 'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5138;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5121;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:7:{i:3;i:5457;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:29;s:1:"2";i:31;s:3:"Pre";i:32;s:4:"Palm";}', -'a:5:{i:3;i:5113;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5134;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5130;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5130;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5130;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5130;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5134;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5134;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5134;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5131;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5130;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5131;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5131;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5131;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5131;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5131;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5131;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5131;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5130;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5130;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', 'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5137;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', 'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5137;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', 'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5113;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5137;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5137;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5137;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5130;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5134;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5134;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5134;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5134;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5134;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5130;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5134;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5130;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5141;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5143;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5090;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5090;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5090;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5090;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5090;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5090;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5090;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5090;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', 'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5090;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', 'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', 'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5121;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5113;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5138;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5113;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5113;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5121;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5125;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5113;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5128;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5113;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5113;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', 'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5138;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5117;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5091;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5091;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5117;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5117;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5115;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5093;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5093;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5093;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5091;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5093;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5093;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5091;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5121;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5138;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5093;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5093;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5138;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5138;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5093;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5121;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5091;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5093;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5093;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5138;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5138;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5091;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5091;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5129;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5129;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5129;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5129;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5117;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5117;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5117;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5129;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5091;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5129;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5121;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5129;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5129;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5129;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5129;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5091;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5117;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5117;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5117;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5091;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5115;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5117;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', -'a:5:{i:3;i:5127;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', -'a:3:{i:3;i:4587;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4587;i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:2:{i:3;i:5614;i:5;s:23:"Yahoo! Directory Engine";}', -'a:5:{i:3;i:4787;i:5;s:9:"YoudaoBot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:6:{i:3;i:5120;i:5;s:5:"Arora";i:6;s:5:"0.8.0";i:7;s:1:"0";i:8;s:3:"8.0";i:9;s:5:"Linux";}', -'a:4:{i:3;i:5359;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5359;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5359;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:1:{i:3;i:4873;}', -'a:4:{i:3;i:5319;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5319;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5319;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5319;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5359;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:1:{i:3;i:4882;}', -'a:4:{i:3;i:5359;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:1:{i:3;i:4886;}', -'a:4:{i:3;i:5319;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:5:{i:3;i:5251;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:5:{i:3;i:5262;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5143;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5090;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5139;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5141;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5139;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5139;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5139;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5139;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5139;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5139;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5139;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5139;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5139;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5061;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5061;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5061;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5061;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5061;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5061;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5061;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5061;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5061;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5061;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5092;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:7:{i:3;i:5448;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:29;s:1:"2";i:31;s:3:"Pre";i:32;s:4:"Palm";}', +'a:5:{i:3;i:5126;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5143;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5143;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5143;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5143;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5143;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5143;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5126;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5126;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5141;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5126;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5126;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5126;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5126;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5126;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5126;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5126;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5143;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5143;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5141;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5141;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5120;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5141;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5141;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5141;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5141;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5141;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5131;i:9;s:7:"Android";i:10;s:3:"1.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5120;i:9;s:7:"Android";i:10;s:3:"4.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5120;i:9;s:7:"Android";i:10;s:3:"4.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5120;i:9;s:7:"Android";i:10;s:3:"2.3";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5120;i:9;s:7:"Android";i:10;s:3:"2.2";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5120;i:9;s:7:"Android";i:10;s:3:"2.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5120;i:9;s:7:"Android";i:10;s:3:"2.0";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5120;i:9;s:7:"Android";i:10;s:3:"1.6";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5120;i:9;s:7:"Android";i:10;s:3:"1.5";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5120;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:5:{i:3;i:5131;i:9;s:7:"Android";i:10;s:3:"1.1";i:15;s:5:"false";i:26;s:4:"true";}', +'a:3:{i:3;i:4581;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4581;i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:2:{i:3;i:5612;i:5;s:23:"Yahoo! Directory Engine";}', +'a:5:{i:3;i:4784;i:5;s:9:"YoudaoBot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:6:{i:3;i:5063;i:5;s:5:"Arora";i:6;s:5:"0.8.0";i:7;s:1:"0";i:8;s:3:"8.0";i:9;s:5:"Linux";}', +'a:5:{i:3;i:5250;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', +'a:4:{i:3;i:5250;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:5:{i:3;i:5250;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', +'a:1:{i:3;i:4832;}', +'a:4:{i:3;i:5336;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', 'a:5:{i:3;i:5251;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:5252;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:5252;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', 'a:5:{i:3;i:5258;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:5262;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', -'a:5:{i:3;i:5262;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', +'a:4:{i:3;i:5335;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:5:{i:3;i:5258;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', +'a:5:{i:3;i:5258;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', +'a:5:{i:3;i:5251;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', 'a:5:{i:3;i:5251;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:5251;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', 'a:5:{i:3;i:5258;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:4:{i:3;i:5252;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', 'a:5:{i:3;i:5251;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', -'a:5:{i:3;i:5258;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', -'a:5:{i:3;i:5252;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', -'a:5:{i:3;i:5252;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', -'a:5:{i:3;i:5252;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:5258;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', +'a:4:{i:3;i:5335;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5335;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5336;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5336;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5336;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5336;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5335;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', 'a:5:{i:3;i:5258;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:5262;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:5262;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:5:{i:3;i:5251;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', -'a:4:{i:3;i:4832;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4832;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4832;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4832;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4832;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:7:{i:3;i:5457;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:29;s:1:"2";i:31;s:3:"Pre";i:32;s:4:"Palm";}', -'a:4:{i:3;i:5096;i:9;s:7:"Android";i:10;s:3:"4.0";i:26;s:4:"true";}', -'a:5:{i:3;i:4657;i:5;s:16:"Metaspinner/0.01";i:6;s:4:"0.01";i:7;s:1:"0";i:8;s:2:"01";}', -'a:2:{i:3;i:4646;i:5;s:16:"browscap updater";}', -'a:8:{i:3;i:5449;i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:9;s:9:"WinPhone7";i:11;s:15:"Windows Phone 7";i:33;s:7:"Trident";i:34;s:3:"5.0";}', -'a:6:{i:3;i:5449;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:9:"WinPhone7";i:11;s:15:"Windows Phone 7";}', -'a:6:{i:3;i:5504;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5504;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5501;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5501;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5501;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5504;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5501;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5120;i:5;s:5:"Arora";i:6;s:3:"0.6";i:7;s:1:"0";i:8;s:1:"6";i:9;s:5:"Linux";}', -'a:3:{i:3;i:5240;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5222;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5219;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5261;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5254;i:9;s:5:"Linux";}', -'a:3:{i:3;i:5239;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:4646;i:5;s:30:"Automated Browscap.ini Updater";}', +'a:4:{i:3;i:5335;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:5:{i:3;i:5255;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', +'a:5:{i:3;i:5255;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', +'a:1:{i:3;i:4837;}', +'a:5:{i:3;i:5255;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:1:{i:3;i:4852;}', +'a:5:{i:3;i:5255;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:5255;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', +'a:5:{i:3;i:5250;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', +'a:5:{i:3;i:5250;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:5250;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:4:{i:3;i:4836;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4836;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4836;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4836;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4836;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:7:{i:3;i:5448;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:29;s:1:"2";i:31;s:3:"Pre";i:32;s:4:"Palm";}', +'a:4:{i:3;i:5122;i:9;s:7:"Android";i:10;s:3:"4.0";i:26;s:4:"true";}', +'a:2:{i:3;i:4657;i:5;s:16:"browscap updater";}', +'a:5:{i:3;i:4645;i:5;s:16:"Metaspinner/0.01";i:6;s:4:"0.01";i:7;s:1:"0";i:8;s:2:"01";}', +'a:8:{i:3;i:5437;i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:9;s:9:"WinPhone7";i:11;s:15:"Windows Phone 7";i:33;s:7:"Trident";i:34;s:3:"5.0";}', +'a:6:{i:3;i:5437;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:9:"WinPhone7";i:11;s:15:"Windows Phone 7";}', +'a:6:{i:3;i:5523;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5523;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5514;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5523;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5514;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5523;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5514;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5063;i:5;s:5:"Arora";i:6;s:3:"0.6";i:7;s:1:"0";i:8;s:1:"6";i:9;s:5:"Linux";}', +'a:2:{i:3;i:5247;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5235;i:9;s:5:"Linux";}', +'a:3:{i:3;i:5253;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:5248;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5246;i:9;s:5:"Linux";}', +'a:3:{i:3;i:5237;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4657;i:5;s:30:"Automated Browscap.ini Updater";}', +'a:2:{i:3;i:4784;i:5;s:7:"Scrubby";}', 'a:8:{i:3;i:4255;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:2:{i:3;i:4787;i:5;s:7:"Scrubby";}', -'a:5:{i:3;i:5614;i:5;s:12:"Yahoo! Slurp";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', -'a:4:{i:3;i:5093;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:1:{i:3;i:5323;}', +'a:5:{i:3;i:5612;i:5;s:12:"Yahoo! Slurp";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', +'a:4:{i:3;i:5103;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:1:{i:3;i:5255;}', +'a:3:{i:3;i:5096;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5099;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5123;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5123;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5332;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5123;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5123;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5123;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5144;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5332;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5333;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5144;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5099;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5139;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5144;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5345;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5334;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5333;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5099;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5099;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5123;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5099;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5139;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:4:{i:3;i:5345;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5333;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5323;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5323;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5092;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5340;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5096;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5096;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5340;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5333;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:3:{i:3;i:5345;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5117;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5133;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5340;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5092;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:1:{i:3;i:5345;}', -'a:1:{i:3;i:5340;}', +'a:3:{i:3;i:5332;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5123;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5139;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5139;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5144;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5332;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5144;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:1:{i:3;i:5332;}', +'a:4:{i:3;i:5144;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:1:{i:3;i:5258;}', +'a:3:{i:3;i:5335;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:1:{i:3;i:5250;}', +'a:4:{i:3;i:5095;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5096;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', 'a:4:{i:3;i:5333;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5345;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5096;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5103;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5103;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5336;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5103;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5103;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5122;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5103;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5095;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', 'a:4:{i:3;i:5333;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5350;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5095;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5103;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5095;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5095;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5099;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5122;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5102;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:1:{i:3;i:5251;}', +'a:3:{i:3;i:5095;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5333;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5122;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5102;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5102;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5096;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5348;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5096;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5348;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:1:{i:3;i:5348;}', -'a:4:{i:3;i:5348;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5358;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5348;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5115;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:3:{i:3;i:5341;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5127;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5092;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5117;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5089;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5136;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5341;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5341;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5089;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5341;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:1:{i:3;i:5341;}', -'a:4:{i:3;i:5358;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:4:{i:3;i:5096;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:1:{i:3;i:5350;}', -'a:4:{i:3;i:5093;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5350;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5355;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5350;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5332;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5323;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5350;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5332;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5332;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5332;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5358;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5332;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5358;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:1:{i:3;i:5358;}', +'a:4:{i:3;i:5096;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5102;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5122;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5096;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5102;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:1:{i:3;i:5333;}', +'a:4:{i:3;i:5122;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5102;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5122;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5096;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5122;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5102;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5099;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5351;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5139;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5092;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5120;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5354;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5120;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5354;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5120;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:3:{i:3;i:5092;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5092;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5092;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5092;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5353;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5353;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5120;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5092;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5353;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5092;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5353;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5092;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:3:{i:3;i:5353;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5090;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5090;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5090;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5328;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5354;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5354;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5328;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5126;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5127;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5356;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5127;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5356;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5127;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:3:{i:3;i:5356;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:4:{i:3;i:5355;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5126;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5126;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5126;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', 'a:4:{i:3;i:5355;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5120;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5126;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5355;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5126;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:4:{i:3;i:5355;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:1:{i:3;i:5355;}', -'a:4:{i:3;i:5096;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5323;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5133;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5339;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5339;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5339;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5342;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5339;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5114;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5114;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5353;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5339;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5325;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5136;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5327;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5133;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5346;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5096;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5136;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5342;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5133;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5342;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5342;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5133;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5342;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5117;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5114;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5114;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5114;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5325;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5325;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5126;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5355;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5126;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5354;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5120;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5120;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5120;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5090;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5127;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5351;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5329;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5329;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5329;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5329;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5329;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', 'a:3:{i:3;i:5338;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5353;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5117;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5351;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5338;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5338;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', 'a:4:{i:3;i:5338;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:4:{i:3;i:5338;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5093;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5114;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5114;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5353;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5353;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5353;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5325;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5133;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5114;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5117;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5325;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5346;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5346;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5329;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5329;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5334;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5115;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5322;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:3:{i:3;i:5349;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5337;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5329;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:1:{i:3;i:5337;}', -'a:4:{i:3;i:5093;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5337;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5334;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:4:{i:3;i:5349;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5340;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5133;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5334;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5334;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5349;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5096;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:1:{i:3;i:5349;}', -'a:4:{i:3;i:5115;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5349;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', 'a:4:{i:3;i:5349;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5337;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5329;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5327;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5349;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5350;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5350;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5350;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5350;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5350;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5351;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5322;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5322;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5328;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5352;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5090;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5328;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5090;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:3:{i:3;i:5328;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5061;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5061;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5061;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5061;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5352;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5061;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5061;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5322;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5352;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5061;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5352;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5061;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:3:{i:3;i:5352;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:3:{i:3;i:5327;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5347;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5326;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5347;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5327;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5327;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5346;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:4:{i:3;i:5327;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5346;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5117;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5347;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5347;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5326;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5329;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5133;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5115;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5326;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5337;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5326;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5326;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5347;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5115;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5125;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5327;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5322;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5356;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5356;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5139;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5348;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:3:{i:3;i:5125;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5086;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5086;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5125;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', 'a:4:{i:3;i:5125;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', 'a:4:{i:3;i:5125;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5346;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5125;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5086;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5138;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5086;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5138;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5088;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:1:{i:3;i:5262;}', -'a:4:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5121;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5088;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5127;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5138;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5138;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5086;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5346;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:4:{i:3;i:5125;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5092;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5085;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5092;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5085;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5136;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5123;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5085;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5123;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5121;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5085;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5085;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5125;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5348;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', 'a:4:{i:3;i:5125;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5086;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5125;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5143;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:3:{i:3;i:5137;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5137;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5137;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5137;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:1:{i:3;i:5348;}', +'a:4:{i:3;i:5137;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5348;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5137;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5351;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5137;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5360;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:1:{i:3;i:5346;}', +'a:4:{i:3;i:5143;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5360;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5141;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:1:{i:3;i:5345;}', +'a:3:{i:3;i:5141;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5141;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5141;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5141;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5345;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5141;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5345;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5141;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5347;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5347;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5346;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5141;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:1:{i:3;i:5347;}', +'a:4:{i:3;i:5347;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5143;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5143;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5143;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5347;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5346;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5143;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5137;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:3:{i:3;i:5134;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5127;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5128;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5130;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5358;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5130;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:1:{i:3;i:5358;}', +'a:4:{i:3;i:5130;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5358;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5358;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5128;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5128;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5128;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5357;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5130;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5128;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5085;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5129;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5086;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5138;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5138;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5113;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5127;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5127;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5091;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5113;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5113;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5113;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5087;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5113;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5127;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5127;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5091;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5091;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5091;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5091;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5091;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5357;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5128;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:1:{i:3;i:5357;}', 'a:4:{i:3;i:5128;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5091;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5357;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5128;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5091;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5087;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5113;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5088;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5138;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:3:{i:3;i:5088;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5136;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5088;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5121;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5138;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5136;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5117;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5121;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5087;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5113;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5087;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5113;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5087;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5087;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5128;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5087;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:1:{i:3;i:5258;}', -'a:4:{i:3;i:5123;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5093;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5084;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5123;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5089;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5121;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5089;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5129;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5084;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5129;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5319;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:5092;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5084;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5093;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5115;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5115;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5129;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:1:{i:3;i:5251;}', -'a:4:{i:3;i:5117;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5128;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5089;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5338;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5115;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5093;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5129;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5136;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5089;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5129;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5357;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5127;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5127;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', 'a:4:{i:3;i:5127;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5084;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5123;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5084;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5084;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5084;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5128;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5123;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5121;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5127;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5123;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5093;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5123;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5128;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5136;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5092;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5084;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5129;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5129;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5358;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5359;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5134;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5131;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5134;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5134;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:1:{i:3;i:5360;}', +'a:4:{i:3;i:5134;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5360;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5134;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:3:{i:3;i:5360;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5131;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5131;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5130;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5359;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5359;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5131;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5131;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:1:{i:3;i:5359;}', +'a:4:{i:3;i:5131;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5359;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5130;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5130;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5130;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5348;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5122;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4836;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4784;i:5;s:10:"SqwidgeBot";}', +'a:5:{i:3;i:5602;i:5;s:11:"Baiduspider";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', +'a:2:{i:3;i:4784;i:5;s:12:"ThunderStone";}', +'a:2:{i:3;i:4788;i:5;s:10:"KaloogaBot";}', +'a:5:{i:3;i:5573;i:6;s:3:"4.4";i:7;s:1:"4";i:8;s:1:"4";i:10;s:2:"98";}', +'a:5:{i:3;i:5573;i:6;s:3:"4.2";i:7;s:1:"4";i:8;s:1:"2";i:10;s:2:"98";}', +'a:5:{i:3;i:5573;i:6;s:3:"4.1";i:7;s:1:"4";i:8;s:1:"1";i:10;s:2:"98";}', +'a:5:{i:3;i:5573;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:10;s:2:"98";}', +'a:5:{i:3;i:5573;i:6;s:3:"4.5";i:7;s:1:"4";i:8;s:1:"5";i:10;s:2:"98";}', +'a:6:{i:3;i:5063;i:5;s:5:"Arora";i:6;s:5:"0.8.0";i:7;s:1:"0";i:8;s:3:"8.0";i:9;s:5:"Win32";}', +'a:5:{i:3;i:5326;i:6;s:3:"3.6";i:7;s:1:"3";i:8;s:1:"6";i:34;s:3:"1.9";}', +'a:4:{i:3;i:5434;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5226;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5221;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5221;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5221;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5226;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5449;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5226;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5226;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5226;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5221;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5226;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5226;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5220;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5220;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5220;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5220;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5220;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5220;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5219;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5221;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5221;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5221;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5434;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5431;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5431;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5431;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5431;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5434;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:3:{i:3;i:5431;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5433;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5433;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5433;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:3:{i:3;i:5434;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5433;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5434;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5449;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5449;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5449;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5219;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5433;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5449;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5219;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5220;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5219;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5219;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5219;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5219;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:6:{i:3;i:4594;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4584;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4583;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4589;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4589;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4589;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4589;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4589;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4594;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:2:{i:3;i:4657;i:5;s:26:"Automated Browscap Updater";}', +'a:6:{i:3;i:5063;i:5;s:5:"Arora";i:6;s:3:"0.6";i:7;s:1:"0";i:8;s:1:"6";i:9;s:5:"Win32";}', +'a:4:{i:3;i:5086;i:6;s:3:"5.1";i:7;s:1:"5";i:8;s:1:"1";}', +'a:4:{i:3;i:5086;i:6;s:3:"5.5";i:7;s:1:"5";i:8;s:1:"5";}', +'a:3:{i:3;i:5096;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5356;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5340;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5342;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5342;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5352;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5342;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:3:{i:3;i:5357;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5358;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5139;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5359;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:5092;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5128;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:1:{i:3;i:5252;}', -'a:4:{i:3;i:5085;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4832;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:4787;i:5;s:12:"ThunderStone";}', -'a:5:{i:3;i:5609;i:5;s:11:"Baiduspider";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', -'a:2:{i:3;i:4787;i:5;s:10:"SqwidgeBot";}', -'a:2:{i:3;i:4780;i:5;s:10:"KaloogaBot";}', -'a:5:{i:3;i:5558;i:6;s:3:"4.5";i:7;s:1:"4";i:8;s:1:"5";i:10;s:2:"98";}', -'a:5:{i:3;i:5558;i:6;s:3:"4.2";i:7;s:1:"4";i:8;s:1:"2";i:10;s:2:"98";}', -'a:5:{i:3;i:5558;i:6;s:3:"4.1";i:7;s:1:"4";i:8;s:1:"1";i:10;s:2:"98";}', -'a:5:{i:3;i:5558;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:10;s:2:"98";}', -'a:5:{i:3;i:5558;i:6;s:3:"4.4";i:7;s:1:"4";i:8;s:1:"4";i:10;s:2:"98";}', -'a:6:{i:3;i:5120;i:5;s:5:"Arora";i:6;s:5:"0.8.0";i:7;s:1:"0";i:8;s:3:"8.0";i:9;s:5:"Win32";}', -'a:5:{i:3;i:5320;i:6;s:3:"3.6";i:7;s:1:"3";i:8;s:1:"6";i:34;s:3:"1.9";}', -'a:4:{i:3;i:5232;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5232;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5236;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5232;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5236;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5236;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5236;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5232;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5236;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5232;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5236;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5232;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5236;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5229;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5229;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5229;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5229;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5229;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5229;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5229;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5228;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5228;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5228;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5228;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5228;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5228;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5228;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5232;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5452;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5453;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5453;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5453;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5453;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5452;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5452;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5452;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5452;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:3:{i:3;i:5451;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5453;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5456;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5456;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5451;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5456;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5456;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5456;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5451;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5451;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5451;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4591;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4577;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4577;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4590;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4577;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4577;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4577;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4585;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:2:{i:3;i:4646;i:5;s:26:"Automated Browscap Updater";}', -'a:6:{i:3;i:5120;i:5;s:5:"Arora";i:6;s:3:"0.6";i:7;s:1:"0";i:8;s:1:"6";i:9;s:5:"Win32";}', -'a:4:{i:3;i:5111;i:6;s:3:"5.5";i:7;s:1:"5";i:8;s:1:"5";}', -'a:4:{i:3;i:5111;i:6;s:3:"5.1";i:7;s:1:"5";i:8;s:1:"1";}', -'a:3:{i:3;i:5340;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5334;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5345;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5123;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5115;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5360;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5342;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5342;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5099;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5340;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5355;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5340;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:3:{i:3;i:5353;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5351;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5122;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5349;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5338;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5328;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5095;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5329;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5326;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5354;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5340;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5248;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', +'a:3:{i:3;i:5322;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5247;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', +'a:3:{i:3;i:5346;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5327;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5144;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5340;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5348;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5350;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5347;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5136;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5143;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5103;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5130;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5120;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5134;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5246;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', +'a:3:{i:3;i:5102;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5128;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5338;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5333;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5323;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5222;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', -'a:3:{i:3;i:5348;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5219;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', -'a:3:{i:3;i:5341;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5261;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', -'a:3:{i:3;i:5121;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5254;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', -'a:3:{i:3;i:5358;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5141;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5127;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5131;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5235;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', +'a:3:{i:3;i:5137;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5061;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5090;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5345;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5125;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5113;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5325;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5350;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5355;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5123;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5092;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5332;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5138;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5337;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5087;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5088;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5086;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5085;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5339;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:5351;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5346;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5327;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5342;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5129;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5084;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5133;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5093;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5091;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5117;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5114;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5089;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5096;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5127;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:5351;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5351;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5321;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:3:{i:3;i:5353;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:5321;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5351;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5321;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5321;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5351;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5321;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:2:{i:3;i:5222;i:9;s:6:"MacOSX";}', -'a:2:{i:3;i:5219;i:9;s:6:"MacOSX";}', -'a:2:{i:3;i:5254;i:9;s:6:"MacOSX";}', -'a:2:{i:3;i:5261;i:9;s:6:"MacOSX";}', -'a:6:{i:3;i:4585;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.3";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:7:{i:3;i:5449;i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:5:{i:3;i:5558;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:10;s:2:"95";}', -'a:2:{i:3;i:5614;i:5;s:16:"Yahoo!-AdCrawler";}', -'a:2:{i:3;i:5614;i:5;s:18:"Yahoo! Slurp China";}', -'a:4:{i:3;i:5111;i:6;s:3:"5.5";i:7;s:1:"5";i:8;s:1:"5";}', -'a:4:{i:3;i:4582;i:10;s:3:"1.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:5453;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5456;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5229;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5232;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5228;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5240;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4969;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:4969;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:3:{i:3;i:5452;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5239;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:4969;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5236;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5451;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:4969;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5258;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', -'a:4:{i:3;i:4774;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4774;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4774;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4969;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5126;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5333;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:5247;i:9;s:6:"MacOSX";}', +'a:2:{i:3;i:5248;i:9;s:6:"MacOSX";}', +'a:2:{i:3;i:5235;i:9;s:6:"MacOSX";}', +'a:2:{i:3;i:5246;i:9;s:6:"MacOSX";}', +'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.3";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:5:{i:3;i:5573;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:10;s:2:"95";}', +'a:7:{i:3;i:5437;i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:5612;i:5;s:16:"Yahoo!-AdCrawler";}', +'a:2:{i:3;i:5612;i:5;s:18:"Yahoo! Slurp China";}', +'a:4:{i:3;i:5086;i:6;s:3:"5.5";i:7;s:1:"5";i:8;s:1:"5";}', +'a:3:{i:3;i:5449;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5255;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', +'a:3:{i:3;i:5237;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:3:{i:3;i:5251;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', -'a:4:{i:3;i:4774;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5262;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', -'a:3:{i:3;i:5252;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', -'a:4:{i:3;i:4774;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:2:{i:3;i:4774;i:9;s:6:"MacOSX";}', -'a:4:{i:3;i:4774;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4981;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4981;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5253;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:4981;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4981;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4981;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5258;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', +'a:3:{i:3;i:5219;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:4789;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5220;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:4789;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5433;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4789;i:9;s:6:"MacOSX";}', +'a:4:{i:3;i:4789;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4789;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4789;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4789;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5250;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', +'a:3:{i:3;i:5431;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5226;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5434;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5221;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:4582;i:10;s:3:"1.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', 'a:2:{i:3;i:5258;i:9;s:6:"MacOSX";}', -'a:2:{i:3;i:5262;i:9;s:6:"MacOSX";}', -'a:2:{i:3;i:5252;i:9;s:6:"MacOSX";}', 'a:2:{i:3;i:5251;i:9;s:6:"MacOSX";}', -'a:6:{i:3;i:4579;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4579;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4579;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:2:{i:3;i:5255;i:9;s:6:"MacOSX";}', +'a:2:{i:3;i:5250;i:9;s:6:"MacOSX";}', +'a:6:{i:3;i:4588;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.2";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4588;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4588;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.1";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', 'a:4:{i:3;i:4582;i:10;s:3:"1.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4587;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.1";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.0";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4590;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4585;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.3";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:5:{i:3;i:4590;i:6;s:1:"0";i:7;s:1:"0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:5:{i:3;i:4591;i:6;s:1:"0";i:7;s:1:"0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4577;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4577;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4579;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4579;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4579;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4577;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4577;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4585;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.3";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4585;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4577;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:6:{i:3;i:4585;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4591;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:1:{i:3;i:5061;}', -'a:3:{i:3;i:5329;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5337;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5349;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5340;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5326;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:6:{i:3;i:4589;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4589;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4589;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"3.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4589;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4588;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4589;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.2";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.3";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4588;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4588;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"2.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4594;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4584;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4594;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.1";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4583;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:5:{i:3;i:4583;i:6;s:1:"0";i:7;s:1:"0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.2";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4594;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.1";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:5:{i:3;i:4584;i:6;s:1:"0";i:7;s:1:"0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4594;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"5.0";i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4581;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:6:{i:3;i:4593;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"4.3";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:1:{i:3;i:5079;}', +'a:3:{i:3;i:5356;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5130;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5102;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5127;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5096;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5357;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5358;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5359;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5144;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5128;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5061;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5360;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5141;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5090;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5099;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5126;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5348;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5346;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5347;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5327;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5338;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5334;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5120;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5345;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5348;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5341;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5125;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5138;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5358;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5332;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5323;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5092;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5123;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5333;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5350;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5327;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5103;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5332;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5328;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5139;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5134;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5349;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5355;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5346;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5342;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5121;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5093;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5127;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5114;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5091;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5325;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5338;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5336;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5335;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5095;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5353;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5092;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5133;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5117;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5113;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5086;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5115;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5088;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5087;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5129;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5085;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5096;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5089;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5084;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5123;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5339;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5136;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5359;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5319;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4832;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:2:{i:3;i:4787;i:5;s:6:"Setooz";}', -'a:6:{i:3;i:5098;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5098;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5098;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5098;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:4:{i:3;i:5255;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5453;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5254;i:9;s:6:"CentOS";}', -'a:3:{i:3;i:5236;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5261;i:9;s:6:"CentOS";}', -'a:5:{i:3;i:5605;i:6;s:3:"1.7";i:7;s:1:"1";i:8;s:1:"7";i:9;s:5:"Linux";}', -'a:3:{i:3;i:4969;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5229;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5222;i:9;s:6:"CentOS";}', -'a:3:{i:3;i:5451;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5219;i:9;s:6:"CentOS";}', -'a:3:{i:3;i:5456;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5452;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5232;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5228;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:4774;i:9;s:5:"Linux";}', -'a:3:{i:3;i:5351;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5321;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4587;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:5:{i:3;i:4587;i:6;s:1:"0";i:7;s:1:"0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:2:{i:3;i:4584;i:5;s:15:"Podtech Network";}', -'a:6:{i:3;i:5106;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5106;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5106;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5106;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:4:{i:3;i:5253;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5259;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5253;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5255;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5259;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5259;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5321;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5351;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5259;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5259;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5253;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:5:{i:3;i:5255;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:34;s:3:"2.1";}', -'a:4:{i:3;i:5255;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5253;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5255;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5257;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5257;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5257;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5257;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5257;i:9;s:6:"MacOSX";i:15;s:5:"false";i:34;s:3:"2.1";}', -'a:4:{i:3;i:5257;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:2:{i:3;i:5251;i:9;s:6:"CentOS";}', -'a:8:{i:3;i:5570;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:3:{i:3;i:5240;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5222;i:9;s:5:"Linux";}', -'a:3:{i:3;i:5239;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5261;i:9;s:5:"Linux";}', -'a:8:{i:3;i:5570;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:2:{i:3;i:5254;i:9;s:5:"Linux";}', -'a:8:{i:3;i:5570;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:2:{i:3;i:5219;i:9;s:5:"Linux";}', -'a:8:{i:3;i:5570;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:8:{i:3;i:5570;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:3:{i:3;i:4944;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:2:{i:3;i:5252;i:9;s:6:"CentOS";}', -'a:2:{i:3;i:5262;i:9;s:6:"CentOS";}', +'a:3:{i:3;i:5354;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5352;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5131;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5329;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5122;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5137;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5125;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5351;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5350;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5322;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5143;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4836;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:2:{i:3;i:4784;i:5;s:6:"Setooz";}', +'a:6:{i:3;i:5124;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5124;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5124;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5124;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:4:{i:3;i:5244;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4981;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5219;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:5235;i:9;s:6:"CentOS";}', +'a:3:{i:3;i:5433;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5220;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5431;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5226;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5434;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5449;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:5248;i:9;s:6:"CentOS";}', +'a:3:{i:3;i:5221;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:5247;i:9;s:6:"CentOS";}', +'a:5:{i:3;i:5613;i:6;s:3:"1.7";i:7;s:1:"1";i:8;s:1:"7";i:9;s:5:"Linux";}', +'a:2:{i:3;i:4789;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5246;i:9;s:6:"CentOS";}', +'a:3:{i:3;i:5340;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5342;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4581;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:5:{i:3;i:4581;i:6;s:1:"0";i:7;s:1:"0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', +'a:2:{i:3;i:4586;i:5;s:15:"Podtech Network";}', +'a:6:{i:3;i:5116;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5116;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5116;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5116;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:4:{i:3;i:5240;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5340;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5240;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5242;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5238;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:5:{i:3;i:5244;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:34;s:3:"2.1";}', +'a:4:{i:3;i:5238;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5238;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5238;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5238;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5242;i:9;s:6:"MacOSX";i:15;s:5:"false";i:34;s:3:"2.1";}', +'a:4:{i:3;i:5242;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5242;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5242;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5242;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5240;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5240;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5244;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5244;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5244;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5342;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:2:{i:3;i:5235;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5255;i:9;s:6:"CentOS";}', +'a:8:{i:3;i:5563;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:8:{i:3;i:5563;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:8:{i:3;i:5563;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:3:{i:3;i:5253;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5237;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:2:{i:3;i:5258;i:9;s:6:"CentOS";}', -'a:11:{i:3;i:4982;i:6;s:5:"12.00";i:7;s:2:"12";i:8;s:2:"00";i:9;s:7:"Android";i:10;s:3:"4.0";i:29;s:1:"3";i:31;s:12:"Galaxy Nexus";i:32;s:7:"Samsung";i:33;s:6:"Presto";i:34;s:4:"2.10";}', -'a:6:{i:3;i:4252;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:4255;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:4255;i:9;s:5:"WinNT";i:10;s:3:"6.1";i:11;s:10:"Windows NT";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:4252;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:4252;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"5.0";}', -'a:2:{i:3;i:4589;i:5;s:13:"FriendFeedBot";}', +'a:2:{i:3;i:5248;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5246;i:9;s:5:"Linux";}', +'a:8:{i:3;i:5563;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:2:{i:3;i:5251;i:9;s:6:"CentOS";}', +'a:2:{i:3;i:5250;i:9;s:6:"CentOS";}', +'a:2:{i:3;i:5247;i:9;s:5:"Linux";}', +'a:8:{i:3;i:5563;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:3:{i:3;i:4969;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:11:{i:3;i:4951;i:6;s:5:"12.00";i:7;s:2:"12";i:8;s:2:"00";i:9;s:7:"Android";i:10;s:3:"4.0";i:29;s:1:"3";i:31;s:12:"Galaxy Nexus";i:32;s:7:"Samsung";i:33;s:6:"Presto";i:34;s:4:"2.10";}', 'a:6:{i:3;i:4255;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"5.0";}', -'a:6:{i:3;i:5135;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5103;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5135;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5135;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5103;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5135;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5103;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5103;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:4:{i:3;i:5255;i:9;s:6:"MacOSX";i:15;s:5:"false";i:34;s:3:"2.0";}', -'a:3:{i:3;i:4969;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5319;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5258;i:9;s:5:"Linux";}', -'a:3:{i:3;i:5359;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:4774;i:9;s:5:"Linux";}', +'a:6:{i:3;i:4255;i:9;s:5:"WinNT";i:10;s:3:"6.1";i:11;s:10:"Windows NT";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:4251;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"5.0";}', +'a:6:{i:3;i:4255;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:4251;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:2:{i:3;i:4592;i:5;s:13:"FriendFeedBot";}', +'a:6:{i:3;i:4251;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5094;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5110;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5110;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5110;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5110;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5094;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5094;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5094;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:4:{i:3;i:5244;i:9;s:6:"MacOSX";i:15;s:5:"false";i:34;s:3:"2.0";}', +'a:2:{i:3;i:5250;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5255;i:9;s:5:"Linux";}', 'a:2:{i:3;i:5251;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5262;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5252;i:9;s:5:"Linux";}', -'a:3:{i:3;i:4832;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:5138;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', -'a:4:{i:3;i:5115;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', -'a:4:{i:3;i:5133;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', -'a:4:{i:3;i:5129;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', -'a:4:{i:3;i:5121;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', -'a:4:{i:3;i:5136;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', -'a:4:{i:3;i:5128;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', -'a:4:{i:3;i:5125;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', -'a:4:{i:3;i:5117;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', -'a:4:{i:3;i:5113;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', -'a:4:{i:3;i:5123;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:3:{i:3;i:5336;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4789;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5258;i:9;s:5:"Linux";}', +'a:3:{i:3;i:4981;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5335;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4836;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:4:{i:3;i:5127;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:4:{i:3;i:5137;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', 'a:4:{i:3;i:5092;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', -'a:2:{i:3;i:4657;i:5;s:11:"SuchbaerBot";}', -'a:5:{i:3;i:5614;i:5;s:15:"Yahoo-MMCrawler";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";}', -'a:4:{i:3;i:4252;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4252;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:6:{i:3;i:5586;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5586;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:4:{i:3;i:5253;i:9;s:6:"MacOSX";i:15;s:5:"false";i:34;s:3:"2.1";}', -'a:5:{i:3;i:5320;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:34;s:3:"1.8";}', -'a:7:{i:3;i:5320;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:6:"Debian";i:29;s:1:"2";i:34;s:3:"1.9";}', -'a:5:{i:3;i:4840;i:5;s:12:"BinaryCanary";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:5:{i:3;i:5436;i:5;s:19:"FacebookExternalHit";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', -'a:4:{i:3;i:5436;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:4:{i:3;i:5259;i:9;s:6:"MacOSX";i:15;s:5:"false";i:34;s:3:"2.1";}', -'a:4:{i:3;i:4835;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5098;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4835;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4835;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4835;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4835;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4849;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4849;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4863;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4863;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4849;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4863;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4849;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4863;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4849;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4863;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5098;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:2:{i:3;i:4250;i:5;s:12:"HistoryHound";}', -'a:4:{i:3;i:5098;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5098;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5098;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:5:{i:3;i:5320;i:6;s:3:"3.5";i:7;s:1:"3";i:8;s:1:"5";i:34;s:3:"1.9";}', -'a:2:{i:3;i:4589;i:5;s:12:"Cocoalicious";}', -'a:2:{i:3;i:4843;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:4839;i:9;s:7:"FreeBSD";}', -'a:3:{i:3;i:4870;i:5;s:6:"Yahoo!";i:28;s:4:"true";}', +'a:4:{i:3;i:5061;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:4:{i:3;i:5126;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:4:{i:3;i:5130;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:4:{i:3;i:5128;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:4:{i:3;i:5143;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:4:{i:3;i:5120;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:4:{i:3;i:5131;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:4:{i:3;i:5125;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:4:{i:3;i:5090;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:4:{i:3;i:5134;i:9;s:8:"ChromeOS";i:11;s:16:"Google Chrome OS";i:15;s:5:"false";}', +'a:5:{i:3;i:5612;i:5;s:15:"Yahoo-MMCrawler";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";}', +'a:2:{i:3;i:4645;i:5;s:11:"SuchbaerBot";}', +'a:4:{i:3;i:4251;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4251;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:6:{i:3;i:5567;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5567;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:4:{i:3;i:5240;i:9;s:6:"MacOSX";i:15;s:5:"false";i:34;s:3:"2.1";}', +'a:5:{i:3;i:5326;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:34;s:3:"1.8";}', +'a:7:{i:3;i:5326;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:6:"Debian";i:29;s:1:"2";i:34;s:3:"1.9";}', +'a:5:{i:3;i:4845;i:5;s:12:"BinaryCanary";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:4:{i:3;i:5441;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:5:{i:3;i:5441;i:5;s:19:"FacebookExternalHit";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', +'a:4:{i:3;i:5238;i:9;s:6:"MacOSX";i:15;s:5:"false";i:34;s:3:"2.1";}', +'a:4:{i:3;i:4882;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4877;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4877;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4882;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4882;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4882;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4877;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4877;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4877;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5124;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:2:{i:3;i:4252;i:5;s:12:"HistoryHound";}', +'a:4:{i:3;i:5124;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5124;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5124;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4882;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4885;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4885;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4885;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4885;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4885;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5124;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:5:{i:3;i:5326;i:6;s:3:"3.5";i:7;s:1:"3";i:8;s:1:"5";i:34;s:3:"1.9";}', +'a:2:{i:3;i:4592;i:5;s:12:"Cocoalicious";}', 'a:2:{i:3;i:4844;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:4848;i:9;s:7:"FreeBSD";}', +'a:3:{i:3;i:4879;i:5;s:6:"Yahoo!";i:28;s:4:"true";}', +'a:2:{i:3;i:4843;i:9;s:7:"FreeBSD";}', +'a:2:{i:3;i:4847;i:9;s:7:"FreeBSD";}', +'a:2:{i:3;i:4829;i:9;s:7:"FreeBSD";}', +'a:4:{i:3;i:5116;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', 'a:2:{i:3;i:4844;i:9;s:5:"Linux";}', -'a:2:{i:3;i:4848;i:9;s:5:"Linux";}', -'a:3:{i:3;i:4657;i:5;s:20:"Adobe Dialog Manager";i:9;s:6:"MacOSX";}', -'a:4:{i:3;i:5106;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:5:{i:3;i:4779;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:2:{i:3;i:4584;i:5;s:11:"NewsMonster";}', -'a:4:{i:3;i:5111;i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";}', +'a:4:{i:3;i:5116;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:5:{i:3;i:4774;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', +'a:4:{i:3;i:5116;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4645;i:5;s:20:"Adobe Dialog Manager";i:9;s:6:"MacOSX";}', +'a:7:{i:3;i:5262;i:6;s:3:"8.2";i:7;s:1:"8";i:8;s:1:"2";i:9;s:4:"JAVA";i:31;s:8:"GT-S5263";i:32;s:7:"Samsung";}', +'a:4:{i:3;i:5116;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:5:{i:3;i:4774;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', +'a:4:{i:3;i:5086;i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";}', 'a:2:{i:3;i:4843;i:9;s:5:"Linux";}', -'a:7:{i:3;i:5223;i:6;s:3:"8.2";i:7;s:1:"8";i:8;s:1:"2";i:9;s:4:"JAVA";i:31;s:8:"GT-S5263";i:32;s:7:"Samsung";}', -'a:5:{i:3;i:4779;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:4:{i:3;i:5106;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5106;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5106;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5106;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:5:{i:3;i:4779;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:2:{i:3;i:4839;i:9;s:5:"Linux";}', -'a:5:{i:3;i:4779;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:4:"true";}', -'a:5:{i:3;i:4779;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:4:"true";}', -'a:4:{i:3;i:5571;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', -'a:6:{i:3;i:5574;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"5.0";}', -'a:8:{i:3;i:5574;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:1:{i:3;i:5336;}', -'a:2:{i:3;i:4787;i:5;s:16:"ActiveTouristBot";}', -'a:2:{i:3;i:4589;i:5;s:7:"OneRiot";}', -'a:4:{i:3;i:4940;i:9;s:7:"Android";i:31;s:6:"Kindle";i:32;s:6:"Amazon";}', -'a:2:{i:3;i:4841;i:5;s:5:"Simpy";}', -'a:3:{i:3;i:4843;i:9;s:3:"Win";i:15;s:4:"true";}', +'a:2:{i:3;i:4586;i:5;s:11:"NewsMonster";}', +'a:5:{i:3;i:4774;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', +'a:2:{i:3;i:4847;i:9;s:5:"Linux";}', +'a:5:{i:3;i:4774;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:2:{i:3;i:4829;i:9;s:5:"Linux";}', +'a:5:{i:3;i:4774;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:4:{i:3;i:5116;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5555;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', +'a:8:{i:3;i:5561;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5561;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"5.0";}', +'a:1:{i:3;i:5334;}', +'a:2:{i:3;i:4784;i:5;s:16:"ActiveTouristBot";}', 'a:3:{i:3;i:4844;i:9;s:3:"Win";i:15;s:4:"true";}', -'a:4:{i:3;i:4940;i:9;s:5:"Linux";i:31;s:6:"Kindle";i:32;s:6:"Amazon";}', -'a:3:{i:3;i:4839;i:9;s:3:"Win";i:15;s:4:"true";}', -'a:2:{i:3;i:4848;i:9;s:3:"Win";}', -'a:2:{i:3;i:4787;i:5;s:9:"Vagabondo";}', -'a:2:{i:3;i:4844;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:4848;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:4843;i:9;s:6:"Debian";}', -'a:2:{i:3;i:4839;i:9;s:6:"Debian";}', -'a:2:{i:3;i:4839;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:4848;i:9;s:6:"Debian";}', +'a:4:{i:3;i:4944;i:9;s:5:"Linux";i:31;s:6:"Kindle";i:32;s:6:"Amazon";}', +'a:4:{i:3;i:4944;i:9;s:7:"Android";i:31;s:6:"Kindle";i:32;s:6:"Amazon";}', +'a:3:{i:3;i:4843;i:9;s:3:"Win";i:15;s:4:"true";}', +'a:3:{i:3;i:4847;i:9;s:3:"Win";i:15;s:4:"true";}', +'a:2:{i:3;i:4592;i:5;s:7:"OneRiot";}', +'a:2:{i:3;i:4829;i:9;s:3:"Win";}', +'a:2:{i:3;i:4854;i:5;s:5:"Simpy";}', +'a:2:{i:3;i:4847;i:9;s:6:"NetBSD";}', 'a:2:{i:3;i:4843;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:4847;i:9;s:6:"Debian";}', +'a:2:{i:3;i:4843;i:9;s:6:"Debian";}', +'a:2:{i:3;i:4829;i:9;s:6:"Debian";}', +'a:2:{i:3;i:4829;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:4784;i:5;s:9:"Vagabondo";}', +'a:2:{i:3;i:4844;i:9;s:6:"NetBSD";}', 'a:2:{i:3;i:4844;i:9;s:6:"Debian";}', +'a:7:{i:3;i:4961;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5110;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5094;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5094;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:4586;i:5;s:10:"FeedParser";}', +'a:4:{i:3;i:5110;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5110;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5110;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5110;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5094;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:7:{i:3;i:4941;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:7:{i:3;i:4942;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:7:{i:3;i:4974;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:7:{i:3;i:4974;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:7:{i:3;i:4941;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4941;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:7:{i:3;i:4942;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4941;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4942;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:7:{i:3;i:4961;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', 'a:6:{i:3;i:4582;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"1.0";i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:5103;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:7:{i:3;i:4950;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4957;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:7:{i:3;i:4955;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:7:{i:3;i:4955;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4955;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4957;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:7:{i:3;i:4957;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:7:{i:3;i:4956;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:7:{i:3;i:4956;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:7:{i:3;i:4957;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4955;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:7:{i:3;i:4950;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5103;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5135;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5135;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5135;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5103;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:2:{i:3;i:4584;i:5;s:10:"FeedParser";}', -'a:4:{i:3;i:5103;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5103;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:7:{i:3;i:4950;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:7:{i:3;i:4956;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:8:{i:3;i:5570;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:7:{i:3;i:4955;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:8:{i:3;i:5570;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:8:{i:3;i:5570;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:7:{i:3;i:4957;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:8:{i:3;i:5570;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:8:{i:3;i:5574;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:3:{i:3;i:4863;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4835;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5098;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:4942;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:7:{i:3;i:4961;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:7:{i:3;i:4941;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:8:{i:3;i:5563;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:7:{i:3;i:4974;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:8:{i:3;i:5561;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:8:{i:3;i:5563;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:8:{i:3;i:5563;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:8:{i:3;i:5563;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:7:{i:3;i:4942;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4882;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4877;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5124;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4885;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:6:{i:3;i:4582;i:6;s:1:"0";i:7;s:1:"0";i:10;s:3:"1.0";i:31;s:4:"iPod";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4849;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:5:{i:3;i:4657;i:5;s:16:"TweetedTimes Bot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:3:{i:3;i:4835;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5135;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4849;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5099;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5099;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5135;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4863;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5099;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5099;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:1:{i:3;i:4779;}', -'a:8:{i:3;i:5570;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:4:{i:3;i:5094;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:2:{i:3;i:5508;i:5;s:7:"Webaroo";}', -'a:2:{i:3;i:5607;i:9;s:9:"SymbianOS";}', -'a:3:{i:3;i:5106;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:2:{i:3;i:4584;i:5;s:22:"Tumblr RSS syndication";}', -'a:2:{i:3;i:4576;i:5;s:7:"Webscan";}', -'a:2:{i:3;i:4657;i:5;s:18:"LegalAnalysisAgent";}', +'a:5:{i:3;i:4645;i:5;s:16:"TweetedTimes Bot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:3:{i:3;i:4882;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:1:{i:3;i:4774;}', +'a:3:{i:3;i:4877;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5094;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5094;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5118;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:8:{i:3;i:5563;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:3:{i:3;i:4885;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5118;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5118;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5118;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:5510;i:5;s:7:"Webaroo";}', +'a:2:{i:3;i:5610;i:9;s:9:"SymbianOS";}', +'a:4:{i:3;i:5076;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5116;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:2:{i:3;i:4645;i:5;s:7:"Plukkie";}', +'a:2:{i:3;i:4579;i:5;s:7:"Webscan";}', 'a:6:{i:3;i:4255;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:7:"Plukkie";}', -'a:2:{i:3;i:4657;i:5;s:6:"80Legs";}', -'a:2:{i:3;i:4831;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:4831;i:9;s:6:"Debian";}', -'a:4:{i:3;i:4861;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4783;i:9;s:5:"WinME";i:10;s:2:"98";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4861;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:6:{i:3;i:5586;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:4:{i:3;i:4867;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4855;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4866;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4857;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4855;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4855;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4866;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4866;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:6:{i:3;i:5586;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:4:{i:3;i:4857;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4857;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4867;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4867;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4861;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:6:{i:3;i:5586;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:18:"LegalAnalysisAgent";}', +'a:2:{i:3;i:4586;i:5;s:22:"Tumblr RSS syndication";}', +'a:2:{i:3;i:4841;i:9;s:6:"Debian";}', +'a:2:{i:3;i:4645;i:5;s:6:"80Legs";}', +'a:2:{i:3;i:4841;i:9;s:7:"FreeBSD";}', +'a:4:{i:3;i:4880;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4886;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4878;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4878;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:6:{i:3;i:5567;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:4:{i:3;i:4883;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4878;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4881;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4880;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4883;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4883;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4881;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4880;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4886;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4881;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4886;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:2:{i:3;i:4777;i:10;s:2:"98";}', +'a:4:{i:3;i:4791;i:9;s:5:"WinME";i:10;s:2:"98";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:4772;i:9;s:5:"WinME";i:10;s:2:"98";i:11;s:10:"Windows ME";}', +'a:6:{i:3;i:5567;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', 'a:4:{i:3;i:4773;i:9;s:5:"WinME";i:10;s:2:"98";i:11;s:10:"Windows ME";}', -'a:2:{i:3;i:4771;i:10;s:2:"98";}', -'a:4:{i:3;i:4778;i:9;s:5:"WinME";i:10;s:2:"98";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4777;i:9;s:5:"WinME";i:10;s:2:"98";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4792;i:9;s:5:"WinME";i:10;s:2:"98";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5094;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5094;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5094;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5099;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5103;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5135;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:1:{i:3;i:5061;}', -'a:5:{i:3;i:4840;i:5;s:11:"UptimeRobot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4831;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:4584;i:5;s:12:"Newz Crawler";}', -'a:2:{i:3;i:4831;i:9;s:5:"Linux";}', -'a:8:{i:3;i:5570;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:3:{i:3;i:4835;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4863;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:4780;i:5;s:7:"Pandora";}', -'a:3:{i:3;i:5099;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:2:{i:3;i:4787;i:5;s:16:"Lipperhey Spider";}', -'a:2:{i:3;i:5357;i:5;s:8:"MS IPPPD";}', -'a:2:{i:3;i:5448;i:5;s:19:"NetcraftSurveyAgent";}', -'a:8:{i:3;i:4581;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:2:{i:3;i:4787;i:5;s:9:"MojeekBot";}', -'a:2:{i:3;i:4657;i:5;s:11:"JadynAveBot";}', -'a:5:{i:3;i:5634;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:29;s:1:"1";}', -'a:5:{i:3;i:5634;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:29;s:1:"1";}', +'a:4:{i:3;i:4779;i:9;s:5:"WinME";i:10;s:2:"98";i:11;s:10:"Windows ME";}', +'a:6:{i:3;i:5567;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:4:{i:3;i:4785;i:9;s:5:"WinME";i:10;s:2:"98";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5076;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5076;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5076;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5118;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5110;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5094;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:1:{i:3;i:5079;}', +'a:5:{i:3;i:4845;i:5;s:11:"UptimeRobot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4586;i:5;s:12:"Newz Crawler";}', +'a:2:{i:3;i:4841;i:9;s:6:"NetBSD";}', +'a:8:{i:3;i:5563;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:2:{i:3;i:4841;i:9;s:5:"Linux";}', +'a:3:{i:3;i:4882;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4877;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4788;i:5;s:7:"Pandora";}', +'a:3:{i:3;i:5118;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:2:{i:3;i:4784;i:5;s:16:"Lipperhey Spider";}', +'a:2:{i:3;i:5324;i:5;s:8:"MS IPPPD";}', +'a:2:{i:3;i:4784;i:5;s:9:"MojeekBot";}', +'a:2:{i:3;i:5440;i:5;s:19:"NetcraftSurveyAgent";}', +'a:8:{i:3;i:4585;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:2:{i:3;i:4645;i:5;s:11:"JadynAveBot";}', 'a:5:{i:3;i:5634;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:29;s:1:"1";}', 'a:5:{i:3;i:5634;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";i:29;s:1:"1";}', -'a:3:{i:3;i:4779;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', -'a:3:{i:3;i:5099;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:2:{i:3;i:5111;i:29;s:1:"1";}', -'a:3:{i:3;i:5094;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:2:{i:3;i:4779;i:9;s:6:"MacOSX";}', -'a:3:{i:3;i:5094;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:2:{i:3;i:4787;i:5;s:15:"Atrax Solutions";}', -'a:2:{i:3;i:5642;i:5;s:7:"BingBot";}', -'a:3:{i:3;i:4833;i:5;s:10:"RealPlayer";i:9;s:6:"MacOSX";}', -'a:4:{i:3;i:5094;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:2:{i:3;i:4787;i:5;s:16:"Inxight Software";}', -'a:2:{i:3;i:5067;i:5;s:18:"CC Metadata Scaper";}', -'a:5:{i:3;i:4787;i:5;s:6:"DBLBot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4584;i:5;s:4:"Rojo";}', -'a:4:{i:3;i:5257;i:9;s:7:"Android";i:15;s:5:"false";i:34;s:3:"2.0";}', -'a:7:{i:3;i:4956;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:7:{i:3;i:4957;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:2:{i:3;i:4584;i:5;s:4:"Rojo";}', -'a:4:{i:3;i:5259;i:9;s:7:"Android";i:15;s:5:"false";i:34;s:3:"2.0";}', -'a:7:{i:3;i:4950;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5142;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:2:{i:3;i:5502;i:9;s:6:"MacOSX";}', -'a:4:{i:3;i:4841;i:5;s:18:"Web Link Validator";i:10;s:2:"98";i:15;s:4:"true";}', -'a:2:{i:3;i:4780;i:5;s:12:"rssImagesBot";}', -'a:2:{i:3;i:4779;i:9;s:6:"CentOS";}', -'a:5:{i:3;i:4849;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";i:15;s:5:"false";}', -'a:6:{i:3;i:5142;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:4:{i:3;i:4835;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5099;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4863;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5255;i:9;s:7:"Android";i:15;s:5:"false";i:34;s:3:"2.0";}', -'a:7:{i:3;i:5223;i:6;s:3:"8.2";i:7;s:1:"8";i:8;s:1:"2";i:9;s:4:"JAVA";i:31;s:7:"Samsung";i:32;s:7:"Samsung";}', -'a:6:{i:3;i:5142;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5142;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5142;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:9:{i:3;i:4982;i:6;s:5:"12.00";i:7;s:2:"12";i:8;s:2:"00";i:9;s:7:"Android";i:10;s:3:"4.0";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', +'a:5:{i:3;i:5634;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:29;s:1:"1";}', +'a:5:{i:3;i:5634;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:29;s:1:"1";}', +'a:2:{i:3;i:5086;i:29;s:1:"1";}', +'a:3:{i:3;i:4774;i:9;s:9:"SymbianOS";i:26;s:4:"true";}', +'a:3:{i:3;i:5118;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5076;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:2:{i:3;i:4774;i:9;s:6:"MacOSX";}', +'a:3:{i:3;i:5076;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:2:{i:3;i:4784;i:5;s:15:"Atrax Solutions";}', +'a:2:{i:3;i:5643;i:5;s:7:"BingBot";}', +'a:3:{i:3;i:4839;i:5;s:10:"RealPlayer";i:9;s:6:"MacOSX";}', +'a:4:{i:3;i:5076;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:4784;i:5;s:16:"Inxight Software";}', +'a:2:{i:3;i:5060;i:5;s:18:"CC Metadata Scaper";}', +'a:5:{i:3;i:4784;i:5;s:6:"DBLBot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4586;i:5;s:4:"Rojo";}', +'a:7:{i:3;i:4974;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:7:{i:3;i:4941;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:7:{i:3;i:4961;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5093;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:2:{i:3;i:4586;i:5;s:4:"Rojo";}', +'a:4:{i:3;i:5242;i:9;s:7:"Android";i:15;s:5:"false";i:34;s:3:"2.0";}', +'a:4:{i:3;i:5238;i:9;s:7:"Android";i:15;s:5:"false";i:34;s:3:"2.0";}', +'a:2:{i:3;i:5520;i:9;s:6:"MacOSX";}', +'a:4:{i:3;i:4854;i:5;s:18:"Web Link Validator";i:10;s:2:"98";i:15;s:4:"true";}', +'a:2:{i:3;i:4788;i:5;s:12:"rssImagesBot";}', +'a:4:{i:3;i:4882;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:5:{i:3;i:4885;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";i:15;s:5:"false";}', +'a:4:{i:3;i:5244;i:9;s:7:"Android";i:15;s:5:"false";i:34;s:3:"2.0";}', +'a:4:{i:3;i:4877;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:6:{i:3;i:5093;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:2:{i:3;i:4774;i:9;s:6:"CentOS";}', +'a:4:{i:3;i:5118;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:6:{i:3;i:5093;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5093;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:7:{i:3;i:5262;i:6;s:3:"8.2";i:7;s:1:"8";i:8;s:1:"2";i:9;s:4:"JAVA";i:31;s:7:"Samsung";i:32;s:7:"Samsung";}', +'a:6:{i:3;i:5093;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:9:{i:3;i:4951;i:6;s:5:"12.00";i:7;s:2:"12";i:8;s:2:"00";i:9;s:7:"Android";i:10;s:3:"4.0";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', 'a:4:{i:3;i:5522;i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";}', -'a:1:{i:3;i:5583;}', -'a:1:{i:3;i:4839;}', +'a:1:{i:3;i:5585;}', +'a:1:{i:3;i:4847;}', 'a:1:{i:3;i:4843;}', 'a:1:{i:3;i:4844;}', -'a:1:{i:3;i:4848;}', -'a:4:{i:3;i:4947;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4947;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4947;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4947;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4947;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4947;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:6:{i:3;i:5570;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:4:{i:3;i:5253;i:9;s:7:"Android";i:15;s:5:"false";i:34;s:3:"2.0";}', -'a:4:{i:3;i:4948;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5094;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:6:{i:3;i:5570;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5570;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:4:{i:3;i:4948;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:2:{i:3;i:4779;i:9;s:5:"Linux";}', -'a:4:{i:3;i:4948;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4944;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4944;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4958;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4958;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4958;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4958;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4958;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4958;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4944;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4944;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4948;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4948;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4944;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4948;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4944;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5142;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5098;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4863;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5142;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5098;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4849;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4835;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:2:{i:3;i:5357;i:5;s:6:"MS IPP";}', -'a:2:{i:3;i:4657;i:5;s:13:"Twingly Recon";}', -'a:4:{i:3;i:4255;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4255;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:2:{i:3;i:4787;i:5;s:9:"AhrefsBot";}', -'a:2:{i:3;i:4787;i:5;s:6:"Knight";}', -'a:4:{i:3;i:5444;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5444;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5444;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5444;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5444;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:5:{i:3;i:5586;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:33;s:7:"Trident";}', -'a:6:{i:3;i:5574;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5574;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5574;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:4:{i:3;i:5586;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5586;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5586;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5586;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5116;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:7:{i:3;i:4957;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:7:{i:3;i:4957;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:7:{i:3;i:4956;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:7:{i:3;i:4950;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:4944;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:7:{i:3;i:4950;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:2:{i:3;i:4958;i:9;s:6:"MacOSX";}', -'a:7:{i:3;i:4956;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:6:{i:3;i:5570;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5570;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:6:{i:3;i:5137;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5098;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:5106;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5106;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:6:{i:3;i:5137;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5142;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:6:{i:3;i:5137;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5137;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5098;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:1:{i:3;i:5061;}', -'a:2:{i:3;i:4841;i:5;s:24:"NetPromoter Link Utility";}', -'a:2:{i:3;i:4657;i:5;s:8:"rogerbot";}', -'a:2:{i:3;i:4657;i:5;s:5:"roboo";}', -'a:2:{i:3;i:4657;i:5;s:18:"Europe Web Archive";}', -'a:1:{i:3;i:4831;}', -'a:2:{i:3;i:4657;i:5;s:6:"UnWrap";}', -'a:2:{i:3;i:4657;i:5;s:11:"SEOprofiler";}', -'a:6:{i:3;i:5570;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:1:{i:3;i:4886;}', -'a:2:{i:3;i:4841;i:5;s:9:"LinkTiger";}', -'a:1:{i:3;i:4873;}', -'a:1:{i:3;i:4882;}', -'a:4:{i:3;i:5099;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5099;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:2:{i:3;i:5094;i:15;s:5:"false";}', -'a:3:{i:3;i:4849;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4835;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4849;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4863;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5142;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5103;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5098;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5135;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5135;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5098;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:6:{i:3;i:5116;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5142;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:6:{i:3;i:5116;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5116;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5116;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5106;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:5103;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5106;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:4657;i:5;s:10:"Healthdash";}', -'a:2:{i:3;i:4657;i:5;s:7:"Diffbot";}', -'a:2:{i:3;i:4657;i:5;s:9:"ClixSense";}', -'a:6:{i:3;i:4581;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:2:{i:3;i:4657;i:5;s:6:"SEODat";}', -'a:6:{i:3;i:4581;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:2:{i:3;i:4840;i:5;s:18:"Gomez Site Monitor";}', -'a:6:{i:3;i:5574;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"5.0";}', -'a:2:{i:3;i:4584;i:5;s:8:"TailRank";}', +'a:1:{i:3;i:4829;}', +'a:4:{i:3;i:4965;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4965;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4965;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4965;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4965;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4965;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4969;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4952;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4973;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4973;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4973;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4973;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4973;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4973;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5240;i:9;s:7:"Android";i:15;s:5:"false";i:34;s:3:"2.0";}', +'a:4:{i:3;i:5076;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:6:{i:3;i:5563;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5563;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5563;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:4:{i:3;i:4952;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4969;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4952;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4969;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4969;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4969;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4952;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4952;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4952;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:4774;i:9;s:5:"Linux";}', +'a:4:{i:3;i:4969;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4877;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4885;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4882;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5124;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5093;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5124;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5093;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:2:{i:3;i:5324;i:5;s:6:"MS IPP";}', +'a:2:{i:3;i:4645;i:5;s:13:"Twingly Recon";}', +'a:4:{i:3;i:4255;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:2:{i:3;i:4784;i:5;s:9:"AhrefsBot";}', +'a:2:{i:3;i:4784;i:5;s:6:"Knight";}', +'a:4:{i:3;i:4255;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5450;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5450;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5450;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5450;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5450;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5567;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5567;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:5:{i:3;i:5567;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:33;s:7:"Trident";}', +'a:6:{i:3;i:5561;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5561;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:4:{i:3;i:5567;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:6:{i:3;i:5561;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:4:{i:3;i:5567;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:7:{i:3;i:4941;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:7:{i:3;i:4941;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:2:{i:3;i:4952;i:9;s:6:"MacOSX";}', +'a:6:{i:3;i:5115;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5563;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:3:{i:3;i:5100;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4969;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:7:{i:3;i:4961;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:6:{i:3;i:5563;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:7:{i:3;i:4961;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:7:{i:3;i:4974;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:7:{i:3;i:4974;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5124;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5093;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5116;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:6:{i:3;i:5115;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5115;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5115;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5116;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:1:{i:3;i:5079;}', +'a:3:{i:3;i:5124;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4854;i:5;s:24:"NetPromoter Link Utility";}', +'a:2:{i:3;i:4645;i:5;s:18:"Europe Web Archive";}', +'a:2:{i:3;i:4645;i:5;s:5:"roboo";}', +'a:2:{i:3;i:4645;i:5;s:8:"rogerbot";}', +'a:1:{i:3;i:4841;}', +'a:2:{i:3;i:4645;i:5;s:6:"UnWrap";}', +'a:2:{i:3;i:4645;i:5;s:11:"SEOprofiler";}', +'a:6:{i:3;i:5563;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:2:{i:3;i:4854;i:5;s:9:"LinkTiger";}', +'a:1:{i:3;i:4837;}', +'a:1:{i:3;i:4832;}', +'a:1:{i:3;i:4852;}', +'a:4:{i:3;i:5118;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5118;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:6:{i:3;i:5100;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5100;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:2:{i:3;i:5076;i:15;s:5:"false";}', +'a:3:{i:3;i:5116;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5124;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:5093;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:6:{i:3;i:5100;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5093;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4885;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4877;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5094;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4882;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5094;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5124;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4885;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5110;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5110;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:6:{i:3;i:5100;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5116;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4645;i:5;s:9:"ClixSense";}', +'a:2:{i:3;i:4645;i:5;s:7:"Diffbot";}', +'a:2:{i:3;i:4645;i:5;s:10:"Healthdash";}', +'a:6:{i:3;i:4585;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:2:{i:3;i:4645;i:5;s:6:"SEODat";}', +'a:6:{i:3;i:4585;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:6:{i:3;i:5561;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:33;s:7:"Trident";i:34;s:3:"5.0";}', +'a:2:{i:3;i:4586;i:5;s:8:"TailRank";}', +'a:2:{i:3;i:4845;i:5;s:18:"Gomez Site Monitor";}', +'a:4:{i:3;i:5081;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', 'a:4:{i:3;i:4773;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4773;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4771;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4773;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4792;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4792;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4773;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4792;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4773;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4771;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4792;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4777;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4783;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4783;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4783;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4783;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4783;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5100;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5100;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:2:{i:3;i:4780;i:5;s:9:"WebImages";}', -'a:4:{i:3;i:5100;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5100;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5100;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4783;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4778;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4777;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4777;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:4:{i:3;i:4777;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4771;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4771;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4777;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4773;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4773;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4773;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4773;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', 'a:4:{i:3;i:4777;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4778;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4778;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4778;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4778;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4778;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4771;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4944;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5094;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5094;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:4948;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5106;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5116;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5099;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5106;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4958;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5103;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:5135;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:5099;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5103;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5135;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:4787;i:5;s:8:"ScoutJet";}', -'a:2:{i:3;i:4576;i:5;s:14:"e-SocietyRobot";}', -'a:3:{i:3;i:5508;i:5;s:7:"Webaroo";i:10;s:3:"6.0";}', -'a:3:{i:3;i:4706;i:5;s:17:"BOTW Feed Grabber";i:27;s:4:"true";}', -'a:4:{i:3;i:5449;i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";}', -'a:4:{i:3;i:5449;i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";}', -'a:4:{i:3;i:5449;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', -'a:2:{i:3;i:4657;i:5;s:8:"aiHitBot";}', -'a:3:{i:3;i:4947;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4944;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4948;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:5:{i:3;i:4960;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:4978;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4960;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4960;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4978;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4978;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:4978;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:4960;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4965;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4959;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4959;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4959;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5094;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5094;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:6:{i:3;i:4959;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:4959;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:5:{i:3;i:4965;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:4965;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4965;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4965;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4978;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4960;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5103;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5135;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5135;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5099;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:5116;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:5103;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5099;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:4721;i:5;s:34:"Search Engine World HTML Validator";}', -'a:6:{i:3;i:4841;i:5;s:14:"Link Commander";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:5:"Win32";}', -'a:5:{i:3;i:4584;i:5;s:11:"FeedOnFeeds";i:6;s:3:"0.1";i:7;s:1:"0";i:8;s:1:"1";}', -'a:2:{i:3;i:4657;i:5;s:6:"Crawly";}', -'a:6:{i:3;i:5574;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', -'a:4:{i:3;i:5142;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5142;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5142;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5142;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5142;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5099;i:9;s:4:"OS/2";i:15;s:5:"false";}', -'a:6:{i:3;i:5073;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5099;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:6:{i:3;i:5574;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:5077;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:5077;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:5075;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:5077;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5077;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:4948;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5099;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:6:{i:3;i:5075;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5075;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5574;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5075;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5075;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:5073;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:5073;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5073;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5073;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:4:{i:3;i:4791;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4791;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4791;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4791;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4777;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4785;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:2:{i:3;i:4788;i:5;s:9:"WebImages";}', +'a:4:{i:3;i:5081;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4779;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4779;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4779;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4779;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4779;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4772;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4772;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4785;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4772;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4772;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4772;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4772;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4785;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4785;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4785;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4779;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4777;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5081;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5081;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5081;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4973;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4969;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5076;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5076;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', 'a:3:{i:3;i:5116;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:6:{i:3;i:5077;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5059;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:5059;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:3:{i:3;i:5099;i:9;s:5:"HP-UX";i:15;s:5:"false";}', 'a:3:{i:3;i:5094;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:6:{i:3;i:5059;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5059;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:5059;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5118;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5116;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4952;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5118;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5100;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5110;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5110;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5094;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:4787;i:5;s:18:"TwengaBot-Discover";}', -'a:2:{i:3;i:4657;i:5;s:13:"OpenTaggerBot";}', -'a:2:{i:3;i:4657;i:5;s:27:"Seznam screenshot-generator";}', -'a:5:{i:3;i:5523;i:5;s:8:"OffByOne";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', -'a:3:{i:3;i:4947;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4947;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4792;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4947;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4771;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4947;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:4778;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4777;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4783;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4947;i:9;s:4:"Win7";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4773;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4947;i:9;s:8:"WinVista";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:4944;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4948;i:9;s:4:"Win7";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4944;i:9;s:4:"Win7";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4948;i:9;s:7:"Win2003";i:11;s:12:"Windows 2003";}', -'a:3:{i:3;i:4944;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4948;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4948;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4948;i:9;s:8:"WinVista";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:4944;i:9;s:8:"WinVista";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4948;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:4944;i:9;s:7:"Win2003";i:11;s:12:"Windows 2003";}', -'a:3:{i:3;i:4958;i:9;s:7:"Win2003";i:11;s:12:"Windows 2003";}', -'a:3:{i:3;i:4958;i:9;s:8:"WinVista";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:4958;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4958;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:4958;i:9;s:4:"Win7";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4958;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4944;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";i:9;s:6:"MacOSX";i:29;s:1:"2";}', -'a:6:{i:3;i:5561;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:4714;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:34;s:3:"5.0";}', -'a:5:{i:3;i:4714;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:34;s:3:"2.0";}', -'a:5:{i:3;i:4714;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:34;s:3:"2.0";}', -'a:5:{i:3;i:4714;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:34;s:3:"5.0";}', -'a:5:{i:3;i:4714;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:34;s:3:"5.0";}', -'a:3:{i:3;i:5094;i:9;s:4:"OS/2";i:15;s:5:"false";}', +'a:2:{i:3;i:4579;i:5;s:14:"e-SocietyRobot";}', +'a:2:{i:3;i:4784;i:5;s:8:"ScoutJet";}', +'a:3:{i:3;i:5510;i:5;s:7:"Webaroo";i:10;s:3:"6.0";}', +'a:3:{i:3;i:4721;i:5;s:17:"BOTW Feed Grabber";i:27;s:4:"true";}', +'a:4:{i:3;i:5437;i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";}', +'a:2:{i:3;i:4645;i:5;s:8:"aiHitBot";}', +'a:4:{i:3;i:5437;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', +'a:4:{i:3;i:5437;i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";}', +'a:3:{i:3;i:4965;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4969;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4973;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5100;i:9;s:6:"IRIX64";i:15;s:5:"false";}', 'a:3:{i:3;i:5094;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5094;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:5:{i:3;i:4714;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:34;s:3:"5.0";}', -'a:5:{i:3;i:4714;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:34;s:3:"5.0";}', -'a:5:{i:3;i:4714;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:34;s:3:"2.0";}', -'a:6:{i:3;i:5561;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:4714;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:34;s:3:"2.0";}', -'a:5:{i:3;i:4714;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:34;s:3:"2.0";}', -'a:5:{i:3;i:4714;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:34;s:3:"5.0";}', -'a:5:{i:3;i:4714;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:34;s:3:"2.0";}', +'a:5:{i:3;i:4957;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:5:{i:3;i:4976;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', 'a:3:{i:3;i:5094;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:2:{i:3;i:4589;i:5;s:9:"Twitturls";}', -'a:2:{i:3;i:4584;i:5;s:8:"RSSMicro";}', -'a:2:{i:3;i:4841;i:5;s:19:"onCHECK Linkchecker";}', -'a:5:{i:3;i:4657;i:5;s:6:"Ezooms";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4787;i:5;s:12:"InfociousBot";}', -'a:4:{i:3;i:4778;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5080;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5080;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5080;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5057;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:2:{i:3;i:4771;i:10;s:2:"98";}', -'a:4:{i:3;i:4777;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:4778;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:4783;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5074;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5069;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5069;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5074;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5079;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5057;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5079;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4783;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:4777;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5060;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5060;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5060;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5057;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4773;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:4773;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:4792;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:4771;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:4792;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5137;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5137;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5137;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5137;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5137;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5142;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:1:{i:3;i:5318;}', -'a:2:{i:3;i:4787;i:5;s:11:"Linguee Bot";}', -'a:2:{i:3;i:4657;i:5;s:9:"Healthbot";}', -'a:2:{i:3;i:4841;i:5;s:8:"smartBot";}', -'a:5:{i:3;i:4584;i:5;s:11:"FeedFetcher";i:6;s:3:"0.0";i:7;s:1:"0";i:8;s:1:"0";}', -'a:2:{i:3;i:4043;i:15;s:4:"true";}', -'a:4:{i:3;i:5116;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5116;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5116;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5116;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:1:{i:3;i:5318;}', -'a:4:{i:3;i:5116;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5116;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5094;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:5:{i:3;i:4538;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Linux";}', -'a:2:{i:3;i:4718;i:9;s:6:"MacOSX";}', -'a:5:{i:3;i:5642;i:5;s:16:"msnbot-NewsBlogs";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', -'a:2:{i:3;i:5642;i:5;s:22:"msnbot-webmaster tools";}', -'a:4:{i:3;i:4789;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";}', -'a:2:{i:3;i:4787;i:5;s:11:"DuckDuckBot";}', -'a:3:{i:3;i:5557;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5566;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:5:{i:3;i:5631;i:6;s:3:"4.8";i:7;s:1:"4";i:8;s:1:"8";i:29;s:1:"3";}', -'a:6:{i:3;i:5631;i:6;s:3:"4.2";i:7;s:1:"4";i:8;s:1:"2";i:9;s:6:"MacOSX";i:29;s:1:"3";}', -'a:6:{i:3;i:5631;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:6:"MacOSX";i:29;s:1:"2";}', -'a:4:{i:3;i:4947;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:9;s:6:"MacOSX";i:29;s:1:"2";}', -'a:4:{i:3;i:4958;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:4944;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:4948;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:6:{i:3;i:4966;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4981;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:4972;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:4975;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5116;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:6:{i:3;i:4981;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4975;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:4975;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:4983;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4981;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4983;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4939;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4939;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4939;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4939;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4983;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4972;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4972;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4972;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4966;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:4939;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:5:{i:3;i:4967;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:4975;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4980;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:4981;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:4967;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4967;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4967;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4966;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4967;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4972;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4975;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5057;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:6:{i:3;i:4976;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4984;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4976;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4984;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5076;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5118;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5076;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:6:{i:3;i:4957;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4957;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4955;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4957;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4955;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5110;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:5110;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:6:{i:3;i:4955;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:4955;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:4955;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4957;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4946;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', 'a:6:{i:3;i:4976;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4984;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4966;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:4984;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:3:{i:3;i:5080;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5074;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:5:{i:3;i:4980;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:4980;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5069;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:6:{i:3;i:4980;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5079;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:6:{i:3;i:4980;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4984;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:4946;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:4946;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4946;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4976;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4976;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4946;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', 'a:6:{i:3;i:4976;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4963;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4983;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:6:{i:3;i:4963;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', -'a:5:{i:3;i:4983;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:5:{i:3;i:4966;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:3:{i:3;i:5118;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:6:{i:3;i:4854;i:5;s:14:"Link Commander";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:5:"Win32";}', +'a:2:{i:3;i:4700;i:5;s:34:"Search Engine World HTML Validator";}', +'a:5:{i:3;i:4586;i:5;s:11:"FeedOnFeeds";i:6;s:3:"0.1";i:7;s:1:"0";i:8;s:1:"1";}', +'a:2:{i:3;i:4645;i:5;s:6:"Crawly";}', +'a:6:{i:3;i:5561;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:15;s:5:"false";i:16;s:4:"true";}', +'a:4:{i:3;i:5093;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5093;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5093;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5093;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5093;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5100;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:6:{i:3;i:5058;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5118;i:9;s:4:"OS/2";i:15;s:5:"false";}', +'a:6:{i:3;i:5066;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5135;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5058;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:4973;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:6:{i:3;i:5066;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5058;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5118;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:6:{i:3;i:5135;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5135;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5135;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:5135;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:5561;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:5058;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:3:{i:3;i:5076;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:5:{i:3;i:5087;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:5087;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5118;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:5:{i:3;i:5066;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:5087;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5087;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5118;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:6:{i:3;i:5087;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5561;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5066;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5058;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:5066;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5076;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4784;i:5;s:18:"TwengaBot-Discover";}', +'a:2:{i:3;i:4645;i:5;s:13:"OpenTaggerBot";}', +'a:2:{i:3;i:4645;i:5;s:27:"Seznam screenshot-generator";}', +'a:5:{i:3;i:5517;i:5;s:8:"OffByOne";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', +'a:3:{i:3;i:4965;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4773;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4772;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4965;i:9;s:8:"WinVista";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4779;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4785;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4965;i:9;s:4:"Win7";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4777;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4965;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4965;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:4791;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4965;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4973;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:4973;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4952;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4952;i:9;s:7:"Win2003";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4952;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:4973;i:9;s:8:"WinVista";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4952;i:9;s:4:"Win7";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4969;i:9;s:4:"Win7";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4969;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4973;i:9;s:7:"Win2003";i:11;s:12:"Windows 2003";}', +'a:3:{i:3;i:4973;i:9;s:4:"Win7";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4973;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4969;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";i:9;s:6:"MacOSX";i:29;s:1:"2";}', +'a:3:{i:3;i:4952;i:9;s:8:"WinVista";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4969;i:9;s:8:"WinVista";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4969;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4969;i:9;s:7:"Win2003";i:11;s:12:"Windows 2003";}', +'a:3:{i:3;i:4952;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', +'a:6:{i:3;i:5560;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5076;i:9;s:4:"OS/2";i:15;s:5:"false";}', +'a:6:{i:3;i:5560;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:4712;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:34;s:3:"2.0";}', +'a:3:{i:3;i:5076;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:5:{i:3;i:4712;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:34;s:3:"5.0";}', +'a:5:{i:3;i:4712;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:34;s:3:"5.0";}', +'a:5:{i:3;i:4712;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:34;s:3:"5.0";}', +'a:3:{i:3;i:5076;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5076;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:5:{i:3;i:4712;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:34;s:3:"5.0";}', +'a:5:{i:3;i:4712;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:34;s:3:"2.0";}', +'a:5:{i:3;i:4712;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:34;s:3:"5.0";}', +'a:5:{i:3;i:4712;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:34;s:3:"2.0";}', +'a:5:{i:3;i:4712;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:34;s:3:"5.0";}', +'a:5:{i:3;i:4712;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:34;s:3:"2.0";}', +'a:5:{i:3;i:4712;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:34;s:3:"2.0";}', +'a:5:{i:3;i:4712;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:34;s:3:"2.0";}', +'a:2:{i:3;i:4854;i:5;s:19:"onCHECK Linkchecker";}', +'a:5:{i:3;i:4645;i:5;s:6:"Ezooms";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4586;i:5;s:8:"RSSMicro";}', +'a:2:{i:3;i:4592;i:5;s:9:"Twitturls";}', +'a:2:{i:3;i:4784;i:5;s:12:"InfociousBot";}', +'a:4:{i:3;i:5136;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4779;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5136;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4773;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:4773;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5067;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5062;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4777;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:2:{i:3;i:4777;i:10;s:2:"98";}', +'a:4:{i:3;i:5062;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4791;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:4779;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:4791;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5070;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4785;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5070;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4785;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:4772;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5082;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5082;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5070;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5082;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5067;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5069;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5069;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5069;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4772;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5115;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5115;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5093;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5115;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5115;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5115;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:1:{i:3;i:5330;}', +'a:2:{i:3;i:4784;i:5;s:11:"Linguee Bot";}', +'a:2:{i:3;i:4645;i:5;s:9:"Healthbot";}', +'a:5:{i:3;i:4586;i:5;s:11:"FeedFetcher";i:6;s:3:"0.0";i:7;s:1:"0";i:8;s:1:"0";}', +'a:2:{i:3;i:4854;i:5;s:8:"smartBot";}', +'a:2:{i:3;i:4045;i:15;s:4:"true";}', +'a:4:{i:3;i:5100;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5100;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:1:{i:3;i:5330;}', +'a:4:{i:3;i:5100;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5100;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5100;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5100;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:5076;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:5:{i:3;i:4540;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Linux";}', +'a:2:{i:3;i:4706;i:9;s:6:"MacOSX";}', +'a:5:{i:3;i:5643;i:5;s:16:"msnbot-NewsBlogs";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', +'a:2:{i:3;i:5643;i:5;s:22:"msnbot-webmaster tools";}', +'a:2:{i:3;i:4784;i:5;s:11:"DuckDuckBot";}', +'a:4:{i:3;i:4790;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";}', +'a:5:{i:3;i:5629;i:6;s:3:"4.8";i:7;s:1:"4";i:8;s:1:"8";i:29;s:1:"3";}', +'a:6:{i:3;i:5629;i:6;s:3:"4.2";i:7;s:1:"4";i:8;s:1:"2";i:9;s:6:"MacOSX";i:29;s:1:"3";}', +'a:6:{i:3;i:5629;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:6:"MacOSX";i:29;s:1:"2";}', +'a:3:{i:3;i:5554;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:9;s:6:"MacOSX";i:29;s:1:"2";}', +'a:4:{i:3;i:4965;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5587;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:4969;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:4952;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:4973;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:6:{i:3;i:4962;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4963;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', 'a:6:{i:3;i:4963;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4963;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4986;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:4978;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:4958;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4962;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4958;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4986;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4963;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', 'a:5:{i:3;i:4963;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:5:{i:3;i:4976;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', -'a:6:{i:3;i:4963;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:3:{i:3;i:5060;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:6:{i:3;i:4981;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', -'a:2:{i:3;i:5357;i:5;s:10:"MS IPP DAV";}', -'a:2:{i:3;i:4706;i:5;s:11:"BOTW Spider";}', -'a:3:{i:3;i:5080;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5074;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:5:{i:3;i:5571;i:6;s:3:"0.7";i:7;s:1:"0";i:8;s:1:"7";i:13;s:4:"true";}', +'a:5:{i:3;i:4962;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:4968;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4962;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4962;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4958;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:4977;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:4968;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4971;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4956;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4940;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4978;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4971;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4940;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4971;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4977;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4940;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4940;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4956;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:4940;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:4956;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4978;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5100;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:6:{i:3;i:4971;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:4971;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:4978;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4956;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:4956;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:4977;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4977;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:4958;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:4978;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4968;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4986;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4977;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5082;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:6:{i:3;i:4986;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:5:{i:3;i:4986;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:4954;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4954;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4954;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4954;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:5:"false";i:16;s:4:"true";}', +'a:3:{i:3;i:5136;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5062;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5067;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5070;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5069;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:5:{i:3;i:4954;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:5:{i:3;i:4968;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";i:16;s:4:"true";}', +'a:6:{i:3;i:4958;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:6:{i:3;i:4968;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:2:{i:3;i:4721;i:5;s:11:"BOTW Spider";}', +'a:2:{i:3;i:5324;i:5;s:10:"MS IPP DAV";}', +'a:4:{i:3;i:5555;i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";}', +'a:4:{i:3;i:5555;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:5:{i:3;i:5555;i:6;s:3:"1.3";i:7;s:1:"1";i:8;s:1:"3";i:9;s:6:"MacOSX";}', +'a:5:{i:3;i:5555;i:6;s:3:"0.8";i:7;s:1:"0";i:8;s:1:"8";i:13;s:4:"true";}', +'a:3:{i:3;i:5082;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:5:{i:3;i:5555;i:6;s:3:"1.6";i:7;s:1:"1";i:8;s:1:"6";i:9;s:6:"MacOSX";}', +'a:5:{i:3;i:5555;i:6;s:3:"0.7";i:7;s:1:"0";i:8;s:1:"7";i:13;s:4:"true";}', +'a:3:{i:3;i:5062;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', 'a:3:{i:3;i:5069;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5079;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:5:{i:3;i:5571;i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";i:9;s:6:"MacOSX";}', -'a:5:{i:3;i:5571;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:13;s:4:"true";}', -'a:5:{i:3;i:5571;i:6;s:3:"1.6";i:7;s:1:"1";i:8;s:1:"6";i:9;s:6:"MacOSX";}', -'a:3:{i:3;i:5060;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:5:{i:3;i:5571;i:6;s:3:"0.8";i:7;s:1:"0";i:8;s:1:"8";i:13;s:4:"true";}', -'a:3:{i:3;i:4947;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:4:{i:3;i:5571;i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";}', -'a:4:{i:3;i:5571;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:5:{i:3;i:5571;i:6;s:3:"1.4";i:7;s:1:"1";i:8;s:1:"4";i:9;s:6:"MacOSX";}', -'a:4:{i:3;i:4947;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5057;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:5:{i:3;i:5571;i:6;s:3:"1.3";i:7;s:1:"1";i:8;s:1:"3";i:9;s:6:"MacOSX";}', -'a:3:{i:3;i:5116;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:4958;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:4958;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:3:{i:3;i:4944;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:4:{i:3;i:4960;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4965;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4965;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4965;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4965;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:2:{i:3;i:4043;i:15;s:4:"true";}', -'a:3:{i:3;i:4948;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:4:{i:3;i:4959;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4959;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4959;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4959;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4959;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4959;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4948;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:4965;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4965;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4960;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4960;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4960;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4960;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:3:{i:3;i:4584;i:5;s:8:"Mobitype";i:9;s:5:"Win32";}', -'a:4:{i:3;i:4960;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4978;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4978;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4978;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4978;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4978;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4978;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4944;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5225;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5225;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5225;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5225;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:2:{i:3;i:4657;i:5;s:8:"Nigma.ru";}', -'a:2:{i:3;i:5559;i:5;s:21:"Yandex MirrorDetector";}', -'a:2:{i:3;i:4657;i:5;s:6:"Reddit";}', -'a:4:{i:3;i:4649;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4649;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4649;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4965;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:3:{i:3;i:5136;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5067;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:5:{i:3;i:5555;i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";i:9;s:6:"MacOSX";}', +'a:4:{i:3;i:4965;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5070;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:5:{i:3;i:5555;i:6;s:3:"1.4";i:7;s:1:"1";i:8;s:1:"4";i:9;s:6:"MacOSX";}', +'a:5:{i:3;i:5555;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:13;s:4:"true";}', +'a:4:{i:3;i:4976;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4955;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4976;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4976;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4946;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4946;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4976;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4946;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:3:{i:3;i:4973;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:4:{i:3;i:4946;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4973;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:2:{i:3;i:4045;i:15;s:4:"true";}', +'a:4:{i:3;i:4952;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:4976;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4976;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4969;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:4957;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4957;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:3:{i:3;i:4952;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:4:{i:3;i:4957;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4957;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4957;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5100;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4969;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:4:{i:3;i:4955;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4946;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4955;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4957;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4955;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4955;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4586;i:5;s:8:"Mobitype";i:9;s:5:"Win32";}', +'a:4:{i:3;i:4955;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4946;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5249;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5249;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5249;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5249;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:2:{i:3;i:4645;i:5;s:8:"Nigma.ru";}', +'a:2:{i:3;i:5588;i:5;s:21:"Yandex MirrorDetector";}', +'a:2:{i:3;i:4645;i:5;s:6:"Reddit";}', +'a:4:{i:3;i:5087;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4654;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4710;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4654;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4653;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5058;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4639;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4654;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5066;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5066;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4723;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4723;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4723;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4723;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4651;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:3:{i:3;i:4723;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4639;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4658;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4658;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4653;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4710;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4658;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4710;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5135;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5066;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4653;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5135;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5135;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5135;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5135;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4653;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4710;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', 'a:4:{i:3;i:4651;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4641;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5058;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4653;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4710;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', 'a:4:{i:3;i:4651;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4720;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4649;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4649;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5073;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4643;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5077;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4641;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4649;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5077;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', 'a:4:{i:3;i:4651;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', 'a:4:{i:3;i:4651;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5077;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5075;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4641;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4641;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5075;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5075;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5077;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4641;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5075;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5075;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5075;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5066;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5066;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', 'a:4:{i:3;i:4651;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4651;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5077;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5077;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4643;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4643;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4724;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4724;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4720;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5059;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4724;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4724;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5059;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5073;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4720;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5073;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5073;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4720;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5073;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4720;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4720;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4724;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4724;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4639;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4639;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4639;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4643;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4643;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4643;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5059;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5059;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4639;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5059;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4710;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4723;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4654;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:5135;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4658;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:4:{i:3;i:4639;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5073;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5087;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5058;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5087;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5058;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5058;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4639;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4654;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5087;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4654;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5066;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4639;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5087;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', 'a:4:{i:3;i:4639;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5059;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4641;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:1:{i:3;i:5318;}', -'a:2:{i:3;i:4782;i:5;s:20:"FAST MetaWeb Crawler";}', -'a:2:{i:3;i:4250;i:5;s:16:"1st ZipCommander";}', -'a:2:{i:3;i:4787;i:5;s:7:"Voyager";}', -'a:3:{i:3;i:4702;i:9;s:5:"WinNT";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4718;i:9;s:5:"WinNT";i:11;s:10:"Windows NT";i:15;s:4:"true";}', -'a:4:{i:3;i:5523;i:5;s:12:"eStyleSearch";i:10;s:3:"5.0";i:15;s:4:"true";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";i:9;s:6:"Mac68K";i:29;s:1:"2";}', -'a:6:{i:3;i:5631;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:6:"MacPPC";i:29;s:1:"2";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";i:9;s:6:"MacPPC";i:29;s:1:"2";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:9;s:6:"MacPPC";i:29;s:1:"2";}', -'a:4:{i:3;i:4704;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4704;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4704;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4704;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4704;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4704;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4722;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4707;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4707;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4707;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4707;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4707;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4707;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4722;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4722;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4722;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4722;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4722;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4700;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4709;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4709;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5087;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5058;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4653;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4658;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4658;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:1:{i:3;i:5330;}', +'a:4:{i:3;i:4706;i:9;s:5:"WinNT";i:11;s:10:"Windows NT";i:15;s:4:"true";}', +'a:2:{i:3;i:4252;i:5;s:16:"1st ZipCommander";}', +'a:2:{i:3;i:4786;i:5;s:20:"FAST MetaWeb Crawler";}', +'a:2:{i:3;i:4784;i:5;s:7:"Voyager";}', +'a:3:{i:3;i:4711;i:9;s:5:"WinNT";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5517;i:5;s:12:"eStyleSearch";i:10;s:3:"5.0";i:15;s:4:"true";}', +'a:6:{i:3;i:5629;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:6:"MacPPC";i:29;s:1:"2";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";i:9;s:6:"Mac68K";i:29;s:1:"2";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";i:9;s:6:"MacPPC";i:29;s:1:"2";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:9;s:6:"MacPPC";i:29;s:1:"2";}', +'a:3:{i:3;i:4719;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4713;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4719;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4715;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', 'a:3:{i:3;i:4715;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', 'a:4:{i:3;i:4715;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4710;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4709;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4709;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:4710;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4710;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4709;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4709;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4715;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4710;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4700;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:5574;i:9;s:7:"Win2000";i:10;s:4:"5.01";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4700;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4710;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4700;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4700;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4715;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4715;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4714;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4719;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4724;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4724;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4713;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4719;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4714;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4719;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4713;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4719;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4722;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5561;i:9;s:7:"Win2000";i:10;s:4:"5.01";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4713;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4713;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4717;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4713;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4722;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4714;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4722;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4714;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4714;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4717;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4717;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', 'a:4:{i:3;i:4715;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4700;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4710;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5225;i:9;s:6:"MacOSX";i:10;s:4:"10.0";}', -'a:3:{i:3;i:4714;i:9;s:6:"MacOSX";i:34;s:3:"5.0";}', -'a:4:{i:3;i:4714;i:9;s:6:"MacOSX";i:15;s:5:"false";i:34;s:3:"2.0";}', -'a:4:{i:3;i:5604;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4657;i:5;s:9:"neTVision";}', -'a:5:{i:3;i:5510;i:5;s:23:"FeedHub MetaDataFetcher";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:4:{i:3;i:5500;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";}', -'a:2:{i:3;i:4657;i:5;s:9:"Vonna.com";}', -'a:2:{i:3;i:5067;i:5;s:6:"Inclue";}', -'a:2:{i:3;i:4657;i:5;s:6:"AdHitz";}', -'a:2:{i:3;i:4787;i:5;s:12:"Busiversebot";}', -'a:2:{i:3;i:4646;i:5;s:22:"Browscap Mirror System";}', -'a:2:{i:3;i:4584;i:5;s:19:"Strategic Board Bot";}', -'a:2:{i:3;i:5642;i:5;s:12:"renlifangbot";}', -'a:2:{i:3;i:4657;i:5;s:6:"Gnomit";}', -'a:2:{i:3;i:5642;i:5;s:6:"Danger";}', +'a:4:{i:3;i:4722;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4717;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4715;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:3:{i:3;i:4717;i:9;s:4:"Win8";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4722;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4714;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4722;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4717;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4715;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4724;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4724;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4724;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4724;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4712;i:9;s:6:"MacOSX";i:34;s:3:"5.0";}', +'a:4:{i:3;i:4712;i:9;s:6:"MacOSX";i:15;s:5:"false";i:34;s:3:"2.0";}', +'a:3:{i:3;i:5249;i:9;s:6:"MacOSX";i:10;s:4:"10.0";}', +'a:4:{i:3;i:5614;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4645;i:5;s:9:"Vonna.com";}', +'a:5:{i:3;i:5507;i:5;s:23:"FeedHub MetaDataFetcher";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4645;i:5;s:9:"neTVision";}', +'a:2:{i:3;i:4645;i:5;s:6:"AdHitz";}', +'a:2:{i:3;i:4784;i:5;s:12:"Busiversebot";}', +'a:4:{i:3;i:5508;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";}', +'a:2:{i:3;i:5060;i:5;s:6:"Inclue";}', +'a:2:{i:3;i:5643;i:5;s:12:"renlifangbot";}', +'a:2:{i:3;i:4586;i:5;s:19:"Strategic Board Bot";}', +'a:2:{i:3;i:4657;i:5;s:22:"Browscap Mirror System";}', +'a:2:{i:3;i:4645;i:5;s:6:"Gnomit";}', +'a:2:{i:3;i:5643;i:5;s:6:"Danger";}', +'a:2:{i:3;i:4645;i:5;s:14:"iCjobs Crawler";}', +'a:4:{i:3;i:5082;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5136;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', 'a:4:{i:3;i:5069;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5080;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5074;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5584;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";}', -'a:2:{i:3;i:4657;i:5;s:14:"iCjobs Crawler";}', -'a:4:{i:3;i:5079;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5584;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', -'a:4:{i:3;i:5060;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5057;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5574;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:1:{i:3;i:5587;}', -'a:4:{i:3;i:5574;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5574;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5574;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5574;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5573;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";}', -'a:4:{i:3;i:5573;i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', -'a:4:{i:3;i:5573;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:4:{i:3;i:5573;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";}', -'a:4:{i:3;i:5573;i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";}', -'a:4:{i:3;i:5573;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";}', -'a:4:{i:3;i:5573;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";}', -'a:6:{i:3;i:5509;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', -'a:2:{i:3;i:4580;i:5;s:24:"Advanced Email Extractor";}', -'a:2:{i:3;i:4840;i:5;s:7:"Pingdom";}', -'a:2:{i:3;i:5642;i:5;s:13:"msnbot-mobile";}', -'a:2:{i:3;i:4657;i:5;s:16:"MapoftheInternet";}', -'a:6:{i:3;i:5067;i:5;s:20:"Windows-RSS-Platform";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:9;s:5:"Win32";}', -'a:7:{i:3;i:5570;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5574;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:7:{i:3;i:5570;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:7:{i:3;i:5570;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:7:{i:3;i:5570;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:7:{i:3;i:5570;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:5:{i:3;i:5057;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', -'a:5:{i:3;i:5079;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', -'a:5:{i:3;i:5074;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', -'a:5:{i:3;i:5069;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', -'a:5:{i:3;i:5080;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', -'a:5:{i:3;i:5060;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', +'a:4:{i:3;i:5562;i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";}', +'a:4:{i:3;i:5062;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5067;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5070;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5562;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', +'a:4:{i:3;i:5561;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:1:{i:3;i:5568;}', 'a:4:{i:3;i:5561;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5561;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5561;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', 'a:4:{i:3;i:5561;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5561;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5137;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5137;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5137;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:5:{i:3;i:5510;i:5;s:21:"FeedHub FeedDiscovery";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4841;i:5;s:14:"Dead-Links.com";}', -'a:6:{i:3;i:5357;i:5;s:15:"Microsoft Excel";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:9;s:6:"MacOSX";}', -'a:4:{i:3;i:4345;i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";}', -'a:4:{i:3;i:4345;i:6;s:3:"1.6";i:7;s:1:"1";i:8;s:1:"6";}', -'a:4:{i:3;i:4345;i:6;s:3:"1.4";i:7;s:1:"1";i:8;s:1:"4";}', -'a:4:{i:3;i:4345;i:6;s:3:"1.7";i:7;s:1:"1";i:8;s:1:"7";}', -'a:4:{i:3;i:4345;i:6;s:3:"1.3";i:7;s:1:"1";i:8;s:1:"3";}', -'a:4:{i:3;i:4345;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:4:{i:3;i:4345;i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', -'a:4:{i:3;i:4345;i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";}', -'a:4:{i:3;i:5057;i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', -'a:5:{i:3;i:5079;i:9;s:5:"Win31";i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', -'a:4:{i:3;i:4345;i:6;s:3:"1.8";i:7;s:1:"1";i:8;s:1:"8";}', -'a:4:{i:3;i:5060;i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', -'a:5:{i:3;i:5080;i:9;s:5:"Win31";i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', -'a:5:{i:3;i:5069;i:9;s:5:"Win31";i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', -'a:5:{i:3;i:5074;i:9;s:5:"Win31";i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', -'a:4:{i:3;i:4975;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4966;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4980;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4975;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4981;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4967;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4967;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4939;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4958;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:4:{i:3;i:4975;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4939;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4972;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4983;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4939;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4984;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4975;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4966;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5137;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:4:{i:3;i:4980;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4967;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4967;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4967;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4984;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4975;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4980;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4980;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4980;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:4944;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:4:{i:3;i:4966;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4939;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4981;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4939;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4984;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4967;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4948;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:4:{i:3;i:4966;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4980;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4939;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4975;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4976;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4976;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4976;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4976;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4966;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4963;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4984;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5575;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";}', +'a:4:{i:3;i:5575;i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";}', +'a:4:{i:3;i:5575;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:4:{i:3;i:5575;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";}', +'a:4:{i:3;i:5575;i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', +'a:4:{i:3;i:5575;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";}', +'a:4:{i:3;i:5575;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";}', +'a:6:{i:3;i:5506;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";i:15;s:5:"false";i:16;s:4:"true";}', +'a:2:{i:3;i:4845;i:5;s:7:"Pingdom";}', +'a:2:{i:3;i:4576;i:5;s:24:"Advanced Email Extractor";}', +'a:2:{i:3;i:4645;i:5;s:16:"MapoftheInternet";}', +'a:2:{i:3;i:5643;i:5;s:13:"msnbot-mobile";}', +'a:6:{i:3;i:5060;i:5;s:20:"Windows-RSS-Platform";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:9;s:5:"Win32";}', +'a:5:{i:3;i:5136;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', +'a:7:{i:3;i:5563;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:5:{i:3;i:5070;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', +'a:7:{i:3;i:5563;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:5:{i:3;i:5082;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', +'a:5:{i:3;i:5067;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', +'a:7:{i:3;i:5563;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:5:{i:3;i:5062;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', +'a:7:{i:3;i:5563;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5561;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:5:{i:3;i:5069;i:9;s:5:"Win31";i:10;s:4:"3.11";i:14;s:4:"true";i:15;s:5:"false";}', +'a:7:{i:3;i:5563;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5560;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5115;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5560;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5560;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5560;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5115;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5115;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:5:{i:3;i:5507;i:5;s:21:"FeedHub FeedDiscovery";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4854;i:5;s:14:"Dead-Links.com";}', +'a:6:{i:3;i:5324;i:5;s:15:"Microsoft Excel";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:9;s:6:"MacOSX";}', +'a:4:{i:3;i:5082;i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', +'a:4:{i:3;i:4344;i:6;s:3:"1.8";i:7;s:1:"1";i:8;s:1:"8";}', +'a:5:{i:3;i:5136;i:9;s:5:"Win31";i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', +'a:5:{i:3;i:5070;i:9;s:5:"Win31";i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', +'a:5:{i:3;i:5067;i:9;s:5:"Win31";i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', +'a:4:{i:3;i:4344;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:4:{i:3;i:4344;i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', +'a:4:{i:3;i:4344;i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";}', +'a:4:{i:3;i:4344;i:6;s:3:"1.3";i:7;s:1:"1";i:8;s:1:"3";}', +'a:4:{i:3;i:4344;i:6;s:3:"1.4";i:7;s:1:"1";i:8;s:1:"4";}', +'a:4:{i:3;i:4344;i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";}', +'a:4:{i:3;i:4344;i:6;s:3:"1.7";i:7;s:1:"1";i:8;s:1:"7";}', +'a:4:{i:3;i:5069;i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', +'a:5:{i:3;i:5062;i:9;s:5:"Win31";i:10;s:3:"3.1";i:14;s:4:"true";i:15;s:5:"false";}', +'a:4:{i:3;i:4344;i:6;s:3:"1.6";i:7;s:1:"1";i:8;s:1:"6";}', +'a:4:{i:3;i:4963;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4958;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4956;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4958;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4978;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4986;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4978;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4968;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4962;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4978;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4962;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4940;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4940;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4940;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4956;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4962;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4940;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:3:{i:3;i:4973;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:4:{i:3;i:4958;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4962;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4968;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4963;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4958;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4969;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:4:{i:3;i:4978;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4978;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4986;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', 'a:4:{i:3;i:4963;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', 'a:4:{i:3;i:4963;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4981;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4976;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4983;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4983;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4983;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4983;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4972;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4984;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4976;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4972;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4972;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4963;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4966;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4981;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4981;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', -'a:4:{i:3;i:4972;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4972;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4981;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4963;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4940;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4968;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4940;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4968;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4954;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4986;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4958;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4956;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4968;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4958;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4978;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4986;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4954;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', 'a:4:{i:3;i:4963;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4963;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:4984;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4983;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:6:{i:3;i:4966;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:4984;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:6:{i:3;i:4984;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:4939;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:4976;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:4:{i:3;i:4962;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4971;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4977;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5115;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:4:{i:3;i:4986;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4968;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4952;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:4:{i:3;i:4986;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4956;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4971;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4956;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4954;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4956;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4954;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4971;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4977;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4977;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4954;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:4971;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4977;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4977;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4971;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4954;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4971;i:9;s:7:"Win2003";i:10;s:3:"5.2";i:11;s:12:"Windows 2003";}', +'a:4:{i:3;i:4977;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4962;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4712;i:9;s:5:"Linux";i:34;s:3:"5.0";}', +'a:6:{i:3;i:4956;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:6:{i:3;i:4971;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:4:{i:3;i:4958;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:6:{i:3;i:4958;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:4:{i:3;i:4956;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:4:{i:3;i:4977;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:5:{i:3;i:4954;i:9;s:7:"Android";i:26;s:4:"true";i:31;s:14:"Android Tablet";i:32;s:7:"Various";}', +'a:6:{i:3;i:4968;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:4:{i:3;i:4968;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:6:{i:3;i:4977;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:6:{i:3;i:4962;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:6:{i:3;i:4940;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:4:{i:3;i:4940;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:6:{i:3;i:4978;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:6:{i:3;i:4954;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', 'a:6:{i:3;i:4963;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:6:{i:3;i:4939;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:4980;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:2:{i:3;i:4250;i:5;s:8:"Godzilla";}', -'a:6:{i:3;i:4972;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:4975;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:4714;i:9;s:5:"Linux";i:15;s:5:"false";i:34;s:3:"2.0";}', -'a:5:{i:3;i:4966;i:9;s:7:"Android";i:26;s:4:"true";i:31;s:14:"Android Tablet";i:32;s:7:"Various";}', -'a:6:{i:3;i:4983;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:6:{i:3;i:4980;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:6:{i:3;i:4976;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:6:{i:3;i:4981;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:4967;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:6:{i:3;i:4975;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:6:{i:3;i:4967;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:3:{i:3;i:4714;i:9;s:5:"Linux";i:34;s:3:"5.0";}', -'a:2:{i:3;i:5225;i:9;s:5:"Linux";}', -'a:2:{i:3;i:4657;i:5;s:9:"Patwebbot";}', -'a:2:{i:3;i:4594;i:5;s:8:"Bluecoat";}', -'a:2:{i:3;i:4953;i:5;s:40:"DataFountains/DMOZ Feature Vector Corpus";}', -'a:2:{i:3;i:4646;i:5;s:20:"WCC Browscap Updater";}', -'a:2:{i:3;i:5523;i:5;s:9:"FindFiles";}', -'a:2:{i:3;i:5523;i:5;s:22:"IPCheck Server Monitor";}', -'a:4:{i:3;i:5074;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5074;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5057;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5057;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:5:{i:3;i:5080;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";i:15;s:4:"true";}', -'a:4:{i:3;i:5080;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5079;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5079;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:6:{i:3;i:4986;i:9;s:7:"Android";i:15;s:5:"false";i:26;s:4:"true";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:4:{i:3;i:4712;i:9;s:5:"Linux";i:15;s:5:"false";i:34;s:3:"2.0";}', +'a:4:{i:3;i:4978;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:2:{i:3;i:4252;i:5;s:8:"Godzilla";}', +'a:2:{i:3;i:5249;i:9;s:5:"Linux";}', +'a:2:{i:3;i:4580;i:5;s:8:"Bluecoat";}', +'a:2:{i:3;i:4645;i:5;s:9:"Patwebbot";}', +'a:2:{i:3;i:4960;i:5;s:40:"DataFountains/DMOZ Feature Vector Corpus";}', +'a:2:{i:3;i:5517;i:5;s:22:"IPCheck Server Monitor";}', +'a:2:{i:3;i:4657;i:5;s:20:"WCC Browscap Updater";}', +'a:2:{i:3;i:5517;i:5;s:9:"FindFiles";}', +'a:4:{i:3;i:5136;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5062;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5082;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:5:{i:3;i:5070;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";i:15;s:4:"true";}', +'a:4:{i:3;i:5070;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5062;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5136;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5067;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5067;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', 'a:4:{i:3;i:5069;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5060;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5060;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5082;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', 'a:4:{i:3;i:5069;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5137;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5137;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5137;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:4:{i:3;i:5509;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', -'a:4:{i:3;i:5509;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:5:{i:3;i:5510;i:5;s:19:"FeedHub FeedFetcher";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4594;i:5;s:9:"Cerberian";}', -'a:2:{i:3;i:5614;i:5;s:18:"YahooSeeker-Mobile";}', -'a:2:{i:3;i:5614;i:5;s:13:"Y!J-AGENT/BMI";}', -'a:3:{i:3;i:4576;i:5;s:7:"wwwster";i:13;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:10:"GosoSpider";}', -'a:2:{i:3;i:4721;i:5;s:36:"WebmasterWorld Server Header Checker";}', -'a:2:{i:3;i:4787;i:5;s:10:"Sosospider";}', -'a:2:{i:3;i:5642;i:5;s:8:"adidxbot";}', -'a:4:{i:3;i:4841;i:5;s:21:"SafariBookmarkChecker";i:9;s:6:"MacOSX";i:29;s:1:"2";}', -'a:3:{i:3;i:4641;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4720;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5115;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5115;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5115;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:4:{i:3;i:5506;i:9;s:4:"Win8";i:10;s:3:"6.2";i:11;s:9:"Windows 8";}', +'a:4:{i:3;i:5506;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:5:{i:3;i:5507;i:5;s:19:"FeedHub FeedFetcher";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:5612;i:5;s:13:"Y!J-AGENT/BMI";}', +'a:3:{i:3;i:4579;i:5;s:7:"wwwster";i:13;s:4:"true";}', +'a:2:{i:3;i:4784;i:5;s:10:"Sosospider";}', +'a:2:{i:3;i:4645;i:5;s:10:"GosoSpider";}', +'a:2:{i:3;i:4580;i:5;s:9:"Cerberian";}', +'a:2:{i:3;i:5612;i:5;s:18:"YahooSeeker-Mobile";}', +'a:2:{i:3;i:4700;i:5;s:36:"WebmasterWorld Server Header Checker";}', +'a:2:{i:3;i:5643;i:5;s:8:"adidxbot";}', +'a:4:{i:3;i:4854;i:5;s:21:"SafariBookmarkChecker";i:9;s:6:"MacOSX";i:29;s:1:"2";}', +'a:3:{i:3;i:4658;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:3:{i:3;i:4651;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4724;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4654;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4653;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:3:{i:3;i:4639;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4649;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4643;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:1:{i:3;i:5318;}', -'a:2:{i:3;i:5642;i:5;s:40:"Windows-Live-Social-Object-Extractor-Eng";}', -'a:2:{i:3;i:4657;i:5;s:7:"TinyURL";}', -'a:2:{i:3;i:5067;i:5;s:19:"UniversalFeedParser";}', -'a:2:{i:3;i:5614;i:5;s:3:"Y!J";}', -'a:2:{i:3;i:4657;i:5;s:14:"FirstSearchBot";}', -'a:4:{i:3;i:5572;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:5253;i:9;s:5:"Linux";}', -'a:4:{i:3;i:5572;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', -'a:2:{i:3;i:5257;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5259;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5255;i:9;s:5:"Linux";}', -'a:4:{i:3;i:5557;i:9;s:5:"WinNT";i:10;s:3:"3.5";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5566;i:9;s:5:"WinNT";i:10;s:3:"3.1";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5566;i:9;s:5:"WinNT";i:10;s:3:"3.5";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5566;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5566;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5557;i:9;s:5:"WinNT";i:10;s:3:"3.1";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5557;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5557;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5557;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5557;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5557;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5557;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4723;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4710;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:1:{i:3;i:5330;}', +'a:2:{i:3;i:5643;i:5;s:40:"Windows-Live-Social-Object-Extractor-Eng";}', +'a:2:{i:3;i:4645;i:5;s:7:"TinyURL";}', +'a:2:{i:3;i:5612;i:5;s:3:"Y!J";}', +'a:2:{i:3;i:4645;i:5;s:14:"FirstSearchBot";}', +'a:2:{i:3;i:5060;i:5;s:19:"UniversalFeedParser";}', +'a:4:{i:3;i:5579;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:4:{i:3;i:5579;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', +'a:2:{i:3;i:5240;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5244;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5238;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5242;i:9;s:5:"Linux";}', +'a:4:{i:3;i:5554;i:9;s:5:"WinNT";i:10;s:3:"3.5";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5587;i:9;s:5:"WinNT";i:10;s:3:"3.1";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5587;i:9;s:5:"WinNT";i:10;s:3:"3.5";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5587;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5587;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5554;i:9;s:5:"WinNT";i:10;s:3:"3.1";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5554;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5554;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5554;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5554;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5554;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5554;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4717;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4724;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4713;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:3:{i:3;i:4722;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4709;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4700;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4714;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:3:{i:3;i:4715;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4704;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4710;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4707;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:2:{i:3;i:4833;i:5;s:17:"Microsoft NetShow";}', -'a:3:{i:3;i:4657;i:5;s:15:"Generic Crawler";i:15;s:4:"true";}', -'a:2:{i:3;i:5614;i:5;s:12:"Yahoo! Media";}', -'a:2:{i:3;i:5559;i:5;s:18:"YandexImageResizer";}', -'a:5:{i:3;i:5500;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";i:10;s:2:"98";}', -'a:2:{i:3;i:4942;i:5;s:20:"exactseek-pagereaper";}', -'a:5:{i:3;i:5500;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";i:10;s:2:"98";}', -'a:2:{i:3;i:5614;i:5;s:20:"Yahoo! Search Monkey";}', -'a:2:{i:3;i:4657;i:5;s:4:"ZmEu";}', -'a:5:{i:3;i:5500;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";i:10;s:2:"98";}', -'a:2:{i:3;i:4870;i:5;s:9:"SaferSurf";}', -'a:2:{i:3;i:4584;i:5;s:7:"Liferea";}', +'a:3:{i:3;i:4719;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4645;i:5;s:15:"Generic Crawler";i:15;s:4:"true";}', +'a:2:{i:3;i:4839;i:5;s:17:"Microsoft NetShow";}', +'a:2:{i:3;i:5612;i:5;s:12:"Yahoo! Media";}', +'a:5:{i:3;i:5508;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";i:10;s:2:"98";}', +'a:5:{i:3;i:5508;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";i:10;s:2:"98";}', +'a:5:{i:3;i:5508;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";i:10;s:2:"98";}', +'a:2:{i:3;i:4645;i:5;s:4:"ZmEu";}', +'a:2:{i:3;i:5588;i:5;s:18:"YandexImageResizer";}', +'a:2:{i:3;i:5612;i:5;s:20:"Yahoo! Search Monkey";}', +'a:2:{i:3;i:4980;i:5;s:20:"exactseek-pagereaper";}', +'a:2:{i:3;i:4879;i:5;s:9:"SaferSurf";}', 'a:2:{i:3;i:5632;i:5;s:14:"SnapPreviewBot";}', -'a:3:{i:3;i:5057;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5060;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5057;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5069;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5074;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:2:{i:3;i:4586;i:5;s:7:"Liferea";}', 'a:3:{i:3;i:5069;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5074;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5079;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5079;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5080;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5080;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5060;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5523;i:5;s:12:"NEWT ActiveX";i:9;s:5:"Win32";}', +'a:3:{i:3;i:5082;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5136;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5136;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5082;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5070;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5069;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5062;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5067;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5070;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5067;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5062;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5517;i:5;s:12:"NEWT ActiveX";i:9;s:5:"Win32";}', 'a:2:{i:3;i:4699;i:5;s:11:"Trend Micro";}', -'a:4:{i:3;i:4576;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', -'a:5:{i:3;i:4576;i:5;s:6:"IRLbot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:4:{i:3;i:4576;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', -'a:3:{i:3;i:5566;i:9;s:5:"Win31";i:10;s:4:"3.11";}', -'a:3:{i:3;i:4965;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4959;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4978;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5557;i:9;s:5:"Win31";i:10;s:4:"3.11";}', -'a:3:{i:3;i:4960;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4947;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4944;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4641;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4948;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4720;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4958;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:5:{i:3;i:4579;i:5;s:6:"IRLbot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:4:{i:3;i:4579;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', +'a:4:{i:3;i:4579;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', +'a:3:{i:3;i:4957;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4965;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5554;i:9;s:5:"Win31";i:10;s:4:"3.11";}', +'a:3:{i:3;i:5587;i:9;s:5:"Win31";i:10;s:4:"3.11";}', +'a:3:{i:3;i:4955;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4976;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4946;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:3:{i:3;i:4651;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4643;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4723;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4654;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4973;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4658;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4653;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4969;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4710;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:4639;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4649;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4952;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4784;i:5;s:10:"CipinetBot";}', +'a:5:{i:3;i:5511;i:5;s:13:"Exabot-Images";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', +'a:2:{i:3;i:4645;i:5;s:17:"Tasap-image-robot";}', +'a:4:{i:3;i:5607;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";}', +'a:4:{i:3;i:5607;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";}', +'a:4:{i:3;i:5607;i:6;s:3:"2.4";i:7;s:1:"2";i:8;s:1:"4";}', +'a:5:{i:3;i:5607;i:6;s:3:"2.5";i:7;s:1:"2";i:8;s:1:"5";i:29;s:1:"1";}', +'a:5:{i:3;i:5607;i:6;s:3:"2.6";i:7;s:1:"2";i:8;s:1:"6";i:29;s:1:"1";}', +'a:5:{i:3;i:5607;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";i:29;s:1:"1";}', +'a:4:{i:3;i:5607;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";}', +'a:6:{i:3;i:5607;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";i:23;s:4:"true";i:29;s:1:"1";}', +'a:4:{i:3;i:5607;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', +'a:6:{i:3;i:5607;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:23;s:4:"true";i:29;s:1:"1";}', +'a:2:{i:3;i:5577;i:5;s:11:"BecomeJPBot";}', +'a:5:{i:3;i:4657;i:5;s:18:"BCP - PHP Browscap";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4784;i:5;s:7:"GoForIt";}', +'a:2:{i:3;i:4788;i:5;s:12:"PicSearchBot";}', +'a:2:{i:3;i:4579;i:5;s:7:"inetbot";}', +'a:2:{i:3;i:4645;i:5;s:15:"Generic Crawler";}', +'a:3:{i:3;i:5135;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5066;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4976;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5087;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4957;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4946;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4955;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:2:{i:3;i:5587;i:9;s:6:"MacPPC";}', +'a:3:{i:3;i:5587;i:9;s:5:"Win31";i:10;s:3:"3.1";}', +'a:3:{i:3;i:5554;i:9;s:6:"MacPPC";i:33;s:6:"Tasman";}', +'a:3:{i:3;i:5554;i:9;s:5:"Win31";i:10;s:3:"3.1";}', +'a:3:{i:3;i:5058;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4978;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4713;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5121;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4715;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4958;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5106;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5065;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5065;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5067;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5067;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4956;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5070;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5105;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5070;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:4:{i:3;i:5098;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5105;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4954;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5106;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', 'a:3:{i:3;i:4724;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:4787;i:5;s:10:"CipinetBot";}', -'a:4:{i:3;i:5603;i:6;s:3:"2.4";i:7;s:1:"2";i:8;s:1:"4";}', -'a:4:{i:3;i:5603;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";}', -'a:5:{i:3;i:5603;i:6;s:3:"2.5";i:7;s:1:"2";i:8;s:1:"5";i:29;s:1:"1";}', -'a:5:{i:3;i:5603;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";i:29;s:1:"1";}', -'a:6:{i:3;i:5603;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";i:23;s:4:"true";i:29;s:1:"1";}', -'a:4:{i:3;i:5603;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";}', -'a:4:{i:3;i:5603;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";}', -'a:5:{i:3;i:5521;i:5;s:13:"Exabot-Images";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', -'a:2:{i:3;i:5588;i:5;s:11:"BecomeJPBot";}', -'a:5:{i:3;i:4646;i:5;s:18:"BCP - PHP Browscap";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:4:{i:3;i:5603;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', -'a:6:{i:3;i:5603;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:23;s:4:"true";i:29;s:1:"1";}', -'a:5:{i:3;i:5603;i:6;s:3:"2.6";i:7;s:1:"2";i:8;s:1:"6";i:29;s:1:"1";}', -'a:2:{i:3;i:4657;i:5;s:17:"Tasap-image-robot";}', -'a:2:{i:3;i:4576;i:5;s:7:"inetbot";}', -'a:2:{i:3;i:4657;i:5;s:15:"Generic Crawler";}', -'a:2:{i:3;i:4787;i:5;s:7:"GoForIt";}', -'a:2:{i:3;i:4780;i:5;s:12:"PicSearchBot";}', -'a:2:{i:3;i:5566;i:9;s:6:"MacPPC";}', -'a:3:{i:3;i:5073;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5557;i:9;s:6:"MacPPC";i:33;s:6:"Tasman";}', -'a:3:{i:3;i:5557;i:9;s:5:"Win31";i:10;s:3:"3.1";}', -'a:3:{i:3;i:5566;i:9;s:5:"Win31";i:10;s:3:"3.1";}', -'a:3:{i:3;i:5075;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4959;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5059;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4978;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4960;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5077;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4965;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5057;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:5144;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5140;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5144;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5060;i:9;s:5:"SunOS";i:15;s:5:"false";}', 'a:3:{i:3;i:5069;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4967;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:4984;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5140;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5144;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5057;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5140;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4966;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5105;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', 'a:3:{i:3;i:5069;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5132;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5079;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5079;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:4:{i:3;i:5131;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5131;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5080;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5080;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:4:{i:3;i:5131;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5132;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:4939;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4981;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4980;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5074;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5074;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4983;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4704;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4710;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:5139;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5139;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5132;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5139;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:4986;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:4971;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4968;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5098;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5098;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5082;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5106;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5121;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4714;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4717;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4719;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4940;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4977;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5107;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5121;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', 'a:3:{i:3;i:4963;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', 'a:3:{i:3;i:4722;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4700;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5060;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:5134;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4715;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4976;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4975;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5143;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5143;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4972;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5143;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5134;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4709;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:5134;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:4707;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:4657;i:5;s:11:"ddetailsbot";}', -'a:2:{i:3;i:4841;i:5;s:5:"Susie";}', -'a:2:{i:3;i:5438;i:5;s:14:"YodaoBot-Image";}', -'a:2:{i:3;i:5614;i:5;s:13:"Y!J-AGENT/BMC";}', -'a:2:{i:3;i:5559;i:5;s:15:"YandexWebmaster";}', -'a:2:{i:3;i:4576;i:5;s:17:"UofTDB Experiment";}', -'a:5:{i:3;i:5614;i:5;s:15:"Yahoo! Verifier";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', -'a:2:{i:3;i:5614;i:5;s:13:"Y!J-AGENT/BMF";}', -'a:4:{i:3;i:5603;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:1:{i:3;i:4576;}', -'a:2:{i:3;i:5577;i:9;s:5:"Linux";}', -'a:2:{i:3;i:4787;i:5;s:9:"Butterfly";}', -'a:2:{i:3;i:4787;i:5;s:5:"Qihoo";}', -'a:2:{i:3;i:5641;i:5;s:5:"Teoma";}', -'a:3:{i:3;i:5075;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5557;i:9;s:5:"Win98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:4960;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:5566;i:9;s:5:"Win98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5557;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:4978;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:4959;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:5073;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:1:{i:3;i:5318;}', -'a:3:{i:3;i:4965;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:5077;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5059;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5566;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:4966;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4963;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4976;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4975;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5108;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4960;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4967;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4978;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4975;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4972;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4959;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4976;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4983;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5090;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:4980;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4965;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4939;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5090;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5083;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:4939;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4984;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4981;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4966;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4984;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4963;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4980;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:4983;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5090;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5083;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4981;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5083;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4972;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5108;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5108;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:4967;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:2:{i:3;i:4580;i:5;s:12:"ZIBB Crawler";}', -'a:2:{i:3;i:5445;i:5;s:28:"fantomas shadowMaker Browser";}', -'a:2:{i:3;i:4657;i:5;s:6:"Tecomi";}', -'a:2:{i:3;i:4780;i:5;s:8:"HTML2JPG";}', -'a:2:{i:3;i:4787;i:5;s:12:"Quantcastbot";}', -'a:2:{i:3;i:4594;i:5;s:9:"Cerberian";}', -'a:2:{i:3;i:4657;i:5;s:9:"Viralheat";}', -'a:1:{i:3;i:4658;}', -'a:2:{i:3;i:4840;i:5;s:15:"ChangeDetection";}', -'a:1:{i:3;i:5438;}', -'a:2:{i:3;i:5559;i:5;s:14:"YandexFavicons";}', -'a:2:{i:3;i:4657;i:5;s:14:"BuzzRankingBot";}', -'a:2:{i:3;i:5559;i:5;s:14:"YandexZakladki";}', -'a:2:{i:3;i:4787;i:5;s:8:"ZoomInfo";}', -'a:3:{i:3;i:4965;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5073;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:5077;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:4960;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4959;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4978;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4965;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4960;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4960;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4978;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4965;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4959;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5059;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:4978;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4959;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5075;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:4:{i:3;i:5107;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5095;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5132;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4983;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5112;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5107;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5059;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4966;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:4:{i:3;i:5095;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5075;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5073;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5143;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4980;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:4:{i:3;i:5112;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5112;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5077;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5131;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5140;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5064;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5064;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5064;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5065;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5062;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5062;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5136;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5082;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:4:{i:3;i:5107;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', 'a:4:{i:3;i:5107;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', 'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5144;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5134;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', 'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4972;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5107;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4962;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5136;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4645;i:5;s:11:"ddetailsbot";}', +'a:2:{i:3;i:4854;i:5;s:5:"Susie";}', +'a:4:{i:3;i:5607;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4579;i:5;s:17:"UofTDB Experiment";}', +'a:1:{i:3;i:4579;}', +'a:5:{i:3;i:5612;i:5;s:15:"Yahoo! Verifier";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', +'a:2:{i:3;i:5452;i:5;s:14:"YodaoBot-Image";}', +'a:2:{i:3;i:5612;i:5;s:13:"Y!J-AGENT/BMC";}', +'a:2:{i:3;i:5612;i:5;s:13:"Y!J-AGENT/BMF";}', +'a:2:{i:3;i:5588;i:5;s:15:"YandexWebmaster";}', +'a:2:{i:3;i:4784;i:5;s:5:"Qihoo";}', +'a:2:{i:3;i:4784;i:5;s:9:"Butterfly";}', +'a:2:{i:3;i:5558;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5641;i:5;s:5:"Teoma";}', +'a:3:{i:3;i:5058;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5135;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5066;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4955;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5587;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5587;i:9;s:5:"Win98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:4946;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5554;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5554;i:9;s:5:"Win98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5087;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', 'a:3:{i:3;i:4976;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:4981;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:4963;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:4967;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:4984;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:4:{i:3;i:5095;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5107;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:4939;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:3:{i:3;i:4975;i:9;s:6:"IRIX64";i:15;s:5:"false";}', -'a:4:{i:3;i:5140;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5140;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5140;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5134;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5131;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5131;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5134;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5134;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5131;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5139;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5132;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5132;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5132;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5139;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5144;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5143;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5144;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5143;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5144;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5139;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5143;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5131;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5140;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5131;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5131;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5132;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5132;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5132;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5140;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5144;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5139;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5140;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5134;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5144;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5139;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5143;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5134;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5134;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5139;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5144;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5143;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5143;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:2:{i:3;i:4841;i:5;s:19:"HTML Link Validator";}', -'a:2:{i:3;i:5559;i:5;s:13:"YandexCatalog";}', -'a:2:{i:3;i:4787;i:5;s:8:"EARTHCOM";}', -'a:5:{i:3;i:4576;i:5;s:13:"nextthing.org";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:5559;i:5;s:13:"YandexMetrika";}', -'a:2:{i:3;i:4870;i:5;s:10:"Anonymizer";}', -'a:2:{i:3;i:4721;i:5;s:40:"Search Engine World Robots.txt Validator";}', -'a:2:{i:3;i:4841;i:5;s:12:"SuperCleaner";}', -'a:4:{i:3;i:4868;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4868;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4868;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:1:{i:3;i:5587;}', -'a:4:{i:3;i:4868;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4868;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4868;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5073;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5075;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5059;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5077;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5059;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5073;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5059;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5075;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5077;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5075;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5073;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5077;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5108;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5131;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4983;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5143;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4967;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4984;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4963;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4939;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4981;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4983;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4981;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4966;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4966;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4939;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4939;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4981;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4967;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4984;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4967;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4972;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4984;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4963;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4972;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4963;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4966;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5140;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4976;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4976;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4957;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:1:{i:3;i:5330;}', +'a:3:{i:3;i:4963;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5080;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4957;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4963;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:4954;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4977;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5059;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4954;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5068;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4956;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4962;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4955;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5068;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4971;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5080;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4976;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4958;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4956;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4958;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4978;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4986;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4971;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4978;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4968;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4986;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4968;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5059;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5059;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4946;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5080;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4962;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4940;i:9;s:7:"OpenBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4977;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4940;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5068;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:2:{i:3;i:5445;i:5;s:28:"fantomas shadowMaker Browser";}', +'a:2:{i:3;i:4788;i:5;s:8:"HTML2JPG";}', +'a:2:{i:3;i:4576;i:5;s:12:"ZIBB Crawler";}', +'a:2:{i:3;i:4645;i:5;s:6:"Tecomi";}', +'a:2:{i:3;i:4784;i:5;s:12:"Quantcastbot";}', +'a:2:{i:3;i:5588;i:5;s:14:"YandexFavicons";}', +'a:2:{i:3;i:4580;i:5;s:9:"Cerberian";}', +'a:2:{i:3;i:4845;i:5;s:15:"ChangeDetection";}', +'a:1:{i:3;i:5452;}', +'a:2:{i:3;i:5588;i:5;s:14:"YandexZakladki";}', +'a:2:{i:3;i:4645;i:5;s:9:"Viralheat";}', +'a:1:{i:3;i:4648;}', +'a:2:{i:3;i:4645;i:5;s:14:"BuzzRankingBot";}', +'a:2:{i:3;i:4784;i:5;s:8:"ZoomInfo";}', +'a:3:{i:3;i:4946;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4957;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5066;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5135;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5058;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:4946;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4955;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4946;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4955;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4957;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4957;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:4976;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5134;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4980;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4983;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4980;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5144;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4980;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4975;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4975;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5132;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4975;i:9;s:5:"HP-UX";i:15;s:5:"false";}', -'a:3:{i:3;i:4972;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5083;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5083;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5090;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5090;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5090;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5108;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5083;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5108;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5108;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5083;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5083;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5108;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5108;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5090;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5108;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5090;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5083;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5090;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:2:{i:3;i:4841;i:5;s:19:"DocWeb Link Crawler";}', -'a:2:{i:3;i:4841;i:5;s:7:"JRTwine";}', -'a:2:{i:3;i:4589;i:5;s:12:"BookmarkBase";}', -'a:2:{i:3;i:5559;i:5;s:12:"YandexImages";}', -'a:2:{i:3;i:4787;i:5;s:9:"FatAssANT";}', -'a:2:{i:3;i:5523;i:5;s:20:"Novell BorderManager";}', -'a:2:{i:3;i:5559;i:5;s:19:"YandexDirect-Dyatel";}', -'a:2:{i:3;i:4787;i:5;s:8:"ParchBot";}', -'a:2:{i:3;i:4782;i:5;s:35:"FAST Data Search Document Retriever";}', -'a:2:{i:3;i:4576;i:5;s:12:"Theophrastus";}', -'a:5:{i:3;i:5067;i:5;s:7:"AideRSS";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:5559;i:5;s:12:"YandexAddURL";}', -'a:3:{i:3;i:4787;i:5;s:9:"Charlotte";i:13;s:4:"true";}', -'a:1:{i:3;i:5583;}', -'a:4:{i:3;i:4865;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4865;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4865;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4788;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4865;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4865;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4788;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4788;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4788;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4788;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4865;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4788;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:2:{i:3;i:4657;i:5;s:6:"Wepbot";}', -'a:4:{i:3;i:5140;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5134;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5140;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5140;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5139;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:2:{i:3;i:4982;i:9;s:3:"Win";}', -'a:3:{i:3;i:5132;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5143;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5090;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5143;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5143;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5132;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5132;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5139;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5108;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5144;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5131;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5131;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5144;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5095;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5144;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5131;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:2:{i:3;i:4784;i:9;s:9:"WinMobile";}', -'a:2:{i:3;i:4776;i:9;s:9:"WinMobile";}', -'a:2:{i:3;i:4785;i:9;s:9:"WinMobile";}', -'a:3:{i:3;i:5112;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5083;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:2:{i:3;i:4775;i:9;s:9:"WinMobile";}', -'a:3:{i:3;i:5134;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5134;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5139;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5107;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5112;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5095;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5107;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5131;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5144;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5095;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5112;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5112;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5107;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4976;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4955;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5087;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:4976;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4986;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5065;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5089;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5057;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5087;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5064;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5105;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5057;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5057;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5098;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5089;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5066;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4968;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:4954;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5089;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4971;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5121;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5088;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4940;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5135;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4977;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4963;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:4:{i:3;i:5088;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4962;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:5107;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5058;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5088;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:4978;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:4956;i:9;s:6:"IRIX64";i:15;s:5:"false";}', +'a:3:{i:3;i:4958;i:9;s:6:"IRIX64";i:15;s:5:"false";}', 'a:4:{i:3;i:5107;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5143;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5134;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5140;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5095;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5139;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5132;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', 'a:4:{i:3;i:5107;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5095;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5095;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5143;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5064;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5121;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5121;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5064;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5107;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', 'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5112;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5107;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5106;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5098;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5098;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5121;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5065;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5065;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5065;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5098;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5107;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5105;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5106;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5106;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5105;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5064;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5105;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5098;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5105;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5105;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5121;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5065;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5065;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5065;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5121;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5121;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5064;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5106;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5106;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5107;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5107;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5107;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:4:{i:3;i:5107;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5132;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5144;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5112;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5095;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5131;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5134;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5139;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5140;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5112;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:2:{i:3;i:4657;i:5;s:11:"JS-Kit/Echo";}', -'a:2:{i:3;i:4657;i:5;s:8:"ACONTBOT";}', -'a:2:{i:3;i:4657;i:5;s:15:"Generic Crawler";}', -'a:2:{i:3;i:5642;i:5;s:39:"Microsoft Bing Mobile SocialStreams Bot";}', -'a:2:{i:3;i:4657;i:5;s:11:"MyFamilyBot";}', -'a:2:{i:3;i:5559;i:5;s:11:"YandexVideo";}', -'a:2:{i:3;i:4787;i:5;s:12:"ayna-crawler";}', -'a:2:{i:3;i:5559;i:5;s:11:"YandexMedia";}', -'a:2:{i:3;i:5559;i:5;s:11:"YandexBlogs";}', -'a:2:{i:3;i:4657;i:5;s:9:"Mahalobot";}', -'a:2:{i:3;i:4657;i:5;s:4:"WIRE";}', -'a:2:{i:3;i:5102;i:5;s:8:"Sony PSP";}', -'a:2:{i:3;i:5063;i:5;s:13:"BlogLines Web";}', -'a:2:{i:3;i:4584;i:5;s:7:"NewsTin";}', -'a:4:{i:3;i:4864;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4864;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4864;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4862;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4862;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4864;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4862;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4862;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4862;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4864;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4864;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4862;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:1:{i:3;i:5064;}', -'a:2:{i:3;i:4786;i:9;s:9:"WinMobile";}', -'a:2:{i:3;i:4791;i:9;s:9:"WinMobile";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5106;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5105;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5064;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5098;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5098;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5064;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:4854;i:5;s:19:"HTML Link Validator";}', +'a:2:{i:3;i:5588;i:5;s:13:"YandexCatalog";}', +'a:2:{i:3;i:5588;i:5;s:13:"YandexMetrika";}', +'a:2:{i:3;i:4784;i:5;s:8:"EARTHCOM";}', +'a:2:{i:3;i:4879;i:5;s:10:"Anonymizer";}', +'a:5:{i:3;i:4579;i:5;s:13:"nextthing.org";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4700;i:5;s:40:"Search Engine World Robots.txt Validator";}', +'a:2:{i:3;i:4854;i:5;s:12:"SuperCleaner";}', +'a:4:{i:3;i:4833;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4833;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4833;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4833;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4833;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4833;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:1:{i:3;i:5568;}', +'a:3:{i:3;i:5058;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5066;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5066;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5066;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:5058;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5058;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:5087;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5087;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5087;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:5135;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5135;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5135;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:5121;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5064;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5105;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5065;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5080;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5106;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5068;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5059;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5098;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4978;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4971;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4940;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4968;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4968;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4956;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4956;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4956;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4977;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4977;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4977;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4978;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4978;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4958;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4958;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4958;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4940;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4986;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4940;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4963;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4963;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4963;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4962;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4962;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4962;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4971;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4971;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4954;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4954;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4954;i:9;s:5:"HP-UX";i:15;s:5:"false";}', +'a:3:{i:3;i:4986;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4968;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4986;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:4:{i:3;i:5080;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5068;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5059;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5059;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5068;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5068;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5080;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5080;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5059;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5059;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5068;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5059;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5059;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5080;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5080;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5080;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5068;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5068;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:2:{i:3;i:4854;i:5;s:7:"JRTwine";}', +'a:2:{i:3;i:4592;i:5;s:12:"BookmarkBase";}', +'a:2:{i:3;i:4854;i:5;s:19:"DocWeb Link Crawler";}', +'a:2:{i:3;i:5588;i:5;s:19:"YandexDirect-Dyatel";}', +'a:5:{i:3;i:5060;i:5;s:7:"AideRSS";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4786;i:5;s:35:"FAST Data Search Document Retriever";}', +'a:2:{i:3;i:4784;i:5;s:9:"FatAssANT";}', +'a:2:{i:3;i:5588;i:5;s:12:"YandexImages";}', +'a:2:{i:3;i:4579;i:5;s:12:"Theophrastus";}', +'a:2:{i:3;i:5517;i:5;s:20:"Novell BorderManager";}', +'a:2:{i:3;i:4784;i:5;s:8:"ParchBot";}', +'a:2:{i:3;i:5588;i:5;s:12:"YandexAddURL";}', +'a:3:{i:3;i:4784;i:5;s:9:"Charlotte";i:13;s:4:"true";}', +'a:1:{i:3;i:5585;}', +'a:4:{i:3;i:4792;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4792;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4792;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4835;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4835;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4835;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4792;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4792;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4835;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4835;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4792;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4835;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:4645;i:5;s:6:"Wepbot";}', +'a:4:{i:3;i:5064;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5064;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', 'a:2:{i:3;i:4770;i:9;s:9:"WinMobile";}', -'a:2:{i:3;i:4790;i:9;s:9:"WinMobile";}', -'a:4:{i:3;i:5108;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5090;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:2:{i:3;i:4951;i:9;s:3:"Win";}', +'a:3:{i:3;i:5106;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5107;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5088;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5089;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5106;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5121;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5105;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5105;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5105;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5057;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5098;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5098;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:2:{i:3;i:4782;i:9;s:9:"WinMobile";}', +'a:3:{i:3;i:5080;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5068;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5098;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:2:{i:3;i:4781;i:9;s:9:"WinMobile";}', +'a:4:{i:3;i:5106;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5065;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5065;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:2:{i:3;i:4783;i:9;s:9:"WinMobile";}', +'a:4:{i:3;i:5065;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5059;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5064;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5121;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5121;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5107;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5106;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5098;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5089;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5088;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5121;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5057;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5057;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5088;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5057;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5088;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5089;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5089;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5065;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5105;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5064;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5107;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5105;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5121;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5089;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5106;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5089;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5088;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5088;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5088;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5089;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5098;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5057;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5065;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5057;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5064;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5057;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5107;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:2:{i:3;i:4645;i:5;s:8:"ACONTBOT";}', +'a:2:{i:3;i:4645;i:5;s:11:"JS-Kit/Echo";}', +'a:2:{i:3;i:4645;i:5;s:15:"Generic Crawler";}', +'a:2:{i:3;i:5643;i:5;s:39:"Microsoft Bing Mobile SocialStreams Bot";}', +'a:2:{i:3;i:5588;i:5;s:11:"YandexVideo";}', +'a:2:{i:3;i:5588;i:5;s:11:"YandexMedia";}', +'a:2:{i:3;i:4645;i:5;s:9:"Mahalobot";}', +'a:2:{i:3;i:4645;i:5;s:11:"MyFamilyBot";}', +'a:2:{i:3;i:5588;i:5;s:11:"YandexBlogs";}', +'a:2:{i:3;i:4784;i:5;s:12:"ayna-crawler";}', +'a:2:{i:3;i:4645;i:5;s:4:"WIRE";}', +'a:2:{i:3;i:5078;i:5;s:8:"Sony PSP";}', +'a:2:{i:3;i:5084;i:5;s:13:"BlogLines Web";}', +'a:2:{i:3;i:4586;i:5;s:7:"NewsTin";}', +'a:4:{i:3;i:4842;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4842;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4842;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4842;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4842;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4846;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4842;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4846;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4846;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4846;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4846;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4846;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:2:{i:3;i:4776;i:9;s:9:"WinMobile";}', +'a:1:{i:3;i:5142;}', +'a:2:{i:3;i:4775;i:9;s:9:"WinMobile";}', +'a:2:{i:3;i:4780;i:9;s:9:"WinMobile";}', +'a:2:{i:3;i:4778;i:9;s:9:"WinMobile";}', +'a:3:{i:3;i:5059;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5059;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5059;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5057;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5080;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5088;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5068;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5068;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5080;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5089;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5080;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5068;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5224;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5264;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5264;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5234;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5230;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5264;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5224;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5230;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5064;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5264;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5224;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5231;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5224;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5231;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5065;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', 'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5095;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5090;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5090;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5108;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5083;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5108;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5112;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5083;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5083;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5243;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5083;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5237;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5237;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5235;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5246;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5246;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5132;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5237;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5237;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5134;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5237;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5230;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5243;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5140;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5243;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5244;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5244;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5244;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5244;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5235;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5235;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5246;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5235;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5237;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5235;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5244;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5244;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5246;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5230;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5230;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5143;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5238;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5224;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5224;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5068;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5230;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5080;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5228;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5228;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5234;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5264;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5059;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5234;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5231;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5252;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5231;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5231;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5131;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5144;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5231;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5235;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5238;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5238;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5139;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5230;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5246;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5243;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5246;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5231;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5230;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5243;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5234;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5228;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5252;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5252;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5228;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5106;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5234;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5228;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5121;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5234;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5222;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5222;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5222;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5252;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5222;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5105;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5252;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5222;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5222;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5252;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5264;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5098;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5228;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5264;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5121;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5065;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5264;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5264;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5098;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5264;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5224;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5068;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5222;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5059;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5222;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5222;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5222;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5222;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5224;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5224;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5264;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5224;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5222;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5224;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5224;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5080;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5105;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5064;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5264;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5106;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5228;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5228;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5231;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5231;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5231;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5243;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5231;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5230;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5090;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5238;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5238;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5238;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5230;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5108;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5230;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5243;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5246;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5132;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5231;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5252;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5252;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5228;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5252;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5228;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5231;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5228;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5230;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', 'a:4:{i:3;i:5230;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', 'a:4:{i:3;i:5230;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5230;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', 'a:4:{i:3;i:5230;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5231;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5231;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5246;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5243;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5231;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5083;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5235;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5238;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5134;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5131;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5237;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5235;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5090;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5243;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5235;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5246;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5235;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5244;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5139;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5244;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5246;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5246;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5243;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5237;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5244;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5237;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5244;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5238;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5237;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5144;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5238;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5235;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5231;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5231;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5238;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5252;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5252;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', 'a:4:{i:3;i:5230;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5230;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5143;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5235;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5140;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5237;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5246;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5244;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5244;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5243;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5243;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5108;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5237;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5238;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5238;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:2:{i:3;i:5523;i:20;s:4:"true";}', -'a:2:{i:3;i:5330;i:5;s:10:"Best Whois";}', -'a:2:{i:3;i:5330;i:5;s:22:"OpenDNS Domain Crawler";}', -'a:2:{i:3;i:4787;i:5;s:20:"Kolinka Forum Search";}', -'a:2:{i:3;i:4657;i:5;s:14:"geek-tools.org";}', -'a:2:{i:3;i:4657;i:5;s:14:"www.fi crawler";}', -'a:2:{i:3;i:4657;i:5;s:10:"AboutUsBot";}', -'a:2:{i:3;i:5559;i:5;s:6:"Yandex";}', -'a:2:{i:3;i:4657;i:5;s:7:"MJ12bot";}', -'a:2:{i:3;i:5559;i:5;s:10:"YandexNews";}', -'a:2:{i:3;i:4434;i:5;s:10:"DKIMRepBot";}', -'a:1:{i:3;i:5438;}', -'a:2:{i:3;i:4576;i:5;s:15:"Annotate Google";}', -'a:2:{i:3;i:5330;i:5;s:10:"DNS-Digger";}', -'a:2:{i:3;i:4657;i:5;s:23:"Willow Internet Crawler";}', -'a:1:{i:3;i:5360;}', -'a:2:{i:3;i:5357;i:5;s:32:"Microsoft Office Picture Manager";}', -'a:4:{i:3;i:5511;i:6;s:3:"0.8";i:7;s:1:"0";i:8;s:1:"8";}', -'a:4:{i:3;i:5511;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4576;i:5;s:11:"Amico Alpha";}', -'a:4:{i:3;i:5095;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5112;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5112;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5140;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5134;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5095;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5132;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5231;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5252;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5228;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5234;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5234;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5234;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5234;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5234;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5234;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:2:{i:3;i:5341;i:5;s:10:"Best Whois";}', +'a:2:{i:3;i:5517;i:20;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:14:"www.fi crawler";}', +'a:2:{i:3;i:4645;i:5;s:14:"geek-tools.org";}', +'a:2:{i:3;i:4784;i:5;s:20:"Kolinka Forum Search";}', +'a:2:{i:3;i:5341;i:5;s:22:"OpenDNS Domain Crawler";}', +'a:2:{i:3;i:4645;i:5;s:10:"AboutUsBot";}', +'a:2:{i:3;i:5588;i:5;s:6:"Yandex";}', +'a:2:{i:3;i:5588;i:5;s:10:"YandexNews";}', +'a:2:{i:3;i:4436;i:5;s:10:"DKIMRepBot";}', +'a:2:{i:3;i:4579;i:5;s:15:"Annotate Google";}', +'a:1:{i:3;i:5452;}', +'a:2:{i:3;i:4645;i:5;s:7:"MJ12bot";}', +'a:2:{i:3;i:5341;i:5;s:10:"DNS-Digger";}', +'a:2:{i:3;i:4645;i:5;s:23:"Willow Internet Crawler";}', +'a:1:{i:3;i:5344;}', +'a:2:{i:3;i:5324;i:5;s:32:"Microsoft Office Picture Manager";}', +'a:4:{i:3;i:5513;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:4:{i:3;i:5513;i:6;s:3:"0.8";i:7;s:1:"0";i:8;s:1:"8";}', +'a:2:{i:3;i:4579;i:5;s:11:"Amico Alpha";}', +'a:3:{i:3;i:5088;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5088;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5107;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5057;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5089;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5057;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5057;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5089;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5089;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5121;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5064;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5088;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5105;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5065;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5098;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5098;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5059;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:1:{i:3;i:5121;}', +'a:4:{i:3;i:5121;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5121;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5089;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:1:{i:3;i:5098;}', +'a:4:{i:3;i:5098;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5068;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5106;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:1:{i:3;i:5105;}', +'a:4:{i:3;i:5105;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5057;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5105;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5088;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5106;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5080;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5064;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:1:{i:3;i:5106;}', +'a:1:{i:3;i:5064;}', +'a:1:{i:3;i:5107;}', +'a:4:{i:3;i:5107;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', 'a:4:{i:3;i:5107;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5144;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5143;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5065;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5065;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5064;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:1:{i:3;i:5065;}', +'a:4:{i:3;i:5105;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5088;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5080;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', 'a:4:{i:3;i:5107;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5095;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5131;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5112;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:1:{i:3;i:5139;}', -'a:3:{i:3;i:5083;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5139;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5139;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5131;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5144;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5144;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:1:{i:3;i:5144;}', -'a:4:{i:3;i:5143;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5090;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5140;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5107;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:1:{i:3;i:5140;}', -'a:4:{i:3;i:5140;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5143;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:1:{i:3;i:5131;}', -'a:3:{i:3;i:5112;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5134;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5132;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5134;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:1:{i:3;i:5134;}', -'a:1:{i:3;i:5132;}', -'a:4:{i:3;i:5132;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:1:{i:3;i:5143;}', -'a:4:{i:3;i:5131;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5108;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5095;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5112;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5139;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5144;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5132;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5090;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5144;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5132;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5131;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5131;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5132;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5140;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5108;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5140;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5140;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5095;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5131;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5144;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5134;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5134;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5107;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5083;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5134;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5139;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5143;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5139;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5143;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5143;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:2:{i:3;i:5067;i:5;s:9:"RSS Panel";}', -'a:2:{i:3;i:5063;i:5;s:13:"BlogPulseLive";}', -'a:2:{i:3;i:4841;i:5;s:6:"!Susie";}', -'a:2:{i:3;i:4250;i:5;s:11:"ibisBrowser";}', -'a:2:{i:3;i:4787;i:5;s:9:"AnswerBus";}', -'a:2:{i:3;i:4787;i:5;s:5:"Ah-Ha";}', -'a:2:{i:3;i:4657;i:5;s:37:"Microsoft Windows Network Diagnostics";}', -'a:5:{i:3;i:5521;i:5;s:19:"Exabot/BiggerBetter";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', -'a:2:{i:3;i:4646;i:5;s:33:"Decode Framework browscap library";}', -'a:2:{i:3;i:5559;i:5;s:9:"YandexBot";}', -'a:3:{i:3;i:4868;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4868;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5572;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:4:{i:3;i:4868;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5572;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', -'a:2:{i:3;i:4542;i:9;s:9:"WinMobile";}', -'a:2:{i:3;i:4970;i:5;s:3:"DSi";}', -'a:3:{i:3;i:5143;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5140;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5106;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5107;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5106;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5105;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5059;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5105;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5106;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5064;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5089;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5098;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5121;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5121;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5121;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5065;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5064;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5064;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5065;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5068;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5065;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5098;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5057;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5098;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:2:{i:3;i:5084;i:5;s:13:"BlogPulseLive";}', +'a:2:{i:3;i:4784;i:5;s:9:"AnswerBus";}', +'a:2:{i:3;i:4645;i:5;s:37:"Microsoft Windows Network Diagnostics";}', +'a:2:{i:3;i:4784;i:5;s:5:"Ah-Ha";}', +'a:2:{i:3;i:5060;i:5;s:9:"RSS Panel";}', +'a:2:{i:3;i:4854;i:5;s:6:"!Susie";}', +'a:2:{i:3;i:4252;i:5;s:11:"ibisBrowser";}', +'a:2:{i:3;i:5588;i:5;s:9:"YandexBot";}', +'a:5:{i:3;i:5511;i:5;s:19:"Exabot/BiggerBetter";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";}', +'a:2:{i:3;i:4657;i:5;s:33:"Decode Framework browscap library";}', +'a:3:{i:3;i:4833;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5579;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', +'a:4:{i:3;i:5579;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:4:{i:3;i:4833;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:4833;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:2:{i:3;i:4538;i:9;s:9:"WinMobile";}', +'a:2:{i:3;i:4953;i:5;s:3:"DSi";}', +'a:3:{i:3;i:5080;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5105;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5059;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5107;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5065;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', 'a:4:{i:3;i:5576;i:9;s:5:"WinNT";i:10;s:3:"3.1";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5144;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4982;i:9;s:5:"WinCE";i:11;s:10:"Windows CE";}', -'a:3:{i:3;i:5131;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5108;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5132;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5134;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5090;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5064;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5098;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4951;i:9;s:5:"WinCE";i:11;s:10:"Windows CE";}', +'a:3:{i:3;i:5121;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5059;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:1:{i:3;i:5068;}', +'a:3:{i:3;i:5224;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5080;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5080;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:1:{i:3;i:5080;}', +'a:4:{i:3;i:5059;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5089;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5228;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5264;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', 'a:3:{i:3;i:5230;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5095;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5246;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5238;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:1:{i:3;i:5090;}', -'a:4:{i:3;i:5090;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5244;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5083;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5237;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5083;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5231;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5112;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:1:{i:3;i:5083;}', -'a:1:{i:3;i:5108;}', -'a:3:{i:3;i:5243;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5108;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5235;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5108;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5235;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5238;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5090;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5090;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5083;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5108;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5083;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5090;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5244;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4836;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4836;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5246;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5095;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5222;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5068;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5068;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5234;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5057;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:1:{i:3;i:5059;}', 'a:3:{i:3;i:5231;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4836;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5088;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5252;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5068;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4831;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4831;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4831;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5059;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5059;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5059;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5080;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5080;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5068;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:4831;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:4831;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', 'a:3:{i:3;i:5230;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5083;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5237;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5112;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4836;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5243;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5108;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5108;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4836;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:4836;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5234;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5231;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5222;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5057;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5252;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5088;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5068;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5264;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5080;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5224;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5089;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:4831;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5228;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:2:{i:3;i:5324;i:5;s:36:"Microsoft Office Existence Discovery";}', 'a:2:{i:3;i:5641;i:5;s:9:"AskJeeves";}', -'a:2:{i:3;i:5357;i:5;s:36:"Microsoft Office Existence Discovery";}', -'a:5:{i:3;i:4787;i:5;s:8:"CatchBot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4584;i:5;s:8:"Feedster";}', -'a:4:{i:3;i:4789;i:5;s:6:"ZuneHD";i:6;s:1:"4";i:7;s:1:"4";}', -'a:2:{i:3;i:4787;i:5;s:25:"Northern Light Web Search";}', -'a:1:{i:3;i:5318;}', +'a:5:{i:3;i:4784;i:5;s:8:"CatchBot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:4:{i:3;i:4790;i:5;s:6:"ZuneHD";i:6;s:1:"4";i:7;s:1:"4";}', +'a:2:{i:3;i:4784;i:5;s:25:"Northern Light Web Search";}', +'a:2:{i:3;i:4586;i:5;s:8:"Feedster";}', +'a:1:{i:3;i:5330;}', 'a:2:{i:3;i:4578;i:5;s:19:"A1 Website Download";}', -'a:4:{i:3;i:4788;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:4788;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:4865;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4865;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:4788;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";i:9;s:6:"MacOSX";i:29;s:1:"1";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:9;s:6:"MacOSX";i:29;s:1:"1";}', -'a:6:{i:3;i:5631;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:6:"MacOSX";i:29;s:1:"2";}', -'a:3:{i:3;i:5090;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5108;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5569;i:9;s:5:"WinNT";i:10;s:3:"3.5";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5569;i:9;s:5:"WinNT";i:10;s:3:"3.1";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5578;i:9;s:5:"WinNT";i:10;s:3:"3.1";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4775;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', -'a:4:{i:3;i:4785;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', -'a:4:{i:3;i:4784;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:4:{i:3;i:4792;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:4792;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4835;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:4792;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:4835;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:6:{i:3;i:5629;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:6:"MacOSX";i:29;s:1:"2";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";i:9;s:6:"MacOSX";i:29;s:1:"1";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:9;s:6:"MacOSX";i:29;s:1:"1";}', +'a:3:{i:3;i:5080;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5580;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4770;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:4:{i:3;i:4783;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:4:{i:3;i:4781;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:3:{i:3;i:5057;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5578;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5580;i:9;s:5:"WinNT";i:10;s:3:"3.5";i:11;s:10:"Windows NT";}', 'a:4:{i:3;i:5578;i:9;s:5:"WinNT";i:10;s:3:"3.5";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5569;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4776;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:3:{i:3;i:5088;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:4782;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:4:{i:3;i:5580;i:9;s:5:"WinNT";i:10;s:3:"3.1";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5059;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5578;i:9;s:5:"WinNT";i:10;s:3:"3.1";i:11;s:10:"Windows NT";}', +'a:1:{i:3;i:5089;}', +'a:3:{i:3;i:5228;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5089;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5222;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5224;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5064;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5089;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:1:{i:3;i:5057;}', +'a:3:{i:3;i:5121;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5088;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', 'a:3:{i:3;i:5107;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5578;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5112;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5112;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5105;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5234;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5088;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', 'a:3:{i:3;i:5231;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5134;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5140;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5143;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5107;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:1:{i:3;i:5112;}', -'a:3:{i:3;i:5246;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5237;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5112;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5107;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5095;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5095;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:1:{i:3;i:5088;}', +'a:3:{i:3;i:5098;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5057;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5057;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5065;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:3:{i:3;i:5230;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5244;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5131;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:1:{i:3;i:5095;}', -'a:3:{i:3;i:5132;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5243;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:1:{i:3;i:5107;}', -'a:3:{i:3;i:5144;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5235;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5231;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5095;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5144;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5095;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5112;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5112;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5112;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', 'a:3:{i:3;i:5230;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5107;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5237;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5246;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5107;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5131;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5134;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5132;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5143;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5140;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:6:{i:3;i:4592;i:4;s:35:"Internet Content Rating Association";i:5;s:0:"";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:6:"RixBot";}', -'a:2:{i:3;i:4657;i:5;s:9:"N-Stealth";}', -'a:2:{i:3;i:5357;i:5;s:6:"MS OPD";}', -'a:2:{i:3;i:4787;i:5;s:7:"Pogodak";}', -'a:2:{i:3;i:4657;i:5;s:7:"DepSpid";}', -'a:2:{i:3;i:4787;i:5;s:7:"Mail.RU";}', -'a:2:{i:3;i:4584;i:5;s:9:"Newsbrain";}', -'a:2:{i:3;i:4657;i:5;s:10:"WebCapture";}', -'a:4:{i:3;i:5554;i:6;s:3:"1.3";i:7;s:1:"1";i:8;s:1:"3";}', -'a:4:{i:3;i:5554;i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', -'a:2:{i:3;i:5581;i:5;s:19:"Google Keyword Tool";}', -'a:4:{i:3;i:5554;i:6;s:3:"1.4";i:7;s:1:"1";i:8;s:1:"4";}', -'a:4:{i:3;i:5554;i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";}', -'a:4:{i:3;i:4862;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:4862;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4862;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:4865;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:4864;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:4864;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:4864;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4770;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', -'a:4:{i:3;i:4790;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', -'a:4:{i:3;i:4786;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', -'a:4:{i:3;i:4791;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', -'a:3:{i:3;i:5095;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:2:{i:3;i:5139;i:9;s:5:"SunOS";}', +'a:3:{i:3;i:5234;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5228;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:3:{i:3;i:5064;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5088;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5088;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5224;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5252;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5057;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5057;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5057;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5228;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5231;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5121;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5222;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5107;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5089;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5089;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5089;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5264;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5098;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5105;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5065;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:2:{i:3;i:5324;i:5;s:6:"MS OPD";}', +'a:6:{i:3;i:4591;i:4;s:35:"Internet Content Rating Association";i:5;s:0:"";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:6:"RixBot";}', +'a:2:{i:3;i:4645;i:5;s:9:"N-Stealth";}', +'a:2:{i:3;i:4645;i:5;s:7:"DepSpid";}', +'a:2:{i:3;i:4586;i:5;s:9:"Newsbrain";}', +'a:2:{i:3;i:4784;i:5;s:7:"Pogodak";}', +'a:2:{i:3;i:4784;i:5;s:7:"Mail.RU";}', +'a:2:{i:3;i:4645;i:5;s:10:"WebCapture";}', +'a:4:{i:3;i:5566;i:6;s:3:"1.4";i:7;s:1:"1";i:8;s:1:"4";}', +'a:2:{i:3;i:5557;i:5;s:19:"Google Keyword Tool";}', +'a:4:{i:3;i:5566;i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";}', +'a:4:{i:3;i:5566;i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', +'a:4:{i:3;i:5566;i:6;s:3:"1.3";i:7;s:1:"1";i:8;s:1:"3";}', +'a:4:{i:3;i:4842;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:4835;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:4846;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:4846;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:4846;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4842;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:4842;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:4775;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:4:{i:3;i:4778;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:4:{i:3;i:4780;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:4:{i:3;i:4776;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:2:{i:3;i:5107;i:9;s:5:"SunOS";}', +'a:2:{i:3;i:4781;i:9;s:4:"JAVA";}', +'a:2:{i:3;i:5098;i:9;s:5:"SunOS";}', +'a:3:{i:3;i:5088;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5107;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:5106;i:9;s:5:"SunOS";}', +'a:2:{i:3;i:4781;i:9;s:9:"SymbianOS";}', +'a:3:{i:3;i:5089;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5121;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5098;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5064;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4770;i:9;s:9:"SymbianOS";}', +'a:2:{i:3;i:4783;i:9;s:9:"SymbianOS";}', +'a:2:{i:3;i:5064;i:9;s:5:"SunOS";}', +'a:2:{i:3;i:5105;i:9;s:5:"SunOS";}', +'a:2:{i:3;i:4782;i:9;s:9:"SymbianOS";}', +'a:4:{i:3;i:5574;i:9;s:5:"WinNT";i:10;s:4:"3.11";i:11;s:10:"Windows NT";}', +'a:2:{i:3;i:5121;i:9;s:5:"SunOS";}', +'a:3:{i:3;i:5065;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4783;i:9;s:4:"JAVA";}', +'a:2:{i:3;i:4770;i:9;s:4:"JAVA";}', +'a:3:{i:3;i:5057;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:2:{i:3;i:4782;i:9;s:4:"JAVA";}', 'a:3:{i:3;i:5576;i:9;s:5:"Win31";i:10;s:4:"3.11";}', -'a:3:{i:3;i:5139;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5131;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5132;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5132;i:9;s:5:"SunOS";}', -'a:4:{i:3;i:5579;i:9;s:5:"WinNT";i:10;s:4:"3.11";i:11;s:10:"Windows NT";}', -'a:2:{i:3;i:4784;i:9;s:4:"JAVA";}', -'a:3:{i:3;i:5143;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5144;i:9;s:5:"SunOS";}', -'a:3:{i:3;i:5144;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5131;i:9;s:5:"SunOS";}', -'a:3:{i:3;i:5112;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5134;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5105;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:5065;i:9;s:5:"SunOS";}', +'a:4:{i:3;i:5230;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5105;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', 'a:3:{i:3;i:5107;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:2:{i:3;i:5143;i:9;s:5:"SunOS";}', -'a:3:{i:3;i:5140;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5134;i:9;s:5:"SunOS";}', -'a:2:{i:3;i:4775;i:9;s:4:"JAVA";}', -'a:2:{i:3;i:4784;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4785;i:9;s:4:"JAVA";}', -'a:2:{i:3;i:5140;i:9;s:5:"SunOS";}', -'a:2:{i:3;i:4776;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4785;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4775;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4776;i:9;s:4:"JAVA";}', -'a:4:{i:3;i:5235;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5243;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5132;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:1:{i:3;i:5235;}', -'a:3:{i:3;i:5140;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5244;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:1:{i:3;i:5243;}', -'a:4:{i:3;i:5243;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5090;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5231;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5231;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:1:{i:3;i:5231;}', -'a:3:{i:3;i:5134;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5237;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5237;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5131;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5108;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:1:{i:3;i:5230;}', -'a:1:{i:3;i:5237;}', -'a:4:{i:3;i:5244;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:1:{i:3;i:5238;}', -'a:4:{i:3;i:5246;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:1:{i:3;i:5246;}', -'a:4:{i:3;i:5246;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5235;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:1:{i:3;i:5244;}', -'a:3:{i:3;i:5143;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5238;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5144;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5238;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5065;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:1:{i:3;i:5264;}', +'a:4:{i:3;i:5264;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5234;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5252;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5252;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:1:{i:3;i:5252;}', +'a:4:{i:3;i:5228;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', 'a:4:{i:3;i:5230;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5230;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5234;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5106;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:1:{i:3;i:5234;}', +'a:4:{i:3;i:5231;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5098;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5228;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:1:{i:3;i:5231;}', +'a:4:{i:3;i:5222;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5222;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:1:{i:3;i:5228;}', +'a:1:{i:3;i:5222;}', +'a:4:{i:3;i:5231;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5064;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5224;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5121;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5059;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5264;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5080;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:1:{i:3;i:5224;}', +'a:4:{i:3;i:5224;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5252;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5107;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5228;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5231;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5231;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5098;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5080;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5234;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5234;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', 'a:3:{i:3;i:5231;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5143;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5246;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5238;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5083;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5230;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5238;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5238;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5222;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5234;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5068;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5064;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5105;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5252;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5121;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5264;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5224;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5222;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5222;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5106;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', 'a:4:{i:3;i:5230;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:4836;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5264;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5264;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5228;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5228;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', 'a:4:{i:3;i:5230;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5134;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5131;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5108;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5237;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5237;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5144;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5246;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5132;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5231;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5243;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5243;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5140;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5231;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5243;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5235;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5235;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5246;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5244;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5244;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5244;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5235;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:2:{i:3;i:4657;i:5;s:10:"Superpages";}', -'a:2:{i:3;i:4646;i:5;s:33:"Mono Browser Capabilities Updater";}', -'a:2:{i:3;i:4657;i:5;s:9:"Webbot.ru";}', -'a:2:{i:3;i:4646;i:5;s:32:"PHP Browser Capabilities Project";}', +'a:3:{i:3;i:5065;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5059;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:5224;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5230;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5224;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:4831;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4831;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:2:{i:3;i:4645;i:5;s:10:"Superpages";}', +'a:2:{i:3;i:5084;i:5;s:8:"kinjabot";}', +'a:2:{i:3;i:4657;i:5;s:33:"Mono Browser Capabilities Updater";}', +'a:2:{i:3;i:4657;i:5;s:32:"PHP Browser Capabilities Project";}', +'a:2:{i:3;i:5060;i:5;s:29:"BlijbolReallySimpleAggregator";}', +'a:6:{i:3;i:5629;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:6:"MacOSX";i:29;s:1:"3";}', +'a:3:{i:3;i:5557;i:5;s:14:"iGoogleGadgets";i:27;s:4:"true";}', +'a:2:{i:3;i:4854;i:5;s:7:"URLBase";}', 'a:2:{i:3;i:4578;i:5;s:7:"Getleft";}', -'a:2:{i:3;i:5067;i:5;s:29:"BlijbolReallySimpleAggregator";}', -'a:2:{i:3;i:5063;i:5;s:8:"kinjabot";}', -'a:2:{i:3;i:4841;i:5;s:7:"URLBase";}', -'a:3:{i:3;i:5581;i:5;s:14:"iGoogleGadgets";i:27;s:4:"true";}', -'a:6:{i:3;i:5631;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:6:"MacOSX";i:29;s:1:"3";}', -'a:2:{i:3;i:5581;i:5;s:18:"Google Feedfetcher";}', +'a:2:{i:3;i:4645;i:5;s:9:"Webbot.ru";}', +'a:2:{i:3;i:5557;i:5;s:18:"Google Feedfetcher";}', +'a:2:{i:3;i:4645;i:5;s:7:"Spinn3r";}', 'a:7:{i:3;i:5565;i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";i:9;s:4:"JAVA";i:31;s:8:"GT-S5620";i:32;s:7:"Samsung";}', -'a:2:{i:3;i:4657;i:5;s:7:"Spinn3r";}', -'a:2:{i:3;i:4786;i:9;s:4:"JAVA";}', -'a:2:{i:3;i:4786;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4791;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4770;i:9;s:4:"JAVA";}', -'a:2:{i:3;i:4790;i:9;s:4:"JAVA";}', -'a:2:{i:3;i:4770;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4790;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4791;i:9;s:4:"JAVA";}', -'a:3:{i:3;i:5083;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5569;i:9;s:5:"Win31";i:10;s:4:"3.11";}', -'a:3:{i:3;i:5090;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:5579;i:9;s:5:"WinNT";i:10;s:3:"3.1";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5576;i:9;s:5:"Win31";i:10;s:3:"3.1";}', -'a:2:{i:3;i:5108;i:9;s:5:"SunOS";}', -'a:3:{i:3;i:5108;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4776;i:9;s:9:"SymbianOS";}', +'a:2:{i:3;i:4775;i:9;s:4:"JAVA";}', +'a:2:{i:3;i:4780;i:9;s:4:"JAVA";}', +'a:2:{i:3;i:4780;i:9;s:9:"SymbianOS";}', +'a:2:{i:3;i:4778;i:9;s:9:"SymbianOS";}', +'a:2:{i:3;i:4776;i:9;s:4:"JAVA";}', +'a:2:{i:3;i:4778;i:9;s:4:"JAVA";}', +'a:2:{i:3;i:4775;i:9;s:9:"SymbianOS";}', +'a:3:{i:3;i:5059;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5580;i:9;s:5:"Win31";i:10;s:4:"3.11";}', 'a:3:{i:3;i:5578;i:9;s:5:"Win31";i:10;s:4:"3.11";}', -'a:2:{i:3;i:5090;i:9;s:5:"SunOS";}', -'a:2:{i:3;i:5083;i:9;s:5:"SunOS";}', -'a:3:{i:3;i:5108;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5112;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5107;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5090;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5112;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5107;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5108;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:2:{i:3;i:4787;i:5;s:7:"Arachmo";}', -'a:2:{i:3;i:4787;i:5;s:8:"Pagebull";}', -'a:2:{i:3;i:4250;i:5;s:12:"Wipeout Pure";}', -'a:2:{i:3;i:4657;i:5;s:11:"Nozilla/P.N";}', -'a:2:{i:3;i:5521;i:5;s:5:"NGBot";}', -'a:2:{i:3;i:4657;i:5;s:6:"Vermut";}', -'a:4:{i:3;i:5554;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:3:{i:3;i:4788;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4868;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:3:{i:3;i:4868;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:4542;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', -'a:2:{i:3;i:5569;i:9;s:6:"MacPPC";}', +'a:2:{i:3;i:5068;i:9;s:5:"SunOS";}', +'a:4:{i:3;i:5574;i:9;s:5:"WinNT";i:10;s:3:"3.1";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5080;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:5080;i:9;s:5:"SunOS";}', +'a:2:{i:3;i:5059;i:9;s:5:"SunOS";}', +'a:3:{i:3;i:5576;i:9;s:5:"Win31";i:10;s:3:"3.1";}', +'a:3:{i:3;i:5080;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5059;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5057;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5059;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5088;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5057;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5080;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:2:{i:3;i:4784;i:5;s:8:"Pagebull";}', +'a:2:{i:3;i:4252;i:5;s:12:"Wipeout Pure";}', +'a:2:{i:3;i:4784;i:5;s:7:"Arachmo";}', +'a:2:{i:3;i:4645;i:5;s:11:"Nozilla/P.N";}', +'a:2:{i:3;i:4645;i:5;s:6:"Vermut";}', +'a:2:{i:3;i:5511;i:5;s:5:"NGBot";}', +'a:4:{i:3;i:5566;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:3:{i:3;i:4833;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:3:{i:3;i:4833;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4792;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:4538;i:9;s:13:"BlackBerry OS";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:4:{i:3;i:4783;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:4:{i:3;i:4781;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:3:{i:3;i:5057;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:5574;i:15;s:4:"true";}', +'a:4:{i:3;i:5576;i:9;s:5:"Win95";i:11;s:10:"Windows 95";i:15;s:4:"true";}', +'a:3:{i:3;i:5580;i:9;s:5:"Win31";i:10;s:3:"3.1";}', +'a:2:{i:3;i:5580;i:9;s:6:"MacPPC";}', +'a:4:{i:3;i:4770;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:2:{i:3;i:5089;i:9;s:5:"SunOS";}', +'a:2:{i:3;i:5088;i:9;s:5:"SunOS";}', +'a:3:{i:3;i:5089;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5578;i:9;s:5:"Win31";i:10;s:3:"3.1";}', +'a:3:{i:3;i:5088;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:5057;i:9;s:5:"SunOS";}', 'a:2:{i:3;i:5578;i:9;s:6:"MacPPC";}', -'a:4:{i:3;i:4776;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:2:{i:3;i:5112;i:9;s:5:"SunOS";}', -'a:2:{i:3;i:5107;i:9;s:5:"SunOS";}', +'a:4:{i:3;i:4782;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:3:{i:3;i:5098;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5224;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5231;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5107;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5065;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5065;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5107;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:4784;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:3:{i:3;i:5578;i:9;s:5:"Win31";i:10;s:3:"3.1";}', -'a:4:{i:3;i:4775;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:3:{i:3;i:5569;i:9;s:5:"Win31";i:10;s:3:"3.1";}', -'a:3:{i:3;i:5095;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:2:{i:3;i:5579;i:15;s:4:"true";}', -'a:2:{i:3;i:5095;i:9;s:5:"SunOS";}', -'a:4:{i:3;i:4785;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:5576;i:9;s:5:"Win95";i:11;s:10:"Windows 95";i:15;s:4:"true";}', -'a:3:{i:3;i:5112;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5131;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5112;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5134;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5143;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5143;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5144;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5144;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5107;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5132;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5228;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5057;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5098;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5064;i:9;s:5:"SunOS";i:15;s:5:"false";}', 'a:3:{i:3;i:5230;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5132;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5134;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5140;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5131;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5140;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5231;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5234;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5121;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5121;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5064;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5105;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5105;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:4831;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5106;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinCE";i:11;s:10:"Windows CE";}', +'a:3:{i:3;i:5105;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:4:{i:3;i:4831;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5065;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5224;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:4831;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5098;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:1:{i:3;i:4831;}', +'a:3:{i:3;i:5234;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5105;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5098;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5228;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4831;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5107;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5065;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5121;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5121;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5107;i:9;s:5:"SunOS";i:15;s:5:"false";}', 'a:3:{i:3;i:5230;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:5:{i:3;i:4982;i:5;s:12:"Opera Mobile";i:9;s:5:"WinCE";i:11;s:10:"Windows CE";i:33;s:6:"Presto";}', -'a:3:{i:3;i:5238;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5134;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', 'a:3:{i:3;i:5231;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:1:{i:3;i:4836;}', -'a:4:{i:3;i:4836;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5131;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinCE";i:11;s:10:"Windows CE";}', -'a:4:{i:3;i:4836;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:4836;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5107;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5112;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5131;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5134;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5144;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5144;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4836;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5140;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5143;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5140;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5132;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5143;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5132;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5057;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:5:{i:3;i:4951;i:5;s:12:"Opera Mobile";i:9;s:5:"WinCE";i:11;s:10:"Windows CE";i:33;s:6:"Presto";}', +'a:3:{i:3;i:5064;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5064;i:9;s:5:"SunOS";i:15;s:5:"false";}', 'a:2:{i:3;i:5445;i:5;s:27:"fantomas fantomCrew Browser";}', -'a:2:{i:3;i:4787;i:5;s:11:"ScorpionBot";}', -'a:2:{i:3;i:5344;i:5;s:20:"NewsGator FetchLinks";}', -'a:3:{i:3;i:4865;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4788;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:3:{i:3;i:4864;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4862;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:2:{i:3;i:4542;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4542;i:9;s:4:"JAVA";}', -'a:4:{i:3;i:4786;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:4770;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:4790;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:4791;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:3:{i:3;i:4784;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:2:{i:3;i:5321;i:5;s:20:"NewsGator FetchLinks";}', +'a:2:{i:3;i:4784;i:5;s:11:"ScorpionBot";}', +'a:3:{i:3;i:4792;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:3:{i:3;i:4835;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4842;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4846;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:4:{i:3;i:4775;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:4:{i:3;i:4780;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:4:{i:3;i:4778;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:2:{i:3;i:4538;i:9;s:4:"JAVA";}', +'a:2:{i:3;i:4538;i:9;s:9:"SymbianOS";}', +'a:4:{i:3;i:4776;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:3:{i:3;i:4783;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4770;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4782;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', 'a:3:{i:3;i:5578;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:4775;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4776;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4785;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:5569;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5238;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5231;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5108;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4781;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:3:{i:3;i:5580;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5228;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5080;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5230;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5108;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5080;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5234;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', 'a:3:{i:3;i:5231;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5108;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:3:{i:3;i:5224;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5059;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5059;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5080;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5059;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5224;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5059;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5231;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', 'a:3:{i:3;i:5230;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5108;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:4:{i:3;i:5237;i:9;s:9:"SymbianOS";i:15;s:5:"false";i:26;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:15:"Unknown Crawler";}', -'a:2:{i:3;i:4576;i:5;s:31:"AcadiaUniversityWebCensusClient";}', +'a:3:{i:3;i:5264;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5234;i:9;s:9:"SymbianOS";i:15;s:5:"false";i:26;s:4:"true";}', +'a:3:{i:3;i:5228;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:3:{i:3;i:5080;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5234;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:2:{i:3;i:4645;i:5;s:15:"Unknown Crawler";}', +'a:2:{i:3;i:4579;i:5;s:31:"AcadiaUniversityWebCensusClient";}', 'a:2:{i:3;i:4578;i:5;s:16:"Download Express";}', -'a:2:{i:3;i:4787;i:5;s:6:"goliat";}', -'a:3:{i:3;i:4864;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:3:{i:3;i:4865;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:3:{i:3;i:4862;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:1:{i:3;i:5068;}', -'a:1:{i:3;i:5627;}', -'a:1:{i:3;i:5070;}', -'a:1:{i:3;i:5071;}', -'a:1:{i:3;i:5076;}', -'a:4:{i:3;i:5134;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5134;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5132;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5134;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5132;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5132;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5139;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5140;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5132;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5140;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5139;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5140;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5140;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5134;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5139;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5143;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5139;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5144;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5143;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5131;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4786;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:4:{i:3;i:5143;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5144;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5144;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5143;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5144;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5131;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5131;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5131;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5107;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5107;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5112;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5112;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5112;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5107;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5112;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5107;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:2:{i:3;i:5523;i:5;s:6:"Kapere";}', -'a:2:{i:3;i:4584;i:5;s:16:"RSS Reader Panel";}', -'a:2:{i:3;i:4787;i:5;s:17:"CostaCider Search";}', -'a:2:{i:3;i:4787;i:5;s:9:"Octopodus";}', -'a:2:{i:3;i:4953;i:5;s:29:"DataFountains/DMOZ Downloader";}', -'a:2:{i:3;i:5581;i:5;s:14:"Google Desktop";}', -'a:2:{i:3;i:4782;i:5;s:16:"FAST PartnerSite";}', -'a:2:{i:3;i:4657;i:5;s:7:"Lorkyll";}', -'a:5:{i:3;i:4945;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:4945;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";i:15;s:4:"true";}', -'a:2:{i:3;i:5080;i:15;s:5:"false";}', -'a:2:{i:3;i:5079;i:15;s:5:"false";}', -'a:2:{i:3;i:5122;i:9;s:12:"Digital Unix";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";i:9;s:6:"Mac68K";i:29;s:1:"1";}', -'a:2:{i:3;i:5057;i:15;s:5:"false";}', -'a:2:{i:3;i:5124;i:9;s:12:"Digital Unix";}', -'a:2:{i:3;i:5060;i:15;s:5:"false";}', -'a:2:{i:3;i:5126;i:9;s:12:"Digital Unix";}', -'a:5:{i:3;i:4945;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:6:{i:3;i:5631;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:6:"MacPPC";i:29;s:1:"2";}', -'a:5:{i:3;i:4951;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:9;s:6:"Mac68K";i:29;s:1:"1";}', -'a:2:{i:3;i:5069;i:15;s:5:"false";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";i:9;s:6:"Mac68K";i:29;s:1:"1";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";i:9;s:6:"MacPPC";i:29;s:1:"1";}', -'a:2:{i:3;i:5074;i:15;s:5:"false";}', -'a:5:{i:3;i:4951;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";i:15;s:4:"true";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:9;s:6:"MacPPC";i:29;s:1:"1";}', -'a:5:{i:3;i:4951;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:2:{i:3;i:5119;i:9;s:12:"Digital Unix";}', -'a:4:{i:3;i:5090;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5090;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5108;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5083;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5083;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5083;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5108;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5108;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5090;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5108;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5090;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4836;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4836;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:4542;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5083;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:4836;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:4784;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:4:{i:3;i:4982;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', -'a:3:{i:3;i:4775;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:2:{i:3;i:4982;i:9;s:9:"SymbianOS";}', -'a:3:{i:3;i:4776;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4785;i:31;s:4:"iPad";i:32;s:5:"Apple";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinCE";i:11;s:10:"Windows CE";}', -'a:3:{i:3;i:4250;i:5;s:6:"Escape";i:9;s:5:"Win32";}', -'a:3:{i:3;i:5235;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5231;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:2:{i:3;i:4784;i:5;s:6:"goliat";}', +'a:1:{i:3;i:5140;}', +'a:3:{i:3;i:4846;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:3:{i:3;i:4835;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:1:{i:3;i:5633;}', +'a:1:{i:3;i:5133;}', +'a:3:{i:3;i:4842;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:1:{i:3;i:5108;}', +'a:1:{i:3;i:5097;}', +'a:4:{i:3;i:5107;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5098;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5106;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5105;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5106;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5098;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5098;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5098;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5105;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5106;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5105;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4780;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5105;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5121;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5106;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5065;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5121;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5107;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5107;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5121;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5065;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5065;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5107;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5064;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5064;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5064;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5064;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5121;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5065;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5057;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5057;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5057;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5057;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:2:{i:3;i:5517;i:5;s:6:"Kapere";}', +'a:2:{i:3;i:4586;i:5;s:16:"RSS Reader Panel";}', +'a:2:{i:3;i:4960;i:5;s:29:"DataFountains/DMOZ Downloader";}', +'a:2:{i:3;i:4784;i:5;s:17:"CostaCider Search";}', +'a:2:{i:3;i:4784;i:5;s:9:"Octopodus";}', +'a:2:{i:3;i:5557;i:5;s:14:"Google Desktop";}', +'a:2:{i:3;i:4645;i:5;s:7:"Lorkyll";}', +'a:2:{i:3;i:4786;i:5;s:16:"FAST PartnerSite";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";i:9;s:6:"Mac68K";i:29;s:1:"1";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";i:9;s:6:"MacPPC";i:29;s:1:"1";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";i:9;s:6:"Mac68K";i:29;s:1:"1";}', +'a:2:{i:3;i:5062;i:15;s:5:"false";}', +'a:5:{i:3;i:4947;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:2:{i:3;i:5074;i:9;s:12:"Digital Unix";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:9;s:6:"Mac68K";i:29;s:1:"1";}', +'a:2:{i:3;i:5072;i:9;s:12:"Digital Unix";}', +'a:2:{i:3;i:5136;i:15;s:5:"false";}', +'a:2:{i:3;i:5073;i:9;s:12:"Digital Unix";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.9";i:7;s:1:"2";i:8;s:1:"9";i:9;s:6:"MacPPC";i:29;s:1:"1";}', +'a:6:{i:3;i:5629;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:6:"MacPPC";i:29;s:1:"2";}', +'a:2:{i:3;i:5082;i:15;s:5:"false";}', +'a:2:{i:3;i:5069;i:15;s:5:"false";}', +'a:5:{i:3;i:4949;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:5:{i:3;i:4949;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', +'a:5:{i:3;i:4949;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";i:15;s:4:"true";}', +'a:2:{i:3;i:5071;i:9;s:12:"Digital Unix";}', +'a:2:{i:3;i:5067;i:15;s:5:"false";}', +'a:5:{i:3;i:4947;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', +'a:2:{i:3;i:5070;i:15;s:5:"false";}', +'a:5:{i:3;i:4947;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";i:15;s:4:"true";}', +'a:4:{i:3;i:4831;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5059;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5059;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5068;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5080;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5059;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5080;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4831;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:4538;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:4:{i:3;i:5068;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5068;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4831;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5068;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5080;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5080;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5059;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4783;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinCE";i:11;s:10:"Windows CE";}', +'a:3:{i:3;i:4782;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:3:{i:3;i:4770;i:31;s:4:"iPad";i:32;s:5:"Apple";}', +'a:2:{i:3;i:4951;i:9;s:9:"SymbianOS";}', +'a:4:{i:3;i:4951;i:9;s:7:"Android";i:31;s:7:"Android";i:32;s:6:"Google";}', +'a:3:{i:3;i:4252;i:5;s:6:"Escape";i:9;s:5:"Win32";}', +'a:3:{i:3;i:4781;i:31;s:4:"iPad";i:32;s:5:"Apple";}', 'a:3:{i:3;i:5231;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5234;i:9;s:5:"SunOS";i:15;s:5:"false";}', 'a:3:{i:3;i:5230;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5231;i:9;s:5:"SunOS";i:15;s:5:"false";}', 'a:3:{i:3;i:5230;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5230;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5224;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5234;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5224;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5228;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5228;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5224;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5224;i:9;s:5:"SunOS";i:15;s:5:"false";}', 'a:3:{i:3;i:5231;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5230;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:3:{i:3;i:5231;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:2:{i:3;i:4841;i:5;s:28:"Bookmark Renewal Check Agent";}', -'a:4:{i:3;i:5523;i:5;s:8:"PigBlock";i:10;s:3:"5.1";i:15;s:4:"true";}', -'a:2:{i:3;i:5357;i:5;s:28:"MFC Foundation Class Library";}', -'a:2:{i:3;i:4787;i:5;s:9:"GurujiBot";}', -'a:2:{i:3;i:4657;i:5;s:14:"SynapticSearch";}', -'a:2:{i:3;i:4657;i:5;s:8:"Versatel";}', -'a:5:{i:3;i:5506;i:5;s:24:"ConveraMultiMediaCrawler";i:6;s:3:"0.1";i:7;s:1:"0";i:8;s:1:"1";}', -'a:6:{i:3;i:5631;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";i:9;s:6:"MacPPC";i:29;s:1:"1";}', -'a:1:{i:3;i:5502;}', -'a:2:{i:3;i:5101;i:5;s:10:"WorldLingo";}', -'a:2:{i:3;i:4657;i:5;s:5:"YooW!";}', -'a:2:{i:3;i:5122;i:9;s:12:"Digital Unix";}', -'a:5:{i:3;i:4943;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";i:15;s:4:"true";}', -'a:2:{i:3;i:5119;i:9;s:12:"Digital Unix";}', -'a:2:{i:3;i:5250;i:9;s:12:"Digital Unix";}', +'a:3:{i:3;i:5234;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5234;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5230;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5230;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5228;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5228;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:2:{i:3;i:4784;i:5;s:9:"GurujiBot";}', +'a:4:{i:3;i:5517;i:5;s:8:"PigBlock";i:10;s:3:"5.1";i:15;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:8:"Versatel";}', +'a:2:{i:3;i:5324;i:5;s:28:"MFC Foundation Class Library";}', +'a:2:{i:3;i:4645;i:5;s:14:"SynapticSearch";}', +'a:5:{i:3;i:5512;i:5;s:24:"ConveraMultiMediaCrawler";i:6;s:3:"0.1";i:7;s:1:"0";i:8;s:1:"1";}', +'a:2:{i:3;i:4854;i:5;s:28:"Bookmark Renewal Check Agent";}', +'a:6:{i:3;i:5629;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";i:9;s:6:"MacPPC";i:29;s:1:"1";}', +'a:1:{i:3;i:5520;}', +'a:2:{i:3;i:5119;i:5;s:10:"WorldLingo";}', +'a:2:{i:3;i:4645;i:5;s:5:"YooW!";}', +'a:2:{i:3;i:5073;i:9;s:12:"Digital Unix";}', +'a:2:{i:3;i:5233;i:9;s:12:"Digital Unix";}', +'a:5:{i:3;i:4985;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', +'a:2:{i:3;i:5074;i:9;s:12:"Digital Unix";}', +'a:1:{i:3;i:4948;}', +'a:11:{i:3;i:5261;i:4;s:18:"Playbook Simulator";i:5;s:8:"Playbook";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:10;s:3:"2.0";i:29;s:1:"3";i:31;s:8:"Playbook";i:32;s:3:"RIM";i:33;s:6:"WebKit";}', +'a:5:{i:3;i:4985;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";i:15;s:4:"true";}', +'a:5:{i:3;i:4985;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', +'a:2:{i:3;i:5072;i:9;s:12:"Digital Unix";}', +'a:1:{i:3;i:4944;}', 'a:2:{i:3;i:5644;i:5;s:24:"Jigsaw_W3C_CSS_Validator";}', -'a:5:{i:3;i:5221;i:9;s:13:"RIM Tablet OS";i:10;s:3:"1.0";i:31;s:8:"Playbook";i:32;s:3:"RIM";}', -'a:5:{i:3;i:4943;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:11:{i:3;i:5221;i:4;s:18:"Playbook Simulator";i:5;s:8:"Playbook";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:10;s:3:"2.0";i:29;s:1:"3";i:31;s:8:"Playbook";i:32;s:3:"RIM";i:33;s:6:"WebKit";}', -'a:1:{i:3;i:4940;}', -'a:1:{i:3;i:4974;}', -'a:2:{i:3;i:4782;i:5;s:26:"FAST-WebCrawler/Multimedia";}', -'a:2:{i:3;i:5126;i:9;s:12:"Digital Unix";}', -'a:5:{i:3;i:5516;i:5;s:15:"Polaris Samsung";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', -'a:5:{i:3;i:5516;i:5;s:15:"Polaris Samsung";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";}', -'a:5:{i:3;i:4943;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";i:15;s:4:"true";}', -'a:5:{i:3;i:5516;i:5;s:15:"Polaris Samsung";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";}', -'a:2:{i:3;i:5124;i:9;s:12:"Digital Unix";}', -'a:3:{i:3;i:5139;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5095;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5131;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5144;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4542;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', -'a:3:{i:3;i:5134;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5132;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:2:{i:3;i:4951;i:9;s:6:"MacPPC";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5095;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5095;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5140;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5095;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:2:{i:3;i:4945;i:9;s:6:"MacPPC";}', -'a:4:{i:3;i:5107;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5112;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5107;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5107;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5107;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5143;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5112;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5112;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5107;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5112;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:2:{i:3;i:4982;i:9;s:9:"SymbianOS";}', -'a:2:{i:3;i:4657;i:5;s:8:"KakleBot";}', -'a:2:{i:3;i:4787;i:5;s:18:"Norbert the Spider";}', -'a:2:{i:3;i:4657;i:5;s:4:"Miva";}', +'a:2:{i:3;i:4786;i:5;s:26:"FAST-WebCrawler/Multimedia";}', +'a:5:{i:3;i:5505;i:5;s:15:"Polaris Samsung";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";}', +'a:5:{i:3;i:5505;i:5;s:15:"Polaris Samsung";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";}', +'a:5:{i:3;i:5505;i:5;s:15:"Polaris Samsung";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', +'a:2:{i:3;i:5071;i:9;s:12:"Digital Unix";}', +'a:5:{i:3;i:5261;i:9;s:13:"RIM Tablet OS";i:10;s:3:"1.0";i:31;s:8:"Playbook";i:32;s:3:"RIM";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:5107;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5089;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5089;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5088;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5088;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5089;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5088;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5089;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5088;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5057;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5057;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5065;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4538;i:31;s:6:"iPhone";i:32;s:5:"Apple";}', +'a:2:{i:3;i:4947;i:9;s:6:"MacPPC";}', +'a:2:{i:3;i:4949;i:9;s:6:"MacPPC";}', +'a:3:{i:3;i:5098;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5106;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5121;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5105;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5064;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5057;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5057;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:4951;i:9;s:9:"SymbianOS";}', +'a:2:{i:3;i:4645;i:5;s:8:"KakleBot";}', +'a:2:{i:3;i:4784;i:5;s:9:"HolmesBot";}', +'a:2:{i:3;i:4645;i:5;s:4:"Miva";}', +'a:2:{i:3;i:4576;i:5;s:9:"MailMunky";}', 'a:2:{i:3;i:5445;i:5;s:23:"fantomas stealthBrowser";}', -'a:5:{i:3;i:4250;i:5;s:12:"ogeb browser";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', -'a:2:{i:3;i:4787;i:5;s:9:"HolmesBot";}', -'a:2:{i:3;i:4580;i:5;s:9:"MailMunky";}', -'a:2:{i:3;i:5357;i:5;s:16:"Microsoft-WebDAV";}', -'a:2:{i:3;i:5448;i:5;s:25:"Netcraft Webserver Survey";}', -'a:2:{i:3;i:4970;i:5;s:3:"Wii";}', -'a:5:{i:3;i:5063;i:5;s:22:"Irish Blogs Aggregator";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4782;i:5;s:25:"FAST-WebCrawler/FirstPage";}', -'a:6:{i:3;i:5608;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', -'a:6:{i:3;i:5608;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', -'a:1:{i:3;i:4940;}', -'a:2:{i:3;i:5250;i:9;s:12:"Digital Unix";}', -'a:1:{i:3;i:4974;}', -'a:4:{i:3;i:5243;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5231;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5246;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5231;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5231;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5246;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5246;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5246;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5237;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5140;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:2:{i:3;i:4943;i:9;s:6:"MacPPC";}', -'a:3:{i:3;i:5108;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5244;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5244;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5244;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5131;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5243;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5243;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5243;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5243;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5243;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5244;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5244;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5231;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5231;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5235;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5235;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5231;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:3:{i:3;i:5143;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5244;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5238;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:5132;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5237;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5235;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5246;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5238;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5235;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5238;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5238;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5090;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5134;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5144;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5083;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:2:{i:3;i:4784;i:5;s:18:"Norbert the Spider";}', +'a:5:{i:3;i:4252;i:5;s:12:"ogeb browser";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', +'a:2:{i:3;i:5324;i:5;s:16:"Microsoft-WebDAV";}', +'a:2:{i:3;i:4786;i:5;s:25:"FAST-WebCrawler/FirstPage";}', +'a:6:{i:3;i:5604;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:5440;i:5;s:25:"Netcraft Webserver Survey";}', +'a:2:{i:3;i:4953;i:5;s:3:"Wii";}', +'a:5:{i:3;i:5084;i:5;s:22:"Irish Blogs Aggregator";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:6:{i:3;i:5604;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', +'a:1:{i:3;i:4944;}', +'a:2:{i:3;i:5233;i:9;s:12:"Digital Unix";}', +'a:1:{i:3;i:4948;}', +'a:4:{i:3;i:5224;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5234;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5228;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5234;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5121;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5234;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5234;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5224;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5224;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5234;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5228;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5224;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5228;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5228;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5228;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:4985;i:9;s:6:"MacPPC";}', +'a:4:{i:3;i:5224;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5224;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5228;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5234;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5252;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', 'a:4:{i:3;i:5230;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5230;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5235;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:5139;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5064;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5230;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', 'a:4:{i:3;i:5230;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5237;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5238;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5237;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5235;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:4836;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5246;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:4:{i:3;i:5238;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5237;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:4:{i:3;i:5230;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5252;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5264;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5252;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5264;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5065;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5230;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5098;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', 'a:4:{i:3;i:5230;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5230;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:4:{i:3;i:5237;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:3:{i:3;i:4836;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:2:{i:3;i:4841;i:5;s:27:"Newsgroupreporter LinkCheck";}', +'a:4:{i:3;i:5264;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5106;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5264;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5252;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5264;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5264;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5230;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:5059;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5252;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5231;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5231;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5252;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4831;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5105;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5080;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5222;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:4:{i:3;i:5231;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:5222;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:4:{i:3;i:5231;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5231;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5222;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5222;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:5222;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5231;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5068;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5222;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:3:{i:3;i:4831;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5324;i:5;s:14:"Microsoft Live";i:27;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:11:"YellowPages";}', +'a:2:{i:3;i:4645;i:5;s:6:"PDFBot";}', 'a:2:{i:3;i:5445;i:5;s:22:"fantomas fantomBrowser";}', -'a:3:{i:3;i:5357;i:5;s:14:"Microsoft Live";i:27;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:11:"YellowPages";}', -'a:2:{i:3;i:5357;i:5;s:7:"Fake IE";}', -'a:2:{i:3;i:4657;i:5;s:6:"PDFBot";}', -'a:2:{i:3;i:5523;i:5;s:25:"POE-Component-Client-HTTP";}', -'a:2:{i:3;i:4657;i:5;s:12:"Internetseer";}', -'a:2:{i:3;i:4657;i:5;s:12:"Yellow Pages";}', -'a:2:{i:3;i:4782;i:5;s:22:"FastSearch Web Crawler";}', -'a:2:{i:3;i:5448;i:5;s:25:"Netcraft Webserver Survey";}', -'a:2:{i:3;i:4250;i:5;s:7:"BrowseX";}', -'a:4:{i:3;i:5139;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5131;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5144;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5139;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5131;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5134;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5144;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5108;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5131;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5144;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5083;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5139;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5107;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5140;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5132;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5134;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5140;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5140;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5134;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5132;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5090;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5143;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5143;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5112;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5132;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5143;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5095;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:4836;i:9;s:4:"Unix";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:4:"Unix";i:15;s:5:"false";}', -'a:2:{i:3;i:4657;i:5;s:9:"searchbot";}', +'a:2:{i:3;i:5324;i:5;s:7:"Fake IE";}', +'a:2:{i:3;i:4854;i:5;s:27:"Newsgroupreporter LinkCheck";}', +'a:2:{i:3;i:4645;i:5;s:12:"Internetseer";}', +'a:2:{i:3;i:4786;i:5;s:22:"FastSearch Web Crawler";}', +'a:2:{i:3;i:5517;i:5;s:25:"POE-Component-Client-HTTP";}', +'a:2:{i:3;i:4645;i:5;s:12:"Yellow Pages";}', +'a:2:{i:3;i:5440;i:5;s:25:"Netcraft Webserver Survey";}', +'a:2:{i:3;i:4252;i:5;s:7:"BrowseX";}', +'a:3:{i:3;i:5098;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5065;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5065;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5064;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5064;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5065;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5064;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5057;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5059;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5121;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5106;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5068;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5107;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5107;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5106;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5106;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5080;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5089;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5098;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5088;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:5098;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5105;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5105;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5105;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5121;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5121;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:4831;i:9;s:4:"Unix";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:4:"Unix";i:15;s:5:"false";}', +'a:2:{i:3;i:4645;i:5;s:9:"searchbot";}', +'a:2:{i:3;i:5612;i:5;s:20:"Yahoo! Site Explorer";}', 'a:2:{i:3;i:5445;i:5;s:21:"fantomas cloakBrowser";}', -'a:2:{i:3;i:5614;i:5;s:20:"Yahoo! Site Explorer";}', -'a:2:{i:3;i:4780;i:5;s:15:"Gallery Grabber";}', -'a:2:{i:3;i:4657;i:5;s:9:"DomainsDB";}', -'a:2:{i:3;i:5614;i:5;s:10:"Yahoo-Test";}', -'a:2:{i:3;i:4584;i:5;s:7:"AideRSS";}', -'a:2:{i:3;i:4870;i:5;s:5:"Squid";}', -'a:2:{i:3;i:4580;i:5;s:24:"E-Mail Address Extractor";}', +'a:2:{i:3;i:4645;i:5;s:9:"DomainsDB";}', +'a:2:{i:3;i:4586;i:5;s:7:"AideRSS";}', +'a:2:{i:3;i:4788;i:5;s:15:"Gallery Grabber";}', +'a:2:{i:3;i:5612;i:5;s:10:"Yahoo-Test";}', +'a:2:{i:3;i:4576;i:5;s:24:"E-Mail Address Extractor";}', 'a:2:{i:3;i:4699;i:5;s:6:"JoeDog";}', -'a:3:{i:3;i:5112;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:2:{i:3;i:4879;i:5;s:5:"Squid";}', 'a:3:{i:3;i:5230;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5083;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5090;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5095;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5083;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5108;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4836;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', -'a:4:{i:3;i:5108;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5244;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5264;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5222;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', 'a:3:{i:3;i:5231;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:5090;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5108;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5090;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4836;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5246;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5083;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:4836;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5235;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5243;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5238;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4836;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinCE";i:11;s:10:"Windows CE";}', -'a:3:{i:3;i:5237;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4836;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4836;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', -'a:10:{i:3;i:4592;i:4;s:25:"Motorola Internet Browser";i:5;s:25:"Motorola Internet Browser";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:26;s:4:"true";i:31;s:8:"Motorola";i:32;s:6:"Google";}', -'a:2:{i:3;i:4584;i:5;s:7:"AideRSS";}', -'a:2:{i:3;i:4657;i:5;s:25:"Lincoln State Web Browser";}', -'a:6:{i:3;i:4584;i:5;s:20:"Windows-RSS-Platform";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:21:"LucidMedia-ClickSense";}', -'a:2:{i:3;i:4782;i:5;s:16:"FAST PartnerSite";}', -'a:2:{i:3;i:5614;i:5;s:10:"YahooYSMcm";}', -'a:4:{i:3;i:4438;i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";}', +'a:3:{i:3;i:5228;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5224;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5234;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4831;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5088;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:4831;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinCE";i:11;s:10:"Windows CE";}', +'a:4:{i:3;i:4831;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5057;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5089;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5059;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5059;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5059;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinNT";i:10;s:3:"4.0";i:11;s:10:"Windows NT";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinXP";i:10;s:3:"5.1";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:5068;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5068;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5080;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5080;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5080;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5068;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:4831;i:9;s:5:"WinXP";i:10;s:3:"5.2";i:11;s:10:"Windows XP";}', +'a:4:{i:3;i:4831;i:9;s:8:"WinVista";i:10;s:3:"6.0";i:11;s:13:"Windows Vista";}', +'a:3:{i:3;i:5252;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:4:{i:3;i:4831;i:9;s:4:"Win7";i:10;s:3:"6.1";i:11;s:9:"Windows 7";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', +'a:2:{i:3;i:4645;i:5;s:25:"Lincoln State Web Browser";}', +'a:2:{i:3;i:4586;i:5;s:7:"AideRSS";}', +'a:10:{i:3;i:4591;i:4;s:25:"Motorola Internet Browser";i:5;s:25:"Motorola Internet Browser";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:26;s:4:"true";i:31;s:8:"Motorola";i:32;s:6:"Google";}', 'a:4:{i:3;i:4438;i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";}', -'a:2:{i:3;i:4841;i:5;s:11:"gURLChecker";}', -'a:5:{i:3;i:5581;i:5;s:28:"Google-Site-Verification/1.0";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4787;i:5;s:8:"VoilaBot";}', -'a:2:{i:3;i:4657;i:5;s:3:"bot";}', -'a:2:{i:3;i:4782;i:5;s:23:"FAST Enterprise Crawler";}', -'a:2:{i:3;i:5126;i:9;s:7:"OpenBSD";}', -'a:2:{i:3;i:5126;i:9;s:7:"Solaris";}', -'a:2:{i:3;i:5124;i:9;s:7:"Solaris";}', -'a:2:{i:3;i:5124;i:9;s:7:"OpenBSD";}', -'a:2:{i:3;i:5126;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:5124;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:5122;i:9;s:7:"Solaris";}', -'a:2:{i:3;i:5122;i:9;s:7:"OpenBSD";}', -'a:2:{i:3;i:5119;i:9;s:7:"OpenBSD";}', -'a:2:{i:3;i:5119;i:9;s:7:"Solaris";}', -'a:2:{i:3;i:5119;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:5122;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:4945;i:9;s:5:"SunOS";}', -'a:3:{i:3;i:4836;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5140;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:2:{i:3;i:4945;i:9;s:5:"Linux";}', -'a:3:{i:3;i:5238;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5134;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5112;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5112;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:2:{i:3;i:4951;i:9;s:5:"Linux";}', -'a:4:{i:3;i:5112;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5143;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5144;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:4:{i:3;i:5095;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:2:{i:3;i:4951;i:9;s:5:"SunOS";}', -'a:4:{i:3;i:5095;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5139;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5107;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5132;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5107;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5131;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5244;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5243;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5230;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5107;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:2:{i:3;i:5612;i:5;s:10:"YahooYSMcm";}', +'a:2:{i:3;i:4786;i:5;s:16:"FAST PartnerSite";}', +'a:4:{i:3;i:4438;i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";}', +'a:2:{i:3;i:4854;i:5;s:11:"gURLChecker";}', +'a:6:{i:3;i:4586;i:5;s:20:"Windows-RSS-Platform";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:21:"LucidMedia-ClickSense";}', +'a:5:{i:3;i:5557;i:5;s:28:"Google-Site-Verification/1.0";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4786;i:5;s:23:"FAST Enterprise Crawler";}', +'a:2:{i:3;i:4784;i:5;s:8:"VoilaBot";}', +'a:2:{i:3;i:4645;i:5;s:3:"bot";}', +'a:2:{i:3;i:5073;i:9;s:7:"Solaris";}', +'a:2:{i:3;i:5074;i:9;s:7:"Solaris";}', +'a:2:{i:3;i:5072;i:9;s:7:"Solaris";}', +'a:2:{i:3;i:5074;i:9;s:7:"OpenBSD";}', +'a:2:{i:3;i:5074;i:9;s:7:"FreeBSD";}', +'a:2:{i:3;i:5072;i:9;s:7:"OpenBSD";}', +'a:2:{i:3;i:5073;i:9;s:7:"OpenBSD";}', +'a:2:{i:3;i:5071;i:9;s:7:"FreeBSD";}', +'a:2:{i:3;i:5073;i:9;s:7:"FreeBSD";}', +'a:2:{i:3;i:5071;i:9;s:7:"OpenBSD";}', +'a:2:{i:3;i:5071;i:9;s:7:"Solaris";}', +'a:2:{i:3;i:5072;i:9;s:7:"FreeBSD";}', 'a:3:{i:3;i:5231;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:2:{i:3;i:5610;i:5;s:24:"Lycos-Spider_(modspider)";}', -'a:2:{i:3;i:4657;i:5;s:24:"Oracle Enterprise Search";}', -'a:2:{i:3;i:4657;i:5;s:7:"ShowXML";}', -'a:2:{i:3;i:5567;i:9;s:7:"OpenVMS";}', -'a:2:{i:3;i:4434;i:5;s:8:"IPiumBot";}', -'a:2:{i:3;i:5063;i:5;s:9:"BlogPulse";}', -'a:4:{i:3;i:4438;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', -'a:2:{i:3;i:5581;i:5;s:17:"Google OpenSocial";}', +'a:4:{i:3;i:5089;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5106;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5089;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:2:{i:3;i:4947;i:9;s:5:"SunOS";}', +'a:3:{i:3;i:5121;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5107;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:2:{i:3;i:4947;i:9;s:5:"Linux";}', +'a:3:{i:3;i:5222;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5089;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5105;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:3:{i:3;i:5228;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:2:{i:3;i:4949;i:9;s:5:"Linux";}', +'a:3:{i:3;i:5098;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:2:{i:3;i:4949;i:9;s:5:"SunOS";}', +'a:3:{i:3;i:5234;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5224;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5230;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5065;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5064;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5057;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5057;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5088;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5057;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5088;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:2:{i:3;i:4645;i:5;s:7:"ShowXML";}', +'a:2:{i:3;i:4436;i:5;s:8:"IPiumBot";}', +'a:2:{i:3;i:5615;i:5;s:24:"Lycos-Spider_(modspider)";}', +'a:2:{i:3;i:4645;i:5;s:24:"Oracle Enterprise Search";}', +'a:2:{i:3;i:5559;i:9;s:7:"OpenVMS";}', 'a:4:{i:3;i:4438;i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";}', -'a:2:{i:3;i:4787;i:5;s:8:"Walhello";}', +'a:4:{i:3;i:5508;i:6;s:4:"1.22";i:7;s:1:"1";i:8;s:2:"22";}', +'a:2:{i:3;i:5517;i:5;s:23:"Tcl http client package";}', +'a:2:{i:3;i:3353;i:5;s:20:"ICRA_label_generator";}', +'a:2:{i:3;i:3353;i:5;s:20:"ICRA_Semantic_spider";}', +'a:4:{i:3;i:4438;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', 'a:4:{i:3;i:4438;i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";}', -'a:1:{i:3;i:5615;}', -'a:2:{i:3;i:5523;i:5;s:23:"Tcl http client package";}', -'a:2:{i:3;i:3352;i:5;s:20:"ICRA_Semantic_spider";}', -'a:2:{i:3;i:3352;i:5;s:20:"ICRA_label_generator";}', -'a:4:{i:3;i:5500;i:6;s:4:"1.22";i:7;s:1:"1";i:8;s:2:"22";}', -'a:1:{i:3;i:4043;}', -'a:1:{i:3;i:4043;}', -'a:2:{i:3;i:4782;i:5;s:21:"FAST-WebCrawler/Fresh";}', -'a:3:{i:3;i:5102;i:5;s:8:"Sony PS3";i:17;s:5:"false";}', -'a:1:{i:3;i:4043;}', -'a:2:{i:3;i:5122;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:5124;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:5250;i:9;s:7:"Solaris";}', -'a:2:{i:3;i:5119;i:9;s:7:"OpenBSD";}', -'a:2:{i:3;i:5122;i:9;s:7:"OpenBSD";}', -'a:5:{i:3;i:5516;i:5;s:10:"Polaris LG";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";}', -'a:2:{i:3;i:5124;i:9;s:7:"OpenBSD";}', -'a:2:{i:3;i:5122;i:9;s:6:"Darwin";}', -'a:2:{i:3;i:5250;i:9;s:7:"OpenBSD";}', -'a:2:{i:3;i:5250;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:5119;i:9;s:7:"Solaris";}', -'a:2:{i:3;i:5122;i:9;s:6:"NetBSD";}', -'a:7:{i:3;i:4250;i:5;s:8:"Kopiczek";i:9;s:7:"WyderOS";i:18;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";}', -'a:2:{i:3;i:5122;i:9;s:6:"CygWin";}', -'a:2:{i:3;i:5124;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:5124;i:9;s:7:"Solaris";}', -'a:2:{i:3;i:5124;i:9;s:6:"CygWin";}', -'a:2:{i:3;i:5119;i:9;s:6:"CygWin";}', -'a:2:{i:3;i:5126;i:9;s:7:"FreeBSD";}', -'a:5:{i:3;i:5516;i:5;s:10:"Polaris LG";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";}', -'a:2:{i:3;i:5119;i:9;s:6:"Darwin";}', -'a:2:{i:3;i:5119;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:5126;i:9;s:6:"NetBSD";}', -'a:5:{i:3;i:5516;i:5;s:10:"Polaris LG";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', -'a:2:{i:3;i:5122;i:9;s:7:"Solaris";}', -'a:2:{i:3;i:5126;i:9;s:6:"Darwin";}', -'a:2:{i:3;i:5119;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:5124;i:9;s:6:"Darwin";}', -'a:2:{i:3;i:5126;i:9;s:7:"Solaris";}', -'a:2:{i:3;i:5126;i:9;s:7:"OpenBSD";}', -'a:2:{i:3;i:5126;i:9;s:6:"CygWin";}', -'a:4:{i:3;i:5237;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5237;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5237;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5243;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5132;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:2:{i:3;i:5084;i:5;s:9:"BlogPulse";}', +'a:1:{i:3;i:5609;}', +'a:2:{i:3;i:5557;i:5;s:17:"Google OpenSocial";}', +'a:2:{i:3;i:4784;i:5;s:8:"Walhello";}', +'a:1:{i:3;i:4045;}', +'a:2:{i:3;i:4786;i:5;s:21:"FAST-WebCrawler/Fresh";}', +'a:1:{i:3;i:4045;}', +'a:1:{i:3;i:4045;}', +'a:3:{i:3;i:5078;i:5;s:8:"Sony PS3";i:17;s:5:"false";}', +'a:2:{i:3;i:5072;i:9;s:7:"Solaris";}', +'a:5:{i:3;i:5505;i:5;s:10:"Polaris LG";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";}', +'a:2:{i:3;i:5073;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:5071;i:9;s:6:"Darwin";}', +'a:7:{i:3;i:4252;i:5;s:8:"Kopiczek";i:9;s:7:"WyderOS";i:18;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";}', +'a:5:{i:3;i:5505;i:5;s:10:"Polaris LG";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";}', +'a:2:{i:3;i:5072;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:5072;i:9;s:6:"Darwin";}', +'a:2:{i:3;i:5073;i:9;s:7:"OpenBSD";}', +'a:2:{i:3;i:5072;i:9;s:7:"OpenBSD";}', +'a:5:{i:3;i:5505;i:5;s:10:"Polaris LG";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', +'a:2:{i:3;i:5071;i:9;s:6:"CygWin";}', +'a:2:{i:3;i:5074;i:9;s:7:"FreeBSD";}', +'a:2:{i:3;i:5071;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:5233;i:9;s:7:"FreeBSD";}', +'a:2:{i:3;i:5073;i:9;s:7:"Solaris";}', +'a:2:{i:3;i:5073;i:9;s:7:"FreeBSD";}', +'a:2:{i:3;i:5233;i:9;s:7:"Solaris";}', +'a:2:{i:3;i:5074;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:5074;i:9;s:6:"Darwin";}', +'a:2:{i:3;i:5074;i:9;s:6:"CygWin";}', +'a:2:{i:3;i:5233;i:9;s:7:"OpenBSD";}', +'a:2:{i:3;i:5074;i:9;s:7:"OpenBSD";}', +'a:2:{i:3;i:5072;i:9;s:7:"FreeBSD";}', +'a:2:{i:3;i:5074;i:9;s:7:"Solaris";}', +'a:2:{i:3;i:5071;i:9;s:7:"Solaris";}', +'a:2:{i:3;i:5073;i:9;s:6:"CygWin";}', +'a:2:{i:3;i:5071;i:9;s:7:"OpenBSD";}', +'a:2:{i:3;i:5072;i:9;s:6:"CygWin";}', +'a:2:{i:3;i:5073;i:9;s:6:"Darwin";}', +'a:2:{i:3;i:5071;i:9;s:7:"FreeBSD";}', +'a:4:{i:3;i:5252;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', 'a:4:{i:3;i:5231;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5230;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5234;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5234;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5230;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5234;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', 'a:4:{i:3;i:5231;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5228;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5228;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5228;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', 'a:3:{i:3;i:5231;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5243;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5238;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5244;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5244;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5131;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5140;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', -'a:3:{i:3;i:5143;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:4:{i:3;i:5230;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5108;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5230;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5230;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5244;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5243;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:5246;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:4:{i:3;i:5246;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:4836;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:2:{i:3;i:4943;i:9;s:5:"Linux";}', -'a:3:{i:3;i:5134;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:2:{i:3;i:4943;i:9;s:5:"SunOS";}', -'a:4:{i:3;i:5246;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5144;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:5235;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:5235;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5238;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:4:{i:3;i:5238;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5235;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:2:{i:3;i:5064;i:9;s:6:"MacOSX";}', -'a:2:{i:3;i:5064;i:9;s:3:"Win";}', -'a:2:{i:3;i:4657;i:5;s:23:"spider (tspyyp@tom.com)";}', -'a:2:{i:3;i:4841;i:5;s:23:"WebTrends Link Analyzer";}', +'a:3:{i:3;i:5252;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4831;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5107;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5224;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5224;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5224;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5080;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:4:{i:3;i:5222;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:5222;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5121;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:2:{i:3;i:4985;i:9;s:5:"SunOS";}', +'a:4:{i:3;i:5252;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5059;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5105;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:7:"Win2000";i:11;s:12:"Windows 2000";}', +'a:3:{i:3;i:5098;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5064;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:4:{i:3;i:5264;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:5264;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:5065;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:2:{i:3;i:4985;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5142;i:9;s:6:"MacOSX";}', +'a:2:{i:3;i:5142;i:9;s:3:"Win";}', +'a:3:{i:3;i:5084;i:5;s:21:"blogsearchbot-pumpkin";i:27;s:5:"false";}', +'a:2:{i:3;i:4645;i:5;s:23:"spider (tspyyp@tom.com)";}', +'a:2:{i:3;i:5119;i:5;s:23:"ATA-Translation-Service";}', +'a:2:{i:3;i:4645;i:5;s:6:"Shelob";}', 'a:2:{i:3;i:4699;i:5;s:24:"Panda Antivirus Titanium";}', 'a:2:{i:3;i:4699;i:5;s:23:"Morfeus Fucking Scanner";}', -'a:9:{i:3;i:4592;i:4;s:23:"Openwave Mobile Browser";i:5;s:23:"Openwave Mobile Browser";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";}', -'a:3:{i:3;i:5063;i:5;s:21:"blogsearchbot-pumpkin";i:27;s:5:"false";}', -'a:2:{i:3;i:5101;i:5;s:23:"ATA-Translation-Service";}', -'a:2:{i:3;i:4657;i:5;s:6:"Shelob";}', -'a:2:{i:3;i:4787;i:5;s:4:"gazz";}', -'a:2:{i:3;i:5523;i:5;s:22:"Open Web Analytics Bot";}', -'a:2:{i:3;i:4841;i:5;s:17:"Favorites Sweeper";}', -'a:2:{i:3;i:4657;i:5;s:22:"XML Sitemaps Generator";}', -'a:2:{i:3;i:5063;i:5;s:21:"Bloglines Title Fetch";}', -'a:4:{i:3;i:5500;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";}', -'a:2:{i:3;i:4870;i:5;s:10:"Anonymouse";}', -'a:2:{i:3;i:4840;i:5;s:20:"Myst Monitor Service";}', -'a:2:{i:3;i:5330;i:5;s:14:"Domain Dossier";}', -'a:4:{i:3;i:5500;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";}', -'a:2:{i:3;i:4841;i:5;s:21:"CyberSpyder Link Test";}', -'a:4:{i:3;i:5500;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";}', -'a:2:{i:3;i:4589;i:5;s:19:"SocialSpider-Finder";}', -'a:2:{i:3;i:4787;i:5;s:8:"Twiceler";}', -'a:2:{i:3;i:4840;i:5;s:25:"ZoneEdit Failover Monitor";}', -'a:1:{i:3;i:4043;}', -'a:1:{i:3;i:4043;}', -'a:1:{i:3;i:4043;}', -'a:2:{i:3;i:4584;i:5;s:17:"PubSub-RSS-Reader";}', -'a:2:{i:3;i:5122;i:9;s:6:"Darwin";}', -'a:2:{i:3;i:5119;i:9;s:6:"Darwin";}', -'a:2:{i:3;i:5119;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:5119;i:9;s:6:"CygWin";}', -'a:2:{i:3;i:5119;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5122;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5122;i:9;s:6:"CygWin";}', -'a:2:{i:3;i:5250;i:9;s:6:"CygWin";}', -'a:2:{i:3;i:5250;i:9;s:6:"Darwin";}', -'a:4:{i:3;i:4945;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:4:{i:3;i:4951;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', -'a:2:{i:3;i:5250;i:9;s:7:"Solaris";}', -'a:2:{i:3;i:5250;i:9;s:7:"OpenBSD";}', -'a:2:{i:3;i:5250;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:5250;i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:5124;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:5122;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:5126;i:9;s:6:"Darwin";}', -'a:2:{i:3;i:5126;i:9;s:6:"CygWin";}', -'a:2:{i:3;i:5124;i:9;s:6:"Darwin";}', -'a:2:{i:3;i:5126;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:5126;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5124;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5124;i:9;s:6:"CygWin";}', -'a:3:{i:3;i:4836;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5112;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5107;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5108;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:2:{i:3;i:4780;i:5;s:22:"Extreme Picture Finder";}', -'a:4:{i:3;i:4592;i:4;s:22:"Miscellaneous Browsers";i:5;s:22:"Miscellaneous Browsers";i:28;s:4:"true";}', -'a:2:{i:3;i:4584;i:5;s:14:"TargetYourNews";}', -'a:13:{i:3;i:4592;i:4;s:22:"Microsoft Outlook 2010";i:5;s:17:"Microsoft Outlook";i:6;s:4:"2010";i:7;s:4:"2010";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:29;s:1:"2";}', +'a:2:{i:3;i:4854;i:5;s:23:"WebTrends Link Analyzer";}', +'a:9:{i:3;i:4591;i:4;s:23:"Openwave Mobile Browser";i:5;s:23:"Openwave Mobile Browser";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";}', +'a:2:{i:3;i:4845;i:5;s:25:"ZoneEdit Failover Monitor";}', +'a:2:{i:3;i:4879;i:5;s:10:"Anonymouse";}', +'a:2:{i:3;i:5341;i:5;s:14:"Domain Dossier";}', +'a:2:{i:3;i:5517;i:5;s:22:"Open Web Analytics Bot";}', +'a:2:{i:3;i:5084;i:5;s:21:"Bloglines Title Fetch";}', +'a:2:{i:3;i:4784;i:5;s:8:"Twiceler";}', +'a:2:{i:3;i:4784;i:5;s:4:"gazz";}', +'a:2:{i:3;i:4854;i:5;s:17:"Favorites Sweeper";}', +'a:2:{i:3;i:4845;i:5;s:20:"Myst Monitor Service";}', +'a:2:{i:3;i:4854;i:5;s:21:"CyberSpyder Link Test";}', +'a:2:{i:3;i:4592;i:5;s:19:"SocialSpider-Finder";}', +'a:4:{i:3;i:5508;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";}', +'a:4:{i:3;i:5508;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";}', +'a:2:{i:3;i:4645;i:5;s:22:"XML Sitemaps Generator";}', +'a:4:{i:3;i:5508;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";}', +'a:1:{i:3;i:4045;}', +'a:1:{i:3;i:4045;}', +'a:1:{i:3;i:4045;}', +'a:2:{i:3;i:4586;i:5;s:17:"PubSub-RSS-Reader";}', +'a:2:{i:3;i:5071;i:9;s:6:"Darwin";}', +'a:2:{i:3;i:5073;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:5233;i:9;s:6:"CygWin";}', +'a:2:{i:3;i:5073;i:9;s:6:"CygWin";}', +'a:2:{i:3;i:5074;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:5074;i:9;s:6:"CygWin";}', +'a:2:{i:3;i:5074;i:9;s:6:"Darwin";}', +'a:2:{i:3;i:5073;i:9;s:6:"Darwin";}', +'a:2:{i:3;i:5233;i:9;s:6:"NetBSD";}', +'a:4:{i:3;i:4949;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:2:{i:3;i:5233;i:9;s:6:"Darwin";}', +'a:2:{i:3;i:5071;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:5072;i:9;s:6:"CygWin";}', +'a:2:{i:3;i:5233;i:9;s:7:"FreeBSD";}', +'a:2:{i:3;i:5071;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5073;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5072;i:9;s:6:"Darwin";}', +'a:2:{i:3;i:5233;i:9;s:7:"OpenBSD";}', +'a:2:{i:3;i:5074;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5071;i:9;s:6:"CygWin";}', +'a:2:{i:3;i:5233;i:9;s:7:"Solaris";}', +'a:4:{i:3;i:4947;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";}', +'a:2:{i:3;i:5072;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:5072;i:9;s:5:"Linux";}', +'a:3:{i:3;i:5089;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:5059;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5057;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5080;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:2:{i:3;i:5517;i:5;s:22:"WinScripter iNet Tools";}', +'a:2:{i:3;i:4586;i:5;s:14:"TargetYourNews";}', +'a:13:{i:3;i:4591;i:4;s:22:"Microsoft Outlook 2010";i:5;s:17:"Microsoft Outlook";i:6;s:4:"2010";i:7;s:4:"2010";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:29;s:1:"2";}', +'a:4:{i:3;i:4591;i:4;s:22:"Miscellaneous Browsers";i:5;s:22:"Miscellaneous Browsers";i:28;s:4:"true";}', +'a:2:{i:3;i:4788;i:5;s:22:"Extreme Picture Finder";}', 'a:2:{i:3;i:4578;i:5;s:24:"Android Download Manager";}', -'a:2:{i:3;i:5523;i:5;s:22:"WinScripter iNet Tools";}', -'a:8:{i:3;i:4592;i:4;s:22:"Microsoft Outlook 2007";i:5;s:17:"Microsoft Outlook";i:6;s:4:"2007";i:7;s:4:"2007";i:17;s:4:"true";i:19;s:4:"true";i:29;s:1:"2";}', -'a:2:{i:3;i:5612;i:5;s:20:"Sogou Develop Spider";}', -'a:6:{i:3;i:5575;i:6;s:3:"4.2";i:7;s:1:"4";i:8;s:1:"2";i:9;s:5:"Win32";i:15;s:4:"true";}', -'a:6:{i:3;i:5575;i:6;s:3:"4.1";i:7;s:1:"4";i:8;s:1:"1";i:9;s:5:"Win32";i:15;s:4:"true";}', -'a:6:{i:3;i:5575;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:5:"Win32";i:15;s:4:"true";}', -'a:2:{i:3;i:5614;i:5;s:21:"YahooSeeker/CafeKelsa";}', -'a:6:{i:3;i:5575;i:6;s:3:"4.3";i:7;s:1:"4";i:8;s:1:"3";i:9;s:5:"Win32";i:15;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:20:"HuaweiSymantecSpider";}', -'a:2:{i:3;i:4840;i:5;s:20:"websitepulse checker";}', -'a:2:{i:3;i:4870;i:5;s:5:"Squid";}', -'a:2:{i:3;i:5357;i:5;s:21:"Microsoft URL Control";}', -'a:2:{i:3;i:4584;i:5;s:11:"Omea Reader";}', -'a:5:{i:3;i:5608;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";i:9;s:7:"OpenBSD";}', -'a:5:{i:3;i:5608;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";i:9;s:7:"OpenBSD";}', -'a:5:{i:3;i:5608;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";i:9;s:5:"Linux";}', -'a:5:{i:3;i:5608;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:7:"FreeBSD";}', -'a:2:{i:3;i:4787;i:5;s:20:"Iltrovatore-Setaccio";}', -'a:5:{i:3;i:5608;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";i:9;s:7:"FreeBSD";}', -'a:5:{i:3;i:5608;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"FreeBSD";}', -'a:5:{i:3;i:5608;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";i:9;s:7:"FreeBSD";}', -'a:5:{i:3;i:5608;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";i:9;s:7:"OpenBSD";}', -'a:2:{i:3;i:5119;i:9;s:5:"HP-UX";}', -'a:2:{i:3;i:5122;i:9;s:5:"HP-UX";}', -'a:2:{i:3;i:5122;i:9;s:4:"BeOS";}', -'a:2:{i:3;i:5119;i:9;s:4:"IRIX";}', -'a:2:{i:3;i:5122;i:9;s:4:"OS/2";}', -'a:2:{i:3;i:5119;i:9;s:4:"BeOS";}', -'a:2:{i:3;i:5122;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5122;i:9;s:4:"Unix";}', -'a:2:{i:3;i:5122;i:9;s:7:"RISC OS";}', -'a:2:{i:3;i:5122;i:9;s:4:"IRIX";}', -'a:2:{i:3;i:5126;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5126;i:9;s:4:"IRIX";}', -'a:2:{i:3;i:5126;i:9;s:4:"OS/2";}', -'a:2:{i:3;i:5126;i:9;s:7:"RISC OS";}', -'a:2:{i:3;i:5126;i:9;s:5:"HP-UX";}', -'a:2:{i:3;i:5126;i:9;s:4:"BeOS";}', -'a:1:{i:3;i:4974;}', -'a:1:{i:3;i:4940;}', -'a:2:{i:3;i:5126;i:9;s:4:"Unix";}', -'a:2:{i:3;i:5119;i:9;s:4:"OS/2";}', -'a:2:{i:3;i:5124;i:9;s:7:"RISC OS";}', -'a:2:{i:3;i:5124;i:9;s:4:"Unix";}', -'a:2:{i:3;i:5124;i:9;s:4:"OS/2";}', -'a:2:{i:3;i:5124;i:9;s:4:"IRIX";}', -'a:2:{i:3;i:5124;i:9;s:4:"BeOS";}', -'a:2:{i:3;i:5124;i:9;s:5:"HP-UX";}', -'a:2:{i:3;i:5124;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5119;i:9;s:5:"Linux";}', -'a:6:{i:3;i:4829;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:7:"FreeBSD";i:18;s:5:"false";}', -'a:5:{i:3;i:4829;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:7:"OpenBSD";}', -'a:2:{i:3;i:5119;i:9;s:7:"RISC OS";}', -'a:5:{i:3;i:4943;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', -'a:2:{i:3;i:5250;i:9;s:6:"Darwin";}', -'a:2:{i:3;i:5250;i:9;s:6:"NetBSD";}', -'a:2:{i:3;i:5119;i:9;s:4:"Unix";}', -'a:2:{i:3;i:5250;i:9;s:6:"CygWin";}', -'a:2:{i:3;i:5250;i:9;s:5:"Linux";}', -'a:3:{i:3;i:5139;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5140;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5139;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5131;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5143;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5143;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', -'a:3:{i:3;i:5237;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:8:{i:3;i:4591;i:4;s:22:"Microsoft Outlook 2007";i:5;s:17:"Microsoft Outlook";i:6;s:4:"2007";i:7;s:4:"2007";i:17;s:4:"true";i:19;s:4:"true";i:29;s:1:"2";}', +'a:2:{i:3;i:4645;i:5;s:20:"HuaweiSymantecSpider";}', +'a:2:{i:3;i:4845;i:5;s:20:"websitepulse checker";}', +'a:2:{i:3;i:4879;i:5;s:5:"Squid";}', +'a:2:{i:3;i:5612;i:5;s:21:"YahooSeeker/CafeKelsa";}', +'a:6:{i:3;i:5572;i:6;s:3:"4.3";i:7;s:1:"4";i:8;s:1:"3";i:9;s:5:"Win32";i:15;s:4:"true";}', +'a:6:{i:3;i:5572;i:6;s:3:"4.2";i:7;s:1:"4";i:8;s:1:"2";i:9;s:5:"Win32";i:15;s:4:"true";}', +'a:2:{i:3;i:4586;i:5;s:11:"Omea Reader";}', +'a:6:{i:3;i:5572;i:6;s:3:"4.1";i:7;s:1:"4";i:8;s:1:"1";i:9;s:5:"Win32";i:15;s:4:"true";}', +'a:6:{i:3;i:5572;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:5:"Win32";i:15;s:4:"true";}', +'a:2:{i:3;i:5324;i:5;s:21:"Microsoft URL Control";}', +'a:2:{i:3;i:5608;i:5;s:20:"Sogou Develop Spider";}', +'a:2:{i:3;i:4784;i:5;s:20:"Iltrovatore-Setaccio";}', +'a:5:{i:3;i:5604;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";i:9;s:7:"FreeBSD";}', +'a:5:{i:3;i:5604;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";i:9;s:7:"OpenBSD";}', +'a:5:{i:3;i:5604;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";i:9;s:7:"FreeBSD";}', +'a:5:{i:3;i:5604;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";i:9;s:7:"OpenBSD";}', +'a:5:{i:3;i:5604;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";i:9;s:5:"Linux";}', +'a:5:{i:3;i:5604;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";i:9;s:7:"OpenBSD";}', +'a:5:{i:3;i:5604;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:7:"FreeBSD";}', +'a:5:{i:3;i:5604;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:7:"FreeBSD";}', +'a:2:{i:3;i:5072;i:9;s:4:"BeOS";}', +'a:2:{i:3;i:5072;i:9;s:4:"Unix";}', +'a:2:{i:3;i:5073;i:9;s:4:"OS/2";}', +'a:2:{i:3;i:5073;i:9;s:7:"RISC OS";}', +'a:2:{i:3;i:5072;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5072;i:9;s:5:"HP-UX";}', +'a:2:{i:3;i:5072;i:9;s:4:"OS/2";}', +'a:2:{i:3;i:5072;i:9;s:7:"RISC OS";}', +'a:2:{i:3;i:5073;i:9;s:4:"Unix";}', +'a:2:{i:3;i:5073;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5072;i:9;s:4:"IRIX";}', +'a:2:{i:3;i:5071;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5071;i:9;s:4:"BeOS";}', +'a:2:{i:3;i:5074;i:9;s:7:"RISC OS";}', +'a:5:{i:3;i:4848;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:7:"OpenBSD";}', +'a:6:{i:3;i:4848;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:7:"FreeBSD";i:18;s:5:"false";}', +'a:5:{i:3;i:4985;i:9;s:7:"Win2000";i:10;s:3:"5.0";i:11;s:12:"Windows 2000";i:15;s:4:"true";}', +'a:1:{i:3;i:4948;}', +'a:1:{i:3;i:4944;}', +'a:2:{i:3;i:5074;i:9;s:4:"BeOS";}', +'a:2:{i:3;i:5074;i:9;s:5:"HP-UX";}', +'a:2:{i:3;i:5074;i:9;s:4:"IRIX";}', +'a:2:{i:3;i:5233;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:5074;i:9;s:4:"OS/2";}', +'a:2:{i:3;i:5233;i:9;s:6:"Darwin";}', +'a:2:{i:3;i:5233;i:9;s:6:"CygWin";}', +'a:2:{i:3;i:5074;i:9;s:4:"Unix";}', +'a:2:{i:3;i:5071;i:9;s:5:"HP-UX";}', +'a:2:{i:3;i:5233;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5074;i:9;s:5:"Linux";}', +'a:2:{i:3;i:5073;i:9;s:4:"BeOS";}', +'a:2:{i:3;i:5073;i:9;s:5:"HP-UX";}', +'a:2:{i:3;i:5073;i:9;s:4:"IRIX";}', +'a:2:{i:3;i:5071;i:9;s:4:"Unix";}', +'a:2:{i:3;i:5071;i:9;s:7:"RISC OS";}', +'a:2:{i:3;i:5071;i:9;s:4:"OS/2";}', +'a:2:{i:3;i:5071;i:9;s:4:"IRIX";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinXP";i:11;s:10:"Windows XP";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', +'a:3:{i:3;i:4831;i:9;s:5:"WinCE";i:11;s:10:"Windows CE";}', +'a:4:{i:3;i:4831;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', +'a:4:{i:3;i:4831;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:5228;i:9;s:6:"MacOSX";i:15;s:5:"false";}', 'a:3:{i:3;i:5231;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5131;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5140;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5144;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5132;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5134;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5107;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinME";i:11;s:10:"Windows ME";}', -'a:3:{i:3;i:5112;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:4:{i:3;i:4836;i:9;s:5:"Win95";i:10;s:2:"95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:5132;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5098;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5121;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5121;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5107;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5107;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5106;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5224;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5105;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5105;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5098;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5234;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5057;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', 'a:3:{i:3;i:5230;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5144;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5134;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:4836;i:9;s:5:"Win98";i:10;s:2:"98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:4836;i:9;s:5:"WinCE";i:11;s:10:"Windows CE";}', -'a:2:{i:3;i:4646;i:5;s:15:"Browscap Mirror";}', -'a:2:{i:3;i:4657;i:5;s:17:"NSO_Debugger_User";}', -'a:10:{i:3;i:4592;i:4;s:21:"HP Secure Web Browser";i:5;s:21:"HP Secure Web Browser";i:9;s:7:"OpenVMS";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', -'a:1:{i:3;i:5633;}', +'a:3:{i:3;i:5088;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5064;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5064;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5065;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5065;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:2:{i:3;i:4645;i:5;s:17:"NSO_Debugger_User";}', +'a:10:{i:3;i:4591;i:4;s:21:"HP Secure Web Browser";i:5;s:21:"HP Secure Web Browser";i:9;s:7:"OpenVMS";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', +'a:2:{i:3;i:4657;i:5;s:15:"Browscap Mirror";}', +'a:2:{i:3;i:4576;i:5;s:19:"Atomic Email Hunter";}', +'a:2:{i:3;i:5517;i:5;s:8:"Ezic.com";}', +'a:2:{i:3;i:5557;i:5;s:20:"AdsBot-Google-Mobile";}', +'a:2:{i:3;i:5557;i:5;s:20:"Mediapartners-Google";}', +'a:2:{i:3;i:4586;i:5;s:7:"NewsFox";}', +'a:2:{i:3;i:5517;i:5;s:9:"arachnode";}', +'a:2:{i:3;i:4784;i:5;s:8:"Infoseek";}', 'a:2:{i:3;i:5445;i:5;s:29:"fantomas multiBlocker browser";}', -'a:4:{i:3;i:5642;i:5;s:16:"MSNBot-NewsBlogs";i:6;s:1:"1";i:7;s:1:"1";}', -'a:2:{i:3;i:5581;i:5;s:20:"Mediapartners-Google";}', -'a:2:{i:3;i:4657;i:5;s:20:"Netchart Adv Crawler";}', -'a:2:{i:3;i:4434;i:5;s:20:"iCopyright Conductor";}', -'a:2:{i:3;i:4787;i:5;s:8:"Infoseek";}', -'a:2:{i:3;i:4434;i:5;s:17:"copyright sheriff";}', -'a:2:{i:3;i:4580;i:5;s:19:"Atomic Email Hunter";}', -'a:2:{i:3;i:5581;i:5;s:20:"AdsBot-Google-Mobile";}', -'a:2:{i:3;i:5523;i:5;s:9:"arachnode";}', -'a:2:{i:3;i:4841;i:5;s:20:"Bookmark search tool";}', -'a:2:{i:3;i:5523;i:5;s:8:"Ezic.com";}', -'a:2:{i:3;i:4584;i:5;s:7:"NewsFox";}', -'a:2:{i:3;i:5588;i:5;s:9:"BecomeBot";}', -'a:2:{i:3;i:4840;i:5;s:19:"maxamine.com--robot";}', -'a:5:{i:3;i:5608;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:6:"MacPPC";}', -'a:2:{i:3;i:5608;i:9;s:6:"NetBSD";}', -'a:5:{i:3;i:5608;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";i:9;s:5:"Linux";}', -'a:2:{i:3;i:5581;i:5;s:17:"Google Enterprise";}', -'a:5:{i:3;i:5581;i:5;s:16:"Googlebot-Mobile";i:17;s:5:"false";i:18;s:5:"false";i:19;s:5:"false";}', -'a:2:{i:3;i:5608;i:9;s:6:"NetBSD";}', -'a:5:{i:3;i:5608;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";i:9;s:5:"Linux";}', -'a:4:{i:3;i:4951;i:9;s:5:"WinNT";i:11;s:10:"Windows NT";i:15;s:4:"true";}', -'a:3:{i:3;i:4951;i:9;s:5:"Win98";i:11;s:10:"Windows 98";}', -'a:3:{i:3;i:4945;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', -'a:4:{i:3;i:4945;i:9;s:5:"WinNT";i:11;s:10:"Windows NT";i:15;s:4:"true";}', -'a:3:{i:3;i:4951;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', -'a:3:{i:3;i:4945;i:9;s:5:"Win98";i:11;s:10:"Windows 98";}', -'a:2:{i:3;i:5119;i:9;s:4:"IRIX";}', -'a:2:{i:3;i:5124;i:9;s:7:"RISC OS";}', -'a:2:{i:3;i:5124;i:9;s:4:"OS/2";}', -'a:2:{i:3;i:5124;i:9;s:4:"IRIX";}', -'a:2:{i:3;i:5124;i:9;s:4:"Unix";}', -'a:2:{i:3;i:5122;i:9;s:3:"AIX";}', -'a:2:{i:3;i:5122;i:9;s:5:"HP-UX";}', -'a:2:{i:3;i:5122;i:9;s:4:"BeOS";}', -'a:2:{i:3;i:5124;i:9;s:5:"HP-UX";}', -'a:2:{i:3;i:5124;i:9;s:4:"BeOS";}', -'a:2:{i:3;i:5126;i:9;s:5:"HP-UX";}', -'a:2:{i:3;i:5126;i:9;s:4:"BeOS";}', -'a:2:{i:3;i:5126;i:9;s:3:"AIX";}', -'a:2:{i:3;i:5126;i:9;s:4:"IRIX";}', -'a:2:{i:3;i:5126;i:9;s:7:"RISC OS";}', -'a:2:{i:3;i:5124;i:9;s:3:"AIX";}', -'a:2:{i:3;i:5126;i:9;s:4:"Unix";}', -'a:2:{i:3;i:5122;i:9;s:4:"IRIX";}', -'a:2:{i:3;i:5122;i:9;s:4:"OS/2";}', -'a:2:{i:3;i:5250;i:9;s:4:"IRIX";}', -'a:2:{i:3;i:5250;i:9;s:5:"HP-UX";}', -'a:2:{i:3;i:5250;i:9;s:4:"BeOS";}', -'a:2:{i:3;i:5250;i:9;s:4:"OS/2";}', -'a:2:{i:3;i:5250;i:9;s:7:"RISC OS";}', -'a:2:{i:3;i:5250;i:9;s:5:"Linux";}', -'a:2:{i:3;i:5250;i:9;s:4:"Unix";}', -'a:2:{i:3;i:5119;i:9;s:4:"Unix";}', -'a:2:{i:3;i:5119;i:9;s:7:"RISC OS";}', -'a:2:{i:3;i:5122;i:9;s:4:"Unix";}', -'a:2:{i:3;i:5122;i:9;s:7:"RISC OS";}', -'a:2:{i:3;i:5119;i:9;s:3:"AIX";}', -'a:2:{i:3;i:5119;i:9;s:4:"BeOS";}', -'a:2:{i:3;i:5119;i:9;s:4:"OS/2";}', -'a:2:{i:3;i:5119;i:9;s:5:"HP-UX";}', -'a:2:{i:3;i:4584;i:5;s:14:"Cocoal.icio.us";}', -'a:2:{i:3;i:5126;i:9;s:4:"OS/2";}', -'a:1:{i:3;i:4043;}', -'a:1:{i:3;i:4043;}', -'a:1:{i:3;i:4043;}', -'a:3:{i:3;i:5083;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5090;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:1:{i:3;i:5626;}', +'a:2:{i:3;i:4436;i:5;s:20:"iCopyright Conductor";}', +'a:4:{i:3;i:5643;i:5;s:16:"MSNBot-NewsBlogs";i:6;s:1:"1";i:7;s:1:"1";}', +'a:2:{i:3;i:4645;i:5;s:20:"Netchart Adv Crawler";}', +'a:2:{i:3;i:4436;i:5;s:17:"copyright sheriff";}', +'a:2:{i:3;i:4854;i:5;s:20:"Bookmark search tool";}', +'a:2:{i:3;i:5604;i:9;s:6:"NetBSD";}', +'a:2:{i:3;i:4845;i:5;s:19:"maxamine.com--robot";}', +'a:2:{i:3;i:5577;i:5;s:9:"BecomeBot";}', +'a:2:{i:3;i:5557;i:5;s:17:"Google Enterprise";}', +'a:5:{i:3;i:5604;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:6:"MacPPC";}', +'a:5:{i:3;i:5557;i:5;s:16:"Googlebot-Mobile";i:17;s:5:"false";i:18;s:5:"false";i:19;s:5:"false";}', +'a:2:{i:3;i:5604;i:9;s:6:"NetBSD";}', +'a:5:{i:3;i:5604;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";i:9;s:5:"Linux";}', +'a:5:{i:3;i:5604;i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";i:9;s:5:"Linux";}', +'a:2:{i:3;i:5072;i:9;s:3:"AIX";}', +'a:1:{i:3;i:4045;}', +'a:2:{i:3;i:5072;i:9;s:4:"OS/2";}', +'a:2:{i:3;i:5072;i:9;s:4:"IRIX";}', +'a:2:{i:3;i:5072;i:9;s:5:"HP-UX";}', +'a:2:{i:3;i:5072;i:9;s:4:"BeOS";}', +'a:2:{i:3;i:5071;i:9;s:4:"OS/2";}', +'a:2:{i:3;i:5072;i:9;s:4:"Unix";}', +'a:2:{i:3;i:5073;i:9;s:4:"Unix";}', +'a:2:{i:3;i:5073;i:9;s:7:"RISC OS";}', +'a:2:{i:3;i:5073;i:9;s:4:"OS/2";}', +'a:2:{i:3;i:5073;i:9;s:4:"IRIX";}', +'a:2:{i:3;i:5073;i:9;s:5:"HP-UX";}', +'a:2:{i:3;i:5071;i:9;s:4:"Unix";}', +'a:2:{i:3;i:5073;i:9;s:4:"BeOS";}', +'a:2:{i:3;i:5072;i:9;s:7:"RISC OS";}', +'a:2:{i:3;i:5233;i:9;s:5:"HP-UX";}', +'a:2:{i:3;i:5071;i:9;s:4:"IRIX";}', +'a:2:{i:3;i:5071;i:9;s:4:"BeOS";}', +'a:2:{i:3;i:5233;i:9;s:4:"IRIX";}', +'a:2:{i:3;i:5233;i:9;s:4:"OS/2";}', +'a:4:{i:3;i:4947;i:9;s:5:"WinNT";i:11;s:10:"Windows NT";i:15;s:4:"true";}', +'a:2:{i:3;i:5071;i:9;s:5:"HP-UX";}', +'a:2:{i:3;i:5233;i:9;s:7:"RISC OS";}', +'a:2:{i:3;i:5233;i:9;s:4:"Unix";}', +'a:2:{i:3;i:5233;i:9;s:4:"BeOS";}', +'a:4:{i:3;i:4949;i:9;s:5:"WinNT";i:11;s:10:"Windows NT";i:15;s:4:"true";}', +'a:2:{i:3;i:5233;i:9;s:5:"Linux";}', +'a:3:{i:3;i:4949;i:9;s:5:"Win98";i:11;s:10:"Windows 98";}', +'a:2:{i:3;i:5071;i:9;s:7:"RISC OS";}', +'a:3:{i:3;i:4949;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', +'a:3:{i:3;i:4947;i:9;s:5:"Win98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:4947;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', +'a:2:{i:3;i:5071;i:9;s:3:"AIX";}', +'a:1:{i:3;i:4045;}', +'a:1:{i:3;i:4045;}', +'a:2:{i:3;i:5073;i:9;s:3:"AIX";}', +'a:2:{i:3;i:5074;i:9;s:4:"OS/2";}', +'a:2:{i:3;i:5074;i:9;s:4:"Unix";}', +'a:2:{i:3;i:5074;i:9;s:3:"AIX";}', +'a:2:{i:3;i:5074;i:9;s:4:"BeOS";}', +'a:2:{i:3;i:5074;i:9;s:4:"IRIX";}', +'a:2:{i:3;i:5074;i:9;s:5:"HP-UX";}', +'a:2:{i:3;i:5074;i:9;s:7:"RISC OS";}', +'a:2:{i:3;i:4586;i:5;s:14:"Cocoal.icio.us";}', +'a:3:{i:3;i:5080;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:6:"MacPPC";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5080;i:9;s:5:"SunOS";i:15;s:5:"false";}', 'a:3:{i:3;i:5231;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5108;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5108;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:6:"MacPPC";i:15;s:5:"false";}', -'a:1:{i:3;i:5561;}', -'a:3:{i:3;i:5244;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5224;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5059;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5059;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5228;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:1:{i:3;i:5560;}', 'a:3:{i:3;i:5230;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5083;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:2:{i:3;i:5610;i:5;s:20:"Lycos-Spider_(T-Rex)";}', -'a:2:{i:3;i:4584;i:5;s:4:"Wizz";}', -'a:4:{i:3;i:4592;i:4;s:20:"Copyright/Plagiarism";i:5;s:20:"Copyright/Plagiarism";i:28;s:4:"true";}', -'a:2:{i:3;i:5581;i:5;s:20:"googlebot-urlconsole";}', -'a:2:{i:3;i:4657;i:5;s:16:"Poodle Predictor";}', -'a:2:{i:3;i:5357;i:5;s:15:"Microsoft Visio";}', -'a:8:{i:3;i:4592;i:4;s:20:"Windows Media Player";i:5;s:20:"Windows Media Player";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', -'a:2:{i:3;i:5523;i:5;s:7:"AspTear";}', -'a:2:{i:3;i:5612;i:5;s:18:"Sogou Orion spider";}', -'a:2:{i:3;i:4841;i:5;s:19:"Funnel Web Profiler";}', -'a:2:{i:3;i:4787;i:5;s:6:"Mirago";}', -'a:5:{i:3;i:5101;i:5;s:18:"TeragramWebcrawler";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4780;i:5;s:19:"Web Image Collector";}', -'a:2:{i:3;i:5581;i:5;s:21:"Google Friend Connect";}', -'a:2:{i:3;i:5523;i:5;s:18:"Internet Exploiter";}', -'a:2:{i:3;i:4580;i:5;s:19:"8484 Boston Project";}', -'a:2:{i:3;i:4657;i:5;s:18:"NetCarta_WebMapper";}', -'a:5:{i:3;i:5642;i:5;s:15:"MSNBot-Academic";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4657;i:5;s:19:"Radiation Retriever";}', -'a:2:{i:3;i:4638;i:5;s:18:"BackStreet Browser";}', -'a:2:{i:3;i:4841;i:5;s:8:"LinkLint";}', -'a:2:{i:3;i:4841;i:5;s:18:"Web Link Validator";}', -'a:5:{i:3;i:5608;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:5:"Linux";}', -'a:2:{i:3;i:5609;i:5;s:19:"Baidu Mobile search";}', -'a:6:{i:3;i:5608;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:5:"Win32";i:15;s:4:"true";}', -'a:5:{i:3;i:5608;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";i:9;s:5:"Linux";}', -'a:2:{i:3;i:5581;i:5;s:18:"Google Web Preview";}', -'a:5:{i:3;i:5608;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Linux";}', -'a:6:{i:3;i:5608;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win32";i:15;s:4:"true";}', -'a:5:{i:3;i:5608;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:9;s:5:"Linux";}', -'a:4:{i:3;i:4943;i:9;s:5:"WinNT";i:11;s:10:"Windows NT";i:15;s:4:"true";}', -'a:2:{i:3;i:5250;i:9;s:4:"BeOS";}', -'a:2:{i:3;i:5250;i:9;s:5:"HP-UX";}', -'a:2:{i:3;i:5122;i:9;s:3:"AIX";}', -'a:3:{i:3;i:4943;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', -'a:2:{i:3;i:5124;i:9;s:3:"AIX";}', -'a:2:{i:3;i:5250;i:9;s:3:"AIX";}', -'a:3:{i:3;i:4943;i:9;s:5:"Win98";i:11;s:10:"Windows 98";}', -'a:5:{i:3;i:4829;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:5:"Linux";}', -'a:2:{i:3;i:5119;i:9;s:3:"AIX";}', -'a:2:{i:3;i:5250;i:9;s:4:"Unix";}', -'a:2:{i:3;i:5250;i:9;s:4:"OS/2";}', -'a:2:{i:3;i:5250;i:9;s:7:"RISC OS";}', -'a:2:{i:3;i:5250;i:9;s:4:"IRIX";}', -'a:2:{i:3;i:5126;i:9;s:3:"AIX";}', -'a:3:{i:3;i:5112;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5107;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5107;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:6:"MacOSX";i:15;s:5:"false";}', -'a:3:{i:3;i:5112;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:1:{i:3;i:5064;}', -'a:3:{i:3;i:5095;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5095;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:4:"Unix";i:15;s:5:"false";}', -'a:18:{i:3;i:4592;i:4;s:19:"Android Browser 4.0";i:5;s:7:"Android";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:7:"Android";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:31;s:7:"Android";i:32;s:6:"Google";i:33;s:6:"WebKit";i:34;s:6:"534.13";}', -'a:2:{i:3;i:4841;i:5;s:19:"MetaGer-LinkChecker";}', -'a:17:{i:3;i:4592;i:4;s:19:"Android Browser 3.0";i:5;s:7:"Android";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:7:"Android";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:31;s:7:"Android";i:32;s:6:"Google";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4657;i:5;s:8:"LookSeek";}', -'a:2:{i:3;i:4657;i:5;s:11:"QuickFinder";}', -'a:2:{i:3;i:4657;i:5;s:19:"Oracle Ultra Search";}', -'a:2:{i:3;i:5523;i:5;s:7:"Fake IE";}', -'a:2:{i:3;i:5523;i:5;s:18:"Website Downloader";}', -'a:2:{i:3;i:4787;i:5;s:10:"wadaino.jp";}', -'a:2:{i:3;i:5518;i:5;s:17:"GigabotSiteSearch";}', -'a:2:{i:3;i:5220;i:5;s:14:"WordPress-Do-P";}', -'a:2:{i:3;i:4942;i:5;s:17:"ExactSeek Crawler";}', +'a:3:{i:3;i:5068;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5068;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5234;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:2:{i:3;i:5557;i:5;s:20:"googlebot-urlconsole";}', +'a:2:{i:3;i:5615;i:5;s:20:"Lycos-Spider_(T-Rex)";}', +'a:2:{i:3;i:4645;i:5;s:16:"Poodle Predictor";}', +'a:2:{i:3;i:5324;i:5;s:15:"Microsoft Visio";}', +'a:4:{i:3;i:4591;i:4;s:20:"Copyright/Plagiarism";i:5;s:20:"Copyright/Plagiarism";i:28;s:4:"true";}', +'a:2:{i:3;i:4586;i:5;s:4:"Wizz";}', +'a:8:{i:3;i:4591;i:4;s:20:"Windows Media Player";i:5;s:20:"Windows Media Player";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', +'a:5:{i:3;i:5643;i:5;s:15:"MSNBot-Academic";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4645;i:5;s:18:"NetCarta_WebMapper";}', +'a:2:{i:3;i:4646;i:5;s:18:"BackStreet Browser";}', +'a:2:{i:3;i:5608;i:5;s:18:"Sogou Orion spider";}', +'a:2:{i:3;i:4854;i:5;s:19:"Funnel Web Profiler";}', +'a:2:{i:3;i:4784;i:5;s:6:"Mirago";}', +'a:2:{i:3;i:4854;i:5;s:8:"LinkLint";}', +'a:2:{i:3;i:5517;i:5;s:7:"AspTear";}', +'a:2:{i:3;i:5557;i:5;s:21:"Google Friend Connect";}', +'a:2:{i:3;i:4645;i:5;s:19:"Radiation Retriever";}', +'a:2:{i:3;i:5517;i:5;s:18:"Internet Exploiter";}', +'a:2:{i:3;i:4576;i:5;s:19:"8484 Boston Project";}', +'a:2:{i:3;i:4788;i:5;s:19:"Web Image Collector";}', +'a:5:{i:3;i:5119;i:5;s:18:"TeragramWebcrawler";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:5:{i:3;i:5604;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";i:9;s:5:"Linux";}', +'a:2:{i:3;i:5602;i:5;s:19:"Baidu Mobile search";}', +'a:5:{i:3;i:5604;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Linux";}', +'a:6:{i:3;i:5604;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:5:"Win32";i:15;s:4:"true";}', +'a:5:{i:3;i:5604;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:9;s:5:"Linux";}', +'a:5:{i:3;i:5604;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:5:"Linux";}', +'a:2:{i:3;i:4854;i:5;s:18:"Web Link Validator";}', +'a:6:{i:3;i:5604;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:5:"Win32";i:15;s:4:"true";}', +'a:2:{i:3;i:5557;i:5;s:18:"Google Web Preview";}', +'a:2:{i:3;i:5233;i:9;s:4:"IRIX";}', +'a:2:{i:3;i:5233;i:9;s:4:"OS/2";}', +'a:2:{i:3;i:5233;i:9;s:5:"HP-UX";}', +'a:2:{i:3;i:5233;i:9;s:7:"RISC OS";}', +'a:2:{i:3;i:5233;i:9;s:4:"BeOS";}', +'a:2:{i:3;i:5074;i:9;s:3:"AIX";}', +'a:2:{i:3;i:5233;i:9;s:4:"Unix";}', +'a:2:{i:3;i:5233;i:9;s:3:"AIX";}', +'a:2:{i:3;i:5072;i:9;s:3:"AIX";}', +'a:2:{i:3;i:5073;i:9;s:3:"AIX";}', +'a:2:{i:3;i:5071;i:9;s:3:"AIX";}', +'a:3:{i:3;i:4985;i:9;s:5:"Win98";i:11;s:10:"Windows 98";}', +'a:3:{i:3;i:4985;i:9;s:5:"Win95";i:11;s:10:"Windows 95";}', +'a:4:{i:3;i:4985;i:9;s:5:"WinNT";i:11;s:10:"Windows NT";i:15;s:4:"true";}', +'a:5:{i:3;i:4848;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:5:"Linux";}', +'a:1:{i:3;i:5142;}', +'a:3:{i:3;i:4831;i:9;s:6:"MacOSX";i:15;s:5:"false";}', +'a:3:{i:3;i:5057;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:4:"Unix";i:15;s:5:"false";}', +'a:3:{i:3;i:5089;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5088;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5057;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:2:{i:3;i:4645;i:5;s:11:"QuickFinder";}', +'a:2:{i:3;i:4645;i:5;s:8:"LookSeek";}', +'a:2:{i:3;i:4854;i:5;s:19:"MetaGer-LinkChecker";}', +'a:2:{i:3;i:4645;i:5;s:19:"Oracle Ultra Search";}', +'a:18:{i:3;i:4591;i:4;s:19:"Android Browser 4.0";i:5;s:7:"Android";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:7:"Android";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:31;s:7:"Android";i:32;s:6:"Google";i:33;s:6:"WebKit";i:34;s:6:"534.13";}', +'a:17:{i:3;i:4591;i:4;s:19:"Android Browser 3.0";i:5;s:7:"Android";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:7:"Android";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:31;s:7:"Android";i:32;s:6:"Google";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:5229;i:5;s:14:"WordPress-Do-P";}', +'a:2:{i:3;i:5504;i:5;s:17:"GigabotSiteSearch";}', +'a:2:{i:3;i:4980;i:5;s:17:"ExactSeek Crawler";}', +'a:2:{i:3;i:4854;i:5;s:18:"Z-Add Link Checker";}', +'a:2:{i:3;i:4784;i:5;s:10:"wadaino.jp";}', 'a:2:{i:3;i:4578;i:5;s:17:"LightningDownload";}', +'a:3:{i:3;i:5557;i:5;s:18:"Feedfetcher-Google";i:27;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:7:"Fake IE";}', +'a:2:{i:3;i:5517;i:5;s:18:"Website Downloader";}', +'a:2:{i:3;i:4645;i:5;s:9:"PlantyNet";}', +'a:2:{i:3;i:5608;i:5;s:17:"Sogou-Test-Spider";}', +'a:2:{i:3;i:4645;i:5;s:18:"Semantic Discovery";}', +'a:2:{i:3;i:5608;i:5;s:17:"Sogou Push Spider";}', 'a:2:{i:3;i:4578;i:5;s:18:"Offline Downloader";}', -'a:2:{i:3;i:5612;i:5;s:17:"Sogou Push Spider";}', -'a:2:{i:3;i:4657;i:5;s:9:"PlantyNet";}', -'a:2:{i:3;i:4841;i:5;s:18:"Z-Add Link Checker";}', -'a:2:{i:3;i:5612;i:5;s:17:"Sogou-Test-Spider";}', -'a:3:{i:3;i:5581;i:5;s:18:"Feedfetcher-Google";i:27;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:18:"Semantic Discovery";}', -'a:2:{i:3;i:4657;i:5;s:8:"Dumbfind";}', -'a:5:{i:3;i:5608;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:4:"OS/2";}', -'a:5:{i:3;i:5608;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:4:"Unix";}', -'a:2:{i:3;i:4787;i:5;s:11:"SearchHippo";}', -'a:5:{i:3;i:5435;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:4:"Unix";}', -'a:2:{i:3;i:5609;i:5;s:18:"Baidu Image search";}', -'a:2:{i:3;i:5609;i:5;s:18:"Baidu Video search";}', -'a:5:{i:3;i:5435;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:9;s:4:"Unix";}', -'a:5:{i:3;i:5435;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:4:"Unix";}', -'a:5:{i:3;i:5608;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:4:"OS/2";}', -'a:5:{i:3;i:5608;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:4:"Unix";}', -'a:1:{i:3;i:4974;}', -'a:1:{i:3;i:4940;}', -'a:2:{i:3;i:5250;i:9;s:3:"AIX";}', -'a:3:{i:3;i:5230;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5231;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5231;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5235;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:5:{i:3;i:5604;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:4:"Unix";}', +'a:2:{i:3;i:5602;i:5;s:18:"Baidu Video search";}', +'a:5:{i:3;i:5432;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:9;s:4:"Unix";}', +'a:5:{i:3;i:5604;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:4:"OS/2";}', +'a:5:{i:3;i:5432;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:4:"Unix";}', +'a:2:{i:3;i:5602;i:5;s:18:"Baidu Image search";}', +'a:5:{i:3;i:5432;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:4:"Unix";}', +'a:2:{i:3;i:4645;i:5;s:8:"Dumbfind";}', +'a:2:{i:3;i:4784;i:5;s:11:"SearchHippo";}', +'a:5:{i:3;i:5604;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:9;s:4:"OS/2";}', +'a:5:{i:3;i:5604;i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:9;s:4:"Unix";}', +'a:2:{i:3;i:5233;i:9;s:3:"AIX";}', +'a:1:{i:3;i:4948;}', +'a:1:{i:3;i:4944;}', +'a:3:{i:3;i:5224;i:9;s:5:"SunOS";i:15;s:5:"false";}', 'a:3:{i:3;i:5230;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5244;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5246;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5243;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:3:{i:3;i:5237;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:5238;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:2:{i:3;i:4646;i:5;s:15:"BrowscapUpdater";}', -'a:8:{i:3;i:4592;i:4;s:18:"Lycoris Desktop/LX";i:5;s:18:"Lycoris Desktop/LX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', -'a:2:{i:3;i:5614;i:5;s:18:"YahooExternalCache";}', -'a:4:{i:3;i:4592;i:4;s:18:"BitTorrent Clients";i:5;s:0:"";i:28;s:4:"true";}', -'a:2:{i:3;i:5523;i:5;s:18:"Twisted PageGetter";}', -'a:10:{i:3;i:4592;i:4;s:18:"Opera Mini Generic";i:5;s:10:"Opera Mini";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:2:{i:3;i:4657;i:5;s:18:"A .NET Web Crawler";}', -'a:2:{i:3;i:4576;i:5;s:16:"Forschungsportal";}', -'a:2:{i:3;i:5523;i:5;s:17:"Flaming AttackBot";}', -'a:2:{i:3;i:4657;i:5;s:10:"FollowSite";}', -'a:2:{i:3;i:5612;i:5;s:16:"Sogou Pic Spider";}', -'a:2:{i:3;i:4841;i:5;s:10:"Link Valet";}', -'a:2:{i:3;i:5523;i:5;s:7:"Fake IE";}', -'a:3:{i:3;i:4584;i:5;s:10:"Safari RSS";i:9;s:6:"MacOSX";}', -'a:2:{i:3;i:4657;i:5;s:17:"DomainWatcher Bot";}', +'a:3:{i:3;i:5252;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:7:"FreeBSD";i:15;s:5:"false";}', +'a:3:{i:3;i:5234;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5224;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5264;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5252;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5228;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5234;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5231;i:9;s:5:"Linux";i:15;s:5:"false";}', +'a:3:{i:3;i:5231;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5222;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5228;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:5230;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:2:{i:3;i:5517;i:5;s:18:"Twisted PageGetter";}', +'a:10:{i:3;i:4591;i:4;s:18:"Opera Mini Generic";i:5;s:10:"Opera Mini";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:4:{i:3;i:4591;i:4;s:18:"BitTorrent Clients";i:5;s:0:"";i:28;s:4:"true";}', +'a:8:{i:3;i:4591;i:4;s:18:"Lycoris Desktop/LX";i:5;s:18:"Lycoris Desktop/LX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:18:"A .NET Web Crawler";}', +'a:2:{i:3;i:5612;i:5;s:18:"YahooExternalCache";}', +'a:2:{i:3;i:4657;i:5;s:15:"BrowscapUpdater";}', +'a:2:{i:3;i:4845;i:5;s:10:"Site Valet";}', +'a:2:{i:3;i:5517;i:5;s:6:"Artera";}', +'a:2:{i:3;i:4578;i:5;s:17:"NexTools WebAgent";}', +'a:2:{i:3;i:4645;i:5;s:17:"DomainWatcher Bot";}', +'a:2:{i:3;i:5517;i:5;s:8:"PEAR-PHP";}', 'a:2:{i:3;i:4578;i:5;s:17:"NetZip Downloader";}', -'a:2:{i:3;i:5523;i:5;s:6:"Artera";}', -'a:2:{i:3;i:5523;i:5;s:17:"Website eXtractor";}', -'a:2:{i:3;i:5582;i:5;s:16:"boitho.com-robot";}', -'a:2:{i:3;i:4657;i:5;s:16:"Links4US-Crawler";}', -'a:2:{i:3;i:4657;i:5;s:12:"masidani_bot";}', -'a:2:{i:3;i:4787;i:5;s:10:"Searchmee!";}', -'a:2:{i:3;i:5523;i:5;s:8:"PEAR-PHP";}', -'a:2:{i:3;i:4657;i:5;s:14:"magpie-crawler";}', -'a:2:{i:3;i:4840;i:5;s:10:"Site Valet";}', +'a:2:{i:3;i:5608;i:5;s:17:"Sogou Head Spider";}', +'a:2:{i:3;i:5584;i:5;s:16:"boitho.com-robot";}', 'a:3:{i:3;i:5644;i:5;s:16:"W3C-mobileOK/DDC";i:26;s:4:"true";}', -'a:2:{i:3;i:5612;i:5;s:17:"Sogou Head Spider";}', -'a:2:{i:3;i:4578;i:5;s:17:"NexTools WebAgent";}', -'a:2:{i:3;i:4657;i:5;s:13:"LetsCrawl.com";}', -'a:2:{i:3;i:5609;i:5;s:11:"Baidu Union";}', -'a:5:{i:3;i:5435;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:5:"Linux";}', -'a:2:{i:3;i:5588;i:5;s:6:"Exabot";}', -'a:2:{i:3;i:5609;i:5;s:17:"Baidu News search";}', -'a:2:{i:3;i:5609;i:5;s:14:"Baidu bookmark";}', -'a:5:{i:3;i:5435;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:9;s:5:"Linux";}', -'a:5:{i:3;i:5435;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:5:"Linux";}', -'a:2:{i:3;i:4584;i:5;s:13:"Feed For Free";}', -'a:2:{i:3;i:4841;i:5;s:18:"Xenu\'s Link Sleuth";}', -'a:2:{i:3;i:4841;i:5;s:12:"LinksManager";}', -'a:4:{i:3;i:4592;i:4;s:17:"Research Projects";i:5;s:17:"Research Projects";i:28;s:4:"true";}', -'a:16:{i:3;i:4592;i:4;s:17:"Mobile Safari 4.0";i:5;s:6:"Safari";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:3:"iOS";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:4:{i:3;i:4592;i:4;s:17:"Download Managers";i:5;s:17:"Download Managers";i:28;s:4:"true";}', -'a:16:{i:3;i:4592;i:4;s:17:"Mobile Safari 3.1";i:5;s:6:"Safari";i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:9;s:3:"iOS";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:4:{i:3;i:4592;i:4;s:17:"E-Mail Harvesters";i:5;s:17:"E-Mail Harvesters";i:28;s:4:"true";}', -'a:13:{i:3;i:4592;i:4;s:17:"Windows Live Mail";i:5;s:17:"Windows Live Mail";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', -'a:16:{i:3;i:4592;i:4;s:17:"Mobile Safari 3.0";i:5;s:6:"Safari";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:3:"iOS";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:5523;i:5;s:17:"Crawl_Application";}', -'a:5:{i:3;i:4592;i:4;s:17:"Feeds Syndicators";i:5;s:17:"Feeds Syndicators";i:27;s:4:"true";i:28;s:4:"true";}', -'a:16:{i:3;i:4592;i:4;s:17:"Mobile Safari 5.0";i:5;s:6:"Safari";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:9;s:3:"iOS";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:5:{i:3;i:5521;i:5;s:13:"Exabot-Images";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:17:{i:3;i:4592;i:4;s:17:"Mobile Safari 7.0";i:5;s:6:"Safari";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:3:"iOS";i:10;s:3:"6.0";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:5523;i:5;s:17:"Inet - Eureka App";}', -'a:4:{i:3;i:4592;i:4;s:18:"Social Bookmarkers";i:5;s:18:"Social Bookmarkers";i:28;s:4:"true";}', -'a:17:{i:3;i:4592;i:4;s:17:"Mobile Safari 6.1";i:5;s:6:"Safari";i:6;s:3:"6.1";i:7;s:1:"6";i:8;s:1:"1";i:9;s:3:"iOS";i:10;s:3:"6.0";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:17:{i:3;i:4592;i:4;s:17:"Mobile Safari 6.0";i:5;s:6:"Safari";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:9;s:3:"iOS";i:10;s:3:"6.0";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:4645;i:5;s:13:"LetsCrawl.com";}', +'a:2:{i:3;i:5517;i:5;s:17:"Website eXtractor";}', +'a:2:{i:3;i:5608;i:5;s:16:"Sogou Pic Spider";}', +'a:2:{i:3;i:4645;i:5;s:10:"FollowSite";}', +'a:2:{i:3;i:4854;i:5;s:10:"Link Valet";}', +'a:2:{i:3;i:4645;i:5;s:12:"masidani_bot";}', +'a:2:{i:3;i:4579;i:5;s:16:"Forschungsportal";}', +'a:2:{i:3;i:5517;i:5;s:17:"Flaming AttackBot";}', +'a:3:{i:3;i:4586;i:5;s:10:"Safari RSS";i:9;s:6:"MacOSX";}', +'a:2:{i:3;i:5517;i:5;s:7:"Fake IE";}', +'a:2:{i:3;i:4784;i:5;s:10:"Searchmee!";}', +'a:2:{i:3;i:4645;i:5;s:16:"Links4US-Crawler";}', +'a:2:{i:3;i:4645;i:5;s:14:"magpie-crawler";}', +'a:5:{i:3;i:5432;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:5:"Linux";}', +'a:2:{i:3;i:5577;i:5;s:6:"Exabot";}', +'a:2:{i:3;i:4854;i:5;s:18:"Xenu\'s Link Sleuth";}', +'a:5:{i:3;i:5432;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:5:"Linux";}', +'a:5:{i:3;i:5432;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:9;s:5:"Linux";}', +'a:2:{i:3;i:5602;i:5;s:17:"Baidu News search";}', +'a:2:{i:3;i:5602;i:5;s:14:"Baidu bookmark";}', +'a:2:{i:3;i:5602;i:5;s:11:"Baidu Union";}', +'a:2:{i:3;i:4586;i:5;s:13:"Feed For Free";}', +'a:2:{i:3;i:4854;i:5;s:12:"LinksManager";}', +'a:4:{i:3;i:4591;i:4;s:17:"E-Mail Harvesters";i:5;s:17:"E-Mail Harvesters";i:28;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:17:"Crawl_Application";}', +'a:4:{i:3;i:4591;i:4;s:17:"Download Managers";i:5;s:17:"Download Managers";i:28;s:4:"true";}', +'a:4:{i:3;i:4591;i:4;s:17:"Research Projects";i:5;s:17:"Research Projects";i:28;s:4:"true";}', +'a:4:{i:3;i:4591;i:4;s:17:"Blue Coat Systems";i:5;s:17:"Blue Coat Systems";i:28;s:4:"true";}', +'a:17:{i:3;i:4591;i:4;s:17:"Mobile Safari 7.0";i:5;s:6:"Safari";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:3:"iOS";i:10;s:3:"6.0";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:16:{i:3;i:4591;i:4;s:17:"Mobile Safari 3.0";i:5;s:6:"Safari";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:3:"iOS";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:17:{i:3;i:4591;i:4;s:17:"Mobile Safari 6.1";i:5;s:6:"Safari";i:6;s:3:"6.1";i:7;s:1:"6";i:8;s:1:"1";i:9;s:3:"iOS";i:10;s:3:"6.0";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:17:{i:3;i:4591;i:4;s:17:"Mobile Safari 6.0";i:5;s:6:"Safari";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:9;s:3:"iOS";i:10;s:3:"6.0";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:13:{i:3;i:4591;i:4;s:17:"Windows Live Mail";i:5;s:17:"Windows Live Mail";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', +'a:5:{i:3;i:4591;i:4;s:17:"Feeds Syndicators";i:5;s:17:"Feeds Syndicators";i:27;s:4:"true";i:28;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:17:"Inet - Eureka App";}', +'a:16:{i:3;i:4591;i:4;s:17:"Mobile Safari 3.1";i:5;s:6:"Safari";i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:9;s:3:"iOS";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:16:{i:3;i:4591;i:4;s:17:"Mobile Safari 4.0";i:5;s:6:"Safari";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:3:"iOS";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:5:{i:3;i:5511;i:5;s:13:"Exabot-Images";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', 'a:31:{i:4;s:17:"DefaultProperties";i:5;s:17:"DefaultProperties";i:6;s:3:"0.0";i:7;s:1:"0";i:8;s:1:"0";i:9;s:7:"unknown";i:10;s:7:"unknown";i:11;s:7:"unknown";i:12;s:5:"false";i:13;s:5:"false";i:14;s:5:"false";i:15;s:5:"false";i:16;s:5:"false";i:17;s:5:"false";i:18;s:5:"false";i:19;s:5:"false";i:20;s:5:"false";i:21;s:5:"false";i:22;s:5:"false";i:23;s:5:"false";i:24;s:5:"false";i:25;s:5:"false";i:26;s:5:"false";i:27;s:5:"false";i:28;s:5:"false";i:29;s:1:"0";i:30;s:1:"0";i:31;s:7:"unknown";i:32;s:7:"unknown";i:33;s:7:"unknown";i:34;s:7:"unknown";}', -'a:16:{i:3;i:4592;i:4;s:17:"Mobile Safari 5.1";i:5;s:6:"Safari";i:6;s:3:"5.1";i:7;s:1:"5";i:8;s:1:"1";i:9;s:3:"iOS";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:4:{i:3;i:4592;i:4;s:17:"Blue Coat Systems";i:5;s:17:"Blue Coat Systems";i:28;s:4:"true";}', -'a:2:{i:3;i:5523;i:5;s:16:"Offline Explorer";}', -'a:2:{i:3;i:4578;i:5;s:16:"Xaldon WebSpider";}', -'a:2:{i:3;i:5556;i:5;s:14:"Hatena Crawler";}', -'a:5:{i:3;i:5575;i:6;s:3:"4.1";i:7;s:1:"4";i:8;s:1:"1";i:9;s:6:"MacPPC";}', -'a:5:{i:3;i:5642;i:5;s:12:"msnbot-media";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', -'a:2:{i:3;i:5609;i:5;s:16:"BaiduImageSpider";}', -'a:10:{i:3;i:4250;i:5;s:15:"EVE-minibrowser";i:18;s:5:"false";i:19;s:5:"false";i:21;s:5:"false";i:22;s:5:"false";i:23;s:5:"false";i:24;s:5:"false";i:25;s:5:"false";i:28;s:5:"false";}', -'a:5:{i:3;i:5575;i:6;s:3:"4.2";i:7;s:1:"4";i:8;s:1:"2";i:9;s:6:"MacPPC";}', -'a:5:{i:3;i:5575;i:6;s:3:"4.3";i:7;s:1:"4";i:8;s:1:"3";i:9;s:6:"MacOSX";}', -'a:2:{i:3;i:4787;i:5;s:17:"World Wide Weasel";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:15:"Talkro Web-Shot";}', -'a:2:{i:3;i:4841;i:5;s:16:"LinkextractorPro";}', -'a:2:{i:3;i:4580;i:5;s:16:"Missigua Locator";}', -'a:2:{i:3;i:4580;i:5;s:16:"Franklin Locator";}', -'a:5:{i:3;i:5575;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:6:"MacPPC";}', -'a:1:{i:3;i:5612;}', -'a:2:{i:3;i:4782;i:5;s:15:"FAST-WebCrawler";}', -'a:2:{i:3;i:5556;i:5;s:16:"HatenaScreenshot";}', -'a:2:{i:3;i:5612;i:5;s:16:"sogou web spider";}', -'a:2:{i:3;i:4657;i:5;s:16:"Tutorial Crawler";}', -'a:2:{i:3;i:4833;i:5;s:3:"VLC";}', -'a:2:{i:3;i:5581;i:5;s:16:"AppEngine-Google";}', +'a:4:{i:3;i:4591;i:4;s:18:"Social Bookmarkers";i:5;s:18:"Social Bookmarkers";i:28;s:4:"true";}', +'a:16:{i:3;i:4591;i:4;s:17:"Mobile Safari 5.0";i:5;s:6:"Safari";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:9;s:3:"iOS";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:16:{i:3;i:4591;i:4;s:17:"Mobile Safari 5.1";i:5;s:6:"Safari";i:6;s:3:"5.1";i:7;s:1:"5";i:8;s:1:"1";i:9;s:3:"iOS";i:11;s:19:"iPod, iPhone & iPad";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:5612;i:5;s:16:"YahooVideoSearch";}', +'a:2:{i:3;i:4854;i:5;s:16:"REL Link Checker";}', 'a:2:{i:3;i:4578;i:5;s:16:"Download Express";}', -'a:2:{i:3;i:4657;i:5;s:5:"Xerka";}', -'a:5:{i:3;i:5642;i:5;s:12:"msnbot-media";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4658;i:5;s:15:"InternetArchive";}', -'a:2:{i:3;i:5523;i:5;s:17:"Website eXtractor";}', -'a:2:{i:3;i:5614;i:5;s:16:"YahooVideoSearch";}', -'a:2:{i:3;i:4787;i:5;s:15:"WebAlta Crawler";}', -'a:2:{i:3;i:4657;i:5;s:13:"DomainsBotBot";}', -'a:2:{i:3;i:4657;i:5;s:13:"BabalooSpider";}', -'a:2:{i:3;i:5344;i:5;s:15:"NewsGatorOnline";}', -'a:5:{i:3;i:5614;i:5;s:19:"Scooter/3.3Y!CrawlX";i:6;s:3:"3.3";i:7;s:1:"3";i:8;s:1:"3";}', -'a:2:{i:3;i:4841;i:5;s:16:"REL Link Checker";}', -'a:2:{i:3;i:4657;i:5;s:15:"Keyword Density";}', -'a:2:{i:3;i:5556;i:5;s:15:"Hatena Bookmark";}', -'a:2:{i:3;i:5609;i:5;s:21:"Baidu Business search";}', +'a:2:{i:3;i:4645;i:5;s:15:"Talkro Web-Shot";}', +'a:2:{i:3;i:4839;i:5;s:3:"VLC";}', +'a:2:{i:3;i:4854;i:5;s:16:"LinkextractorPro";}', +'a:10:{i:3;i:4252;i:5;s:15:"EVE-minibrowser";i:18;s:5:"false";i:19;s:5:"false";i:21;s:5:"false";i:22;s:5:"false";i:23;s:5:"false";i:24;s:5:"false";i:25;s:5:"false";i:28;s:5:"false";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:2:{i:3;i:5321;i:5;s:15:"NewsGatorOnline";}', +'a:5:{i:3;i:5612;i:5;s:19:"Scooter/3.3Y!CrawlX";i:6;s:3:"3.3";i:7;s:1:"3";i:8;s:1:"3";}', +'a:2:{i:3;i:4578;i:5;s:16:"Xaldon WebSpider";}', +'a:2:{i:3;i:4576;i:5;s:16:"Missigua Locator";}', +'a:2:{i:3;i:5602;i:5;s:16:"BaiduImageSpider";}', +'a:2:{i:3;i:4784;i:5;s:15:"WebAlta Crawler";}', +'a:2:{i:3;i:5583;i:5;s:14:"Hatena Crawler";}', +'a:2:{i:3;i:4648;i:5;s:15:"InternetArchive";}', +'a:2:{i:3;i:5583;i:5;s:15:"Hatena Bookmark";}', +'a:2:{i:3;i:4576;i:5;s:16:"Franklin Locator";}', +'a:5:{i:3;i:5572;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:9;s:6:"MacPPC";}', +'a:5:{i:3;i:5572;i:6;s:3:"4.1";i:7;s:1:"4";i:8;s:1:"1";i:9;s:6:"MacPPC";}', +'a:5:{i:3;i:5572;i:6;s:3:"4.2";i:7;s:1:"4";i:8;s:1:"2";i:9;s:6:"MacPPC";}', +'a:2:{i:3;i:5557;i:5;s:16:"AppEngine-Google";}', +'a:5:{i:3;i:5572;i:6;s:3:"4.3";i:7;s:1:"4";i:8;s:1:"3";i:9;s:6:"MacOSX";}', +'a:2:{i:3;i:4645;i:5;s:13:"DomainsBotBot";}', +'a:2:{i:3;i:5517;i:5;s:17:"Website eXtractor";}', +'a:2:{i:3;i:4784;i:5;s:17:"World Wide Weasel";}', +'a:2:{i:3;i:5583;i:5;s:16:"HatenaScreenshot";}', +'a:2:{i:3;i:4645;i:5;s:5:"Xerka";}', +'a:2:{i:3;i:4645;i:5;s:13:"BabalooSpider";}', +'a:2:{i:3;i:4645;i:5;s:15:"Keyword Density";}', +'a:5:{i:3;i:5643;i:5;s:12:"msnbot-media";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', +'a:2:{i:3;i:4645;i:5;s:16:"Tutorial Crawler";}', +'a:2:{i:3;i:5517;i:5;s:16:"Offline Explorer";}', +'a:2:{i:3;i:4786;i:5;s:15:"FAST-WebCrawler";}', +'a:1:{i:3;i:5608;}', +'a:5:{i:3;i:5643;i:5;s:12:"msnbot-media";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:5608;i:5;s:16:"sogou web spider";}', +'a:2:{i:3;i:5602;i:5;s:21:"Baidu Business search";}', 'a:2:{i:3;i:4578;i:5;s:14:"StarDownloader";}', -'a:2:{i:3;i:4657;i:5;s:16:"niXXiebot-Foster";}', -'a:4:{i:3;i:5118;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";}', -'a:3:{i:3;i:4836;i:9;s:5:"SunOS";i:15;s:5:"false";}', -'a:3:{i:3;i:4836;i:9;s:5:"Linux";i:15;s:5:"false";}', -'a:4:{i:3;i:4592;i:4;s:16:"Offline Browsers";i:5;s:16:"Offline Browsers";i:28;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:16:"Thunderbird 10.0";i:5;s:11:"Thunderbird";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"10.0";}', -'a:2:{i:3;i:4594;i:5;s:16:"BlueCoat ProxySG";}', -'a:15:{i:3;i:4592;i:4;s:16:"Thunderbird 14.0";i:5;s:11:"Thunderbird";i:6;s:4:"14.0";i:7;s:2:"14";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"14.0";}', -'a:2:{i:3;i:5523;i:5;s:16:"Zend_Http_Client";}', -'a:15:{i:3;i:4592;i:4;s:16:"Thunderbird 11.0";i:5;s:11:"Thunderbird";i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"11.0";}', -'a:2:{i:3;i:4833;i:5;s:7:"MPlayer";}', -'a:2:{i:3;i:4646;i:5;s:16:"Browscap updater";}', -'a:4:{i:3;i:4592;i:4;s:16:"Version Checkers";i:5;s:16:"Version Checkers";i:28;s:4:"true";}', -'a:3:{i:3;i:5102;i:5;s:8:"Sony PS2";i:9;s:5:"Linux";}', -'a:2:{i:3;i:5523;i:5;s:16:"UtilMind HTTPGet";}', -'a:15:{i:3;i:4592;i:4;s:16:"Thunderbird 12.0";i:5;s:11:"Thunderbird";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"12.0";}', -'a:2:{i:3;i:4592;i:5;s:16:"VLC Media Player";}', -'a:15:{i:3;i:4592;i:4;s:16:"Thunderbird 13.0";i:5;s:11:"Thunderbird";i:6;s:4:"13.0";i:7;s:2:"13";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"13.0";}', +'a:4:{i:3;i:5091;i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";}', +'a:2:{i:3;i:4645;i:5;s:16:"niXXiebot-Foster";}', +'a:3:{i:3;i:4831;i:9;s:5:"SunOS";i:15;s:5:"false";}', +'a:3:{i:3;i:4831;i:9;s:5:"Linux";i:15;s:5:"false";}', 'a:2:{i:3;i:4578;i:5;s:16:"STEROID Download";}', -'a:2:{i:3;i:4841;i:5;s:16:"Bookmark-Manager";}', -'a:3:{i:3;i:5357;i:5;s:16:"MSN Feed Manager";i:27;s:4:"true";}', -'a:2:{i:3;i:4576;i:5;s:5:"Taiga";}', -'a:6:{i:3;i:4592;i:4;s:16:"Chromium Generic";i:5;s:8:"Chromium";i:9;s:5:"Linux";i:29;s:1:"1";i:33;s:6:"WebKit";}', -'a:4:{i:3;i:4592;i:4;s:16:"General Crawlers";i:5;s:16:"General Crawlers";i:28;s:4:"true";}', -'a:7:{i:3;i:4592;i:4;s:16:"Internet Archive";i:5;s:16:"Internet Archive";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:15:"TencentTraveler";}', +'a:15:{i:3;i:4591;i:4;s:16:"Thunderbird 11.0";i:5;s:11:"Thunderbird";i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"11.0";}', +'a:2:{i:3;i:5517;i:5;s:16:"Zend_Http_Client";}', +'a:2:{i:3;i:4579;i:5;s:5:"Taiga";}', +'a:2:{i:3;i:4839;i:5;s:7:"MPlayer";}', +'a:2:{i:3;i:4591;i:5;s:16:"VLC Media Player";}', +'a:2:{i:3;i:5517;i:5;s:16:"UtilMind HTTPGet";}', +'a:4:{i:3;i:4591;i:4;s:16:"General Crawlers";i:5;s:16:"General Crawlers";i:28;s:4:"true";}', +'a:4:{i:3;i:4591;i:4;s:16:"Offline Browsers";i:5;s:16:"Offline Browsers";i:28;s:4:"true";}', +'a:2:{i:3;i:4854;i:5;s:16:"Bookmark-Manager";}', +'a:7:{i:3;i:4591;i:4;s:16:"Internet Archive";i:5;s:16:"Internet Archive";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:2:{i:3;i:4657;i:5;s:16:"Browscap updater";}', +'a:3:{i:3;i:5324;i:5;s:16:"MSN Feed Manager";i:27;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:16:"Thunderbird 14.0";i:5;s:11:"Thunderbird";i:6;s:4:"14.0";i:7;s:2:"14";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"14.0";}', +'a:6:{i:3;i:4591;i:4;s:16:"Chromium Generic";i:5;s:8:"Chromium";i:9;s:5:"Linux";i:29;s:1:"1";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:16:"Thunderbird 12.0";i:5;s:11:"Thunderbird";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"12.0";}', +'a:15:{i:3;i:4591;i:4;s:16:"Thunderbird 13.0";i:5;s:11:"Thunderbird";i:6;s:4:"13.0";i:7;s:2:"13";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"13.0";}', +'a:2:{i:3;i:4580;i:5;s:16:"BlueCoat ProxySG";}', +'a:3:{i:3;i:5078;i:5;s:8:"Sony PS2";i:9;s:5:"Linux";}', +'a:4:{i:3;i:4591;i:4;s:16:"Version Checkers";i:5;s:16:"Version Checkers";i:28;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:16:"Thunderbird 10.0";i:5;s:11:"Thunderbird";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"10.0";}', +'a:2:{i:3;i:5557;i:5;s:12:"Google-Video";}', +'a:2:{i:3;i:4580;i:5;s:9:"Cerberian";}', +'a:2:{i:3;i:5084;i:5;s:14:"Net::Trackback";}', +'a:2:{i:3;i:5643;i:5;s:8:"librabot";}', +'a:2:{i:3;i:4784;i:5;s:8:"nuSearch";}', +'a:2:{i:3;i:4657;i:5;s:15:"Desktop Sidebar";}', +'a:2:{i:3;i:4784;i:5;s:5:"ZE.bz";}', +'a:2:{i:3;i:4645;i:5;s:15:"Toata dragostea";}', +'a:2:{i:3;i:4784;i:5;s:14:"URL Spider Pro";}', +'a:2:{i:3;i:5517;i:5;s:14:"Web Downloader";}', +'a:5:{i:3;i:5643;i:5;s:11:"MSNBot-News";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:5517;i:5;s:14:"fetch libfetch";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:15:"WebFilter Robot";}', +'a:2:{i:3;i:5557;i:5;s:15:"Google-Sitemaps";}', +'a:2:{i:3;i:4645;i:5;s:15:"TencentTraveler";}', +'a:2:{i:3;i:4854;i:5;s:14:"RPT-HTTPClient";}', +'a:2:{i:3;i:5583;i:5;s:14:"Hatena Antenna";}', +'a:2:{i:3;i:5229;i:5;s:11:"WordPress-B";}', +'a:2:{i:3;i:5512;i:5;s:14:"ConveraCrawler";}', +'a:2:{i:3;i:5324;i:5;s:4:"BITS";}', +'a:2:{i:3;i:4579;i:5;s:15:"USyd-NLP-Spider";}', +'a:3:{i:3;i:4645;i:5;s:14:"PluckItCrawler";i:26;s:4:"true";}', +'a:2:{i:3;i:4854;i:5;s:14:"ActiveBookmark";}', +'a:2:{i:3;i:5557;i:5;s:15:"Googlebot-Image";}', +'a:2:{i:3;i:5612;i:5;s:15:"Yahoo-MMCrawler";}', +'a:2:{i:3;i:4646;i:5;s:15:"Go Ahead Got-It";}', +'a:2:{i:3;i:4578;i:5;s:15:"DownloadSession";}', +'a:2:{i:3;i:4784;i:5;s:14:"SquigglebotBot";}', 'a:2:{i:3;i:4578;i:5;s:15:"Download Wonder";}', -'a:2:{i:3;i:5614;i:5;s:15:"Yahoo-MMCrawler";}', -'a:2:{i:3;i:5523;i:5;s:14:"Web Downloader";}', -'a:2:{i:3;i:4657;i:5;s:15:"Toata dragostea";}', -'a:2:{i:3;i:4841;i:5;s:14:"ActiveBookmark";}', -'a:2:{i:3;i:5581;i:5;s:15:"Google-Sitemaps";}', -'a:2:{i:3;i:5063;i:5;s:14:"Net::Trackback";}', 'a:2:{i:3;i:4578;i:5;s:15:"Download Master";}', -'a:2:{i:3;i:4576;i:5;s:15:"USyd-NLP-Spider";}', -'a:2:{i:3;i:5642;i:5;s:8:"librabot";}', -'a:2:{i:3;i:5357;i:5;s:4:"BITS";}', -'a:2:{i:3;i:5220;i:5;s:11:"WordPress-B";}', -'a:2:{i:3;i:5556;i:5;s:14:"Hatena Antenna";}', -'a:2:{i:3;i:5506;i:5;s:14:"ConveraCrawler";}', -'a:5:{i:3;i:5642;i:5;s:11:"MSNBot-News";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4787;i:5;s:14:"SquigglebotBot";}', -'a:2:{i:3;i:4787;i:5;s:8:"nuSearch";}', -'a:2:{i:3;i:4787;i:5;s:14:"URL Spider Pro";}', -'a:2:{i:3;i:4594;i:5;s:9:"Cerberian";}', -'a:2:{i:3;i:5523;i:5;s:14:"fetch libfetch";}', -'a:2:{i:3;i:5581;i:5;s:15:"Googlebot-Image";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:2:{i:3;i:4841;i:5;s:14:"RPT-HTTPClient";}', -'a:2:{i:3;i:4638;i:5;s:15:"Go Ahead Got-It";}', -'a:2:{i:3;i:4657;i:5;s:15:"WebFilter Robot";}', -'a:2:{i:3;i:4578;i:5;s:15:"DownloadSession";}', -'a:2:{i:3;i:5581;i:5;s:12:"Google-Video";}', -'a:2:{i:3;i:4646;i:5;s:15:"Desktop Sidebar";}', -'a:3:{i:3;i:4657;i:5;s:14:"PluckItCrawler";i:26;s:4:"true";}', -'a:2:{i:3;i:4787;i:5;s:5:"ZE.bz";}', -'a:2:{i:3;i:5523;i:5;s:7:"WinHttp";}', -'a:1:{i:3;i:4043;}', -'a:1:{i:3;i:5438;}', +'a:2:{i:3;i:4788;i:5;s:13:"PhotoStickies";}', +'a:1:{i:3;i:5452;}', 'a:2:{i:3;i:5644;i:5;s:13:"W3C-checklink";}', -'a:2:{i:3;i:4657;i:5;s:14:"altervista.org";}', -'a:2:{i:3;i:4584;i:5;s:10:"FeedDigest";}', -'a:2:{i:3;i:4780;i:5;s:13:"PhotoStickies";}', -'a:3:{i:3;i:4836;i:9;s:4:"Unix";i:15;s:5:"false";}', -'a:1:{i:3;i:4043;}', -'a:3:{i:3;i:4592;i:4;s:15:"Online Scanners";i:5;s:15:"Online Scanners";}', -'a:15:{i:3;i:4592;i:4;s:15:"Thunderbird 6.0";i:5;s:11:"Thunderbird";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"6.0";}', -'a:2:{i:3;i:5523;i:5;s:15:"Website Quester";}', -'a:6:{i:3;i:4592;i:4;s:15:"Lotus Notes 6.0";i:5;s:11:"Lotus Notes";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";}', -'a:2:{i:3;i:4657;i:5;s:15:"Webclipping.com";}', -'a:15:{i:3;i:4592;i:4;s:15:"Thunderbird 1.0";i:5;s:11:"Thunderbird";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";i:34;s:3:"1.7";}', -'a:2:{i:3;i:5614;i:5;s:15:"YRL_ODP_CRAWLER";}', -'a:6:{i:3;i:4592;i:4;s:15:"Best of the Web";i:5;s:15:"Best of the Web";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:15:"Thunderbird 2.0";i:5;s:11:"Thunderbird";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.8";}', -'a:2:{i:3;i:5642;i:5;s:15:"msnbot-products";}', -'a:15:{i:3;i:4592;i:4;s:15:"Thunderbird 8.0";i:5;s:11:"Thunderbird";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"8.0";}', -'a:15:{i:3;i:4592;i:4;s:15:"Thunderbird 9.0";i:5;s:11:"Thunderbird";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"9.0";}', -'a:2:{i:3;i:4657;i:5;s:5:"Tagyu";}', -'a:2:{i:3;i:4657;i:5;s:15:"Visicom Toolbar";}', -'a:2:{i:3;i:5523;i:5;s:15:"MFC_Tear_Sample";}', -'a:14:{i:3;i:4592;i:4;s:15:"Thunderbird 5.0";i:5;s:11:"Thunderbird";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:15:"Thunderbird 7.0";i:5;s:11:"Thunderbird";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"7.0";}', -'a:2:{i:3;i:5642;i:5;s:15:"MSR-ISRCCrawler";}', -'a:2:{i:3;i:5612;i:5;s:19:"Sogou/Image Crawler";}', -'a:6:{i:3;i:4592;i:4;s:15:"Lotus Notes 5.0";i:5;s:11:"Lotus Notes";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";}', -'a:2:{i:3;i:4780;i:5;s:28:"FlatArts Favorites Icon Tool";}', -'a:15:{i:3;i:4592;i:4;s:15:"Thunderbird 3.1";i:5;s:11:"Thunderbird";i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', -'a:4:{i:3;i:4592;i:4;s:19:"Validation Checkers";i:5;s:15:"HTML Validators";i:28;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:15:"Thunderbird 3.0";i:5;s:11:"Thunderbird";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', -'a:2:{i:3;i:4657;i:5;s:15:"Lsearch/sondeur";}', -'a:15:{i:3;i:4592;i:4;s:15:"Thunderbird 1.5";i:5;s:11:"Thunderbird";i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.8";}', -'a:2:{i:3;i:4787;i:5;s:28:"Innerprise Enterprise Search";}', -'a:2:{i:3;i:5581;i:5;s:14:"Googlebot-News";}', -'a:2:{i:3;i:4787;i:5;s:13:"HyperEstraier";}', -'a:2:{i:3;i:5614;i:5;s:14:"Yahoo-MMAudVid";}', -'a:2:{i:3;i:5523;i:5;s:13:"WWW-Mechanize";}', -'a:2:{i:3;i:4250;i:5;s:14:"Enigma Browser";}', -'a:2:{i:3;i:4646;i:5;s:14:"UpdateBrowscap";}', +'a:2:{i:3;i:4645;i:5;s:14:"altervista.org";}', +'a:2:{i:3;i:4586;i:5;s:10:"FeedDigest";}', +'a:2:{i:3;i:5517;i:5;s:7:"WinHttp";}', +'a:1:{i:3;i:4045;}', +'a:3:{i:3;i:4831;i:9;s:4:"Unix";i:15;s:5:"false";}', +'a:1:{i:3;i:4045;}', +'a:3:{i:3;i:4591;i:4;s:15:"Online Scanners";i:5;s:15:"Online Scanners";}', +'a:4:{i:3;i:4591;i:4;s:19:"Validation Checkers";i:5;s:15:"HTML Validators";i:28;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:15:"Lsearch/sondeur";}', +'a:2:{i:3;i:5517;i:5;s:15:"MFC_Tear_Sample";}', +'a:2:{i:3;i:5517;i:5;s:15:"Website Quester";}', +'a:2:{i:3;i:4788;i:5;s:28:"FlatArts Favorites Icon Tool";}', +'a:2:{i:3;i:5608;i:5;s:19:"Sogou/Image Crawler";}', +'a:6:{i:3;i:4591;i:4;s:15:"Lotus Notes 5.0";i:5;s:11:"Lotus Notes";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";}', +'a:2:{i:3;i:5612;i:5;s:15:"YRL_ODP_CRAWLER";}', +'a:2:{i:3;i:4645;i:5;s:15:"Webclipping.com";}', +'a:2:{i:3;i:4645;i:5;s:5:"Tagyu";}', +'a:15:{i:3;i:4591;i:4;s:15:"Thunderbird 3.1";i:5;s:11:"Thunderbird";i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', +'a:6:{i:3;i:4591;i:4;s:15:"Lotus Notes 6.0";i:5;s:11:"Lotus Notes";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";}', +'a:14:{i:3;i:4591;i:4;s:15:"Thunderbird 5.0";i:5;s:11:"Thunderbird";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:15:"Thunderbird 2.0";i:5;s:11:"Thunderbird";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.8";}', +'a:15:{i:3;i:4591;i:4;s:15:"Thunderbird 6.0";i:5;s:11:"Thunderbird";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"6.0";}', +'a:15:{i:3;i:4591;i:4;s:15:"Thunderbird 3.0";i:5;s:11:"Thunderbird";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', +'a:2:{i:3;i:5643;i:5;s:15:"msnbot-products";}', +'a:15:{i:3;i:4591;i:4;s:15:"Thunderbird 7.0";i:5;s:11:"Thunderbird";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"7.0";}', +'a:2:{i:3;i:4645;i:5;s:15:"Visicom Toolbar";}', +'a:15:{i:3;i:4591;i:4;s:15:"Thunderbird 8.0";i:5;s:11:"Thunderbird";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"8.0";}', +'a:2:{i:3;i:5643;i:5;s:15:"MSR-ISRCCrawler";}', +'a:6:{i:3;i:4591;i:4;s:15:"Best of the Web";i:5;s:15:"Best of the Web";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:15:"Thunderbird 9.0";i:5;s:11:"Thunderbird";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"9.0";}', +'a:15:{i:3;i:4591;i:4;s:15:"Thunderbird 1.5";i:5;s:11:"Thunderbird";i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.8";}', +'a:15:{i:3;i:4591;i:4;s:15:"Thunderbird 1.0";i:5;s:11:"Thunderbird";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";i:34;s:3:"1.7";}', +'a:2:{i:3;i:4854;i:5;s:14:"Bookmark Buddy";}', +'a:2:{i:3;i:4578;i:5;s:14:"Download Ninja";}', +'a:2:{i:3;i:4252;i:5;s:14:"Enigma Browser";}', +'a:5:{i:3;i:5559;i:6;s:3:"3.8";i:7;s:1:"3";i:8;s:1:"8";i:9;s:7:"OpenVMS";}', +'a:2:{i:3;i:5612;i:5;s:14:"Yahoo-MMAudVid";}', +'a:5:{i:3;i:5559;i:6;s:3:"3.7";i:7;s:1:"3";i:8;s:1:"7";i:9;s:7:"OpenVMS";}', 'a:2:{i:3;i:4578;i:5;s:13:"FreshDownload";}', -'a:2:{i:3;i:4787;i:5;s:20:"OpenISearch (Amazon)";}', -'a:2:{i:3;i:4657;i:5;s:11:"LinkedInBot";}', -'a:2:{i:3;i:4657;i:5;s:11:"Pete-Spider";}', -'a:2:{i:3;i:4787;i:5;s:13:"ObjectsSearch";}', -'a:2:{i:3;i:4578;i:5;s:14:"Kontiki Client";}', -'a:2:{i:3;i:4840;i:5;s:14:"UpTime Checker";}', -'a:2:{i:3;i:5644;i:5;s:13:"W3C_Validator";}', +'a:2:{i:3;i:4579;i:5;s:12:"JUST-CRAWLER";}', +'a:2:{i:3;i:4845;i:5;s:14:"UpTime Checker";}', +'a:2:{i:3;i:5584;i:5;s:13:"boitho.com-dc";}', +'a:2:{i:3;i:4699;i:5;s:28:"Secure Computing Corporation";}', +'a:2:{i:3;i:5557;i:5;s:14:"Googlebot-News";}', +'a:2:{i:3;i:5557;i:5;s:14:"Googlebot/Test";}', +'a:2:{i:3;i:4657;i:5;s:14:"UpdateBrowscap";}', 'a:2:{i:3;i:4578;i:5;s:14:"Internet Ninja";}', -'a:2:{i:3;i:5582;i:5;s:13:"boitho.com-dc";}', -'a:2:{i:3;i:4434;i:5;s:14:"CopyRightCheck";}', -'a:5:{i:3;i:5567;i:6;s:3:"3.7";i:7;s:1:"3";i:8;s:1:"7";i:9;s:7:"OpenVMS";}', -'a:2:{i:3;i:4578;i:5;s:13:"SmartDownload";}', -'a:2:{i:3;i:4576;i:5;s:12:"JUST-CRAWLER";}', +'a:2:{i:3;i:5644;i:5;s:13:"W3C_Validator";}', +'a:2:{i:3;i:4645;i:5;s:11:"LinkedInBot";}', +'a:2:{i:3;i:4578;i:5;s:14:"Kontiki Client";}', +'a:2:{i:3;i:4436;i:5;s:14:"CopyRightCheck";}', 'a:2:{i:3;i:4578;i:5;s:14:"Download Demon";}', -'a:2:{i:3;i:5581;i:5;s:14:"Googlebot/Test";}', -'a:2:{i:3;i:4657;i:5;s:11:"ScollSpider";}', -'a:2:{i:3;i:4578;i:5;s:14:"Download Ninja";}', -'a:2:{i:3;i:4580;i:5;s:16:"E-Mail Collector";}', -'a:2:{i:3;i:5523;i:5;s:14:"libWeb/clsHTTP";}', -'a:2:{i:3;i:4699;i:5;s:28:"Secure Computing Corporation";}', -'a:2:{i:3;i:5523;i:5;s:7:"libcurl";}', -'a:5:{i:3;i:5567;i:6;s:3:"3.8";i:7;s:1:"3";i:8;s:1:"8";i:9;s:7:"OpenVMS";}', -'a:2:{i:3;i:4721;i:5;s:13:"FeedValidator";}', -'a:2:{i:3;i:4540;i:5;s:13:"BitTorrentMac";}', +'a:2:{i:3;i:4784;i:5;s:20:"OpenISearch (Amazon)";}', +'a:2:{i:3;i:4784;i:5;s:13:"ObjectsSearch";}', +'a:2:{i:3;i:4645;i:5;s:11:"ScollSpider";}', +'a:2:{i:3;i:4539;i:5;s:13:"BitTorrentMac";}', 'a:2:{i:3;i:4578;i:5;s:14:"Speed Download";}', -'a:2:{i:3;i:5523;i:5;s:14:"Web Downloader";}', -'a:2:{i:3;i:4584;i:5;s:13:"Technoratibot";}', -'a:2:{i:3;i:4841;i:5;s:14:"Bookmark Buddy";}', -'a:1:{i:3;i:4977;}', -'a:2:{i:3;i:4584;i:5;s:9:"NewsAlloy";}', -'a:5:{i:3;i:5581;i:5;s:9:"Googlebot";i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";}', -'a:2:{i:3;i:4580;i:5;s:17:"CherryPickerElite";}', -'a:2:{i:3;i:4584;i:5;s:9:"MagpieRSS";}', -'a:2:{i:3;i:4584;i:5;s:9:"Protopage";}', -'a:3:{i:3;i:4584;i:5;s:9:"FeedDemon";i:9;s:5:"Win32";}', -'a:1:{i:3;i:4043;}', -'a:1:{i:3;i:4043;}', -'a:13:{i:3;i:4592;i:4;s:14:"Opera Mini 3.0";i:5;s:10:"Opera Mini";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:20:{i:3;i:4592;i:4;s:14:"AOL 9.0/IE 7.0";i:5;s:2:"IE";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:2:{i:3;i:5614;i:5;s:14:"Yahoo! Mindset";}', -'a:20:{i:3;i:4592;i:4;s:14:"AOL 9.0/IE 6.0";i:5;s:2:"IE";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:5:{i:3;i:4592;i:4;s:14:"Chrome Generic";i:5;s:6:"Chrome";i:29;s:1:"1";i:33;s:6:"WebKit";}', -'a:13:{i:3;i:4592;i:4;s:14:"Opera Mini 7.0";i:5;s:10:"Opera Mini";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:14:{i:3;i:4592;i:4;s:14:"Opera Mini 8.0";i:5;s:10:"Opera Mini";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:13;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:20:{i:3;i:4592;i:4;s:14:"AOL 9.0/IE 8.0";i:5;s:2:"IE";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:20:{i:3;i:4592;i:4;s:14:"AOL 9.1/IE 7.0";i:5;s:2:"IE";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:11:{i:3;i:4592;i:4;s:14:"Safari Generic";i:5;s:6:"Safari";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"1";i:33;s:6:"WebKit";}', -'a:4:{i:3;i:4592;i:4;s:14:"Image Crawlers";i:5;s:14:"Image Crawlers";i:28;s:4:"true";}', -'a:2:{i:3;i:5612;i:5;s:20:"Sogou/Shaboyi Spider";}', -'a:6:{i:3;i:4592;i:4;s:14:"Fast/AllTheWeb";i:5;s:14:"Fast/AllTheWeb";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:20:{i:3;i:4592;i:4;s:14:"AOL 9.1/IE 8.0";i:5;s:2:"IE";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:13:{i:3;i:4592;i:4;s:14:"Opera Mini 6.0";i:5;s:10:"Opera Mini";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:14:{i:3;i:4592;i:4;s:14:"Opera Mini 9.0";i:5;s:10:"Opera Mini";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:13;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:13:{i:3;i:4592;i:4;s:14:"Opera Mini 5.0";i:5;s:10:"Opera Mini";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:4:{i:3;i:4592;i:4;s:14:"Search Engines";i:5;s:14:"Search Engines";i:28;s:4:"true";}', -'a:11:{i:3;i:4592;i:4;s:14:"QuickTime 10.0";i:5;s:9:"QuickTime";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', -'a:5:{i:3;i:4592;i:4;s:14:"Microsoft Zune";i:5;s:0:"";i:15;s:4:"true";i:26;s:4:"true";}', -'a:13:{i:3;i:4592;i:4;s:14:"Opera Mini 4.0";i:5;s:10:"Opera Mini";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:13:{i:3;i:4592;i:4;s:14:"Opera Mini 2.0";i:5;s:10:"Opera Mini";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:20:{i:3;i:4592;i:4;s:14:"AOL 9.0/IE 5.5";i:5;s:2:"IE";i:6;s:3:"5.5";i:7;s:1:"5";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:2:{i:3;i:4840;i:5;s:13:"Kenjin Spider";}', -'a:2:{i:3;i:4434;i:5;s:13:"FairAd Client";}', -'a:2:{i:3;i:4540;i:5;s:12:"Transmission";}', -'a:2:{i:3;i:4840;i:5;s:5:"Kevin";}', -'a:2:{i:3;i:4780;i:5;s:13:"naoFavicon4IE";}', -'a:2:{i:3;i:4780;i:5;s:23:"Cydral Web Image Search";}', -'a:2:{i:3;i:5523;i:5;s:13:"VCI WebViewer";}', -'a:2:{i:3;i:4578;i:5;s:12:"RealDownload";}', +'a:2:{i:3;i:4645;i:5;s:11:"Pete-Spider";}', +'a:2:{i:3;i:5517;i:5;s:14:"Web Downloader";}', +'a:2:{i:3;i:5517;i:5;s:7:"libcurl";}', +'a:2:{i:3;i:5517;i:5;s:14:"libWeb/clsHTTP";}', +'a:2:{i:3;i:4784;i:5;s:28:"Innerprise Enterprise Search";}', +'a:2:{i:3;i:4576;i:5;s:16:"E-Mail Collector";}', +'a:2:{i:3;i:4586;i:5;s:13:"Technoratibot";}', +'a:2:{i:3;i:4578;i:5;s:13:"SmartDownload";}', +'a:2:{i:3;i:4700;i:5;s:13:"FeedValidator";}', +'a:2:{i:3;i:4784;i:5;s:13:"HyperEstraier";}', +'a:2:{i:3;i:5517;i:5;s:13:"WWW-Mechanize";}', +'a:5:{i:3;i:5557;i:5;s:9:"Googlebot";i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";}', +'a:2:{i:3;i:4586;i:5;s:9:"Protopage";}', +'a:2:{i:3;i:4586;i:5;s:9:"NewsAlloy";}', +'a:2:{i:3;i:4586;i:5;s:9:"MagpieRSS";}', +'a:2:{i:3;i:4576;i:5;s:17:"CherryPickerElite";}', +'a:3:{i:3;i:4586;i:5;s:9:"FeedDemon";i:9;s:5:"Win32";}', +'a:1:{i:3;i:4939;}', +'a:1:{i:3;i:4045;}', +'a:1:{i:3;i:4045;}', +'a:14:{i:3;i:4591;i:4;s:14:"Opera Mini 9.0";i:5;s:10:"Opera Mini";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:13;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:2:{i:3;i:5608;i:5;s:20:"Sogou/Shaboyi Spider";}', +'a:20:{i:3;i:4591;i:4;s:14:"AOL 9.1/IE 7.0";i:5;s:2:"IE";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:20:{i:3;i:4591;i:4;s:14:"AOL 9.0/IE 6.0";i:5;s:2:"IE";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:11:{i:3;i:4591;i:4;s:14:"Safari Generic";i:5;s:6:"Safari";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"1";i:33;s:6:"WebKit";}', +'a:13:{i:3;i:4591;i:4;s:14:"Opera Mini 2.0";i:5;s:10:"Opera Mini";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:13:{i:3;i:4591;i:4;s:14:"Opera Mini 3.0";i:5;s:10:"Opera Mini";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:20:{i:3;i:4591;i:4;s:14:"AOL 9.0/IE 7.0";i:5;s:2:"IE";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:13:{i:3;i:4591;i:4;s:14:"Opera Mini 4.0";i:5;s:10:"Opera Mini";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:20:{i:3;i:4591;i:4;s:14:"AOL 9.1/IE 8.0";i:5;s:2:"IE";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:13:{i:3;i:4591;i:4;s:14:"Opera Mini 5.0";i:5;s:10:"Opera Mini";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:13:{i:3;i:4591;i:4;s:14:"Opera Mini 6.0";i:5;s:10:"Opera Mini";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:13:{i:3;i:4591;i:4;s:14:"Opera Mini 7.0";i:5;s:10:"Opera Mini";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:14:{i:3;i:4591;i:4;s:14:"Opera Mini 8.0";i:5;s:10:"Opera Mini";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:13;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:4:{i:3;i:4591;i:4;s:14:"Search Engines";i:5;s:14:"Search Engines";i:28;s:4:"true";}', +'a:20:{i:3;i:4591;i:4;s:14:"AOL 9.0/IE 8.0";i:5;s:2:"IE";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:6:{i:3;i:4591;i:4;s:14:"Fast/AllTheWeb";i:5;s:14:"Fast/AllTheWeb";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:2:{i:3;i:5612;i:5;s:14:"Yahoo! Mindset";}', +'a:4:{i:3;i:4591;i:4;s:14:"Image Crawlers";i:5;s:14:"Image Crawlers";i:28;s:4:"true";}', +'a:5:{i:3;i:4591;i:4;s:14:"Chrome Generic";i:5;s:6:"Chrome";i:29;s:1:"1";i:33;s:6:"WebKit";}', +'a:5:{i:3;i:4591;i:4;s:14:"Microsoft Zune";i:5;s:0:"";i:15;s:4:"true";i:26;s:4:"true";}', +'a:20:{i:3;i:4591;i:4;s:14:"AOL 9.0/IE 5.5";i:5;s:2:"IE";i:6;s:3:"5.5";i:7;s:1:"5";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:30;s:1:"9";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:11:{i:3;i:4591;i:4;s:14:"QuickTime 10.0";i:5;s:9:"QuickTime";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:13:"ActiveRefresh";}', +'a:2:{i:3;i:5517;i:5;s:13:"WebDownloader";}', +'a:2:{i:3;i:5060;i:5;s:12:"HiddenMarket";}', +'a:2:{i:3;i:4845;i:5;s:5:"Kevin";}', +'a:2:{i:3;i:4784;i:5;s:13:"YadowsCrawler";}', +'a:2:{i:3;i:4436;i:5;s:13:"FairAd Client";}', 'a:19:{i:3;i:5644;i:5;s:12:"W3C-mobileOK";i:12;s:5:"false";i:13;s:5:"false";i:14;s:5:"false";i:15;s:5:"false";i:16;s:5:"false";i:17;s:5:"false";i:18;s:5:"false";i:19;s:5:"false";i:20;s:5:"false";i:21;s:5:"false";i:22;s:5:"false";i:23;s:5:"false";i:24;s:5:"false";i:25;s:5:"false";i:26;s:5:"false";i:27;s:5:"false";i:28;s:4:"true";}', -'a:2:{i:3;i:4584;i:5;s:12:"Apple-PubSub";}', -'a:2:{i:3;i:5523;i:5;s:13:"ActiveRefresh";}', -'a:2:{i:3;i:4580;i:5;s:13:"Netprospector";}', -'a:2:{i:3;i:5523;i:5;s:13:"WebDownloader";}', -'a:2:{i:3;i:4657;i:5;s:10:"WebCrawler";}', -'a:2:{i:3;i:5581;i:5;s:13:"AdsBot-Google";}', -'a:2:{i:3;i:4657;i:5;s:13:"NetID.com Bot";}', -'a:2:{i:3;i:5067;i:5;s:12:"HiddenMarket";}', -'a:2:{i:3;i:4787;i:5;s:12:"ALeadSoftbot";}', -'a:2:{i:3;i:4787;i:5;s:12:"StackRambler";}', -'a:2:{i:3;i:4787;i:5;s:25:"BigClique.com/BigClic.com";}', -'a:2:{i:3;i:4787;i:5;s:13:"YadowsCrawler";}', -'a:2:{i:3;i:4657;i:5;s:10:"hitcrawler";}', -'a:2:{i:3;i:4942;i:5;s:13:"Jayde Crawler";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:12:"favorstarbot";}', -'a:2:{i:3;i:4250;i:5;s:13:"Avant Browser";}', -'a:5:{i:3;i:4829;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:18;s:5:"false";}', -'a:2:{i:3;i:4787;i:5;s:9:"Cogentbot";}', -'a:2:{i:3;i:4584;i:5;s:8:"Feedshow";}', -'a:2:{i:3;i:4584;i:5;s:12:"NetVisualize";}', -'a:1:{i:3;i:4043;}', -'a:1:{i:3;i:4043;}', -'a:2:{i:3;i:4584;i:5;s:11:"NetNewsWire";}', -'a:1:{i:3;i:4043;}', -'a:3:{i:3;i:5344;i:5;s:11:"NetNewsWire";i:9;s:6:"MacOSX";}', -'a:1:{i:3;i:4043;}', -'a:13:{i:3;i:4592;i:4;s:13:"Konqueror 3.0";i:5;s:9:"Konqueror";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 14.0";i:5;s:8:"Chromium";i:6;s:4:"14.0";i:7;s:2:"14";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:13:{i:3;i:4592;i:4;s:13:"Konqueror 4.0";i:5;s:9:"Konqueror";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', -'a:11:{i:3;i:4592;i:4;s:13:"Arora Generic";i:5;s:5:"Arora";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:4:{i:3;i:4592;i:4;s:13:"Media Players";i:5;s:13:"Media Players";i:26;s:4:"true";}', -'a:5:{i:3;i:4584;i:5;s:9:"GreatNews";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:15:{i:3;i:4592;i:4;s:13:"SeaMonkey 1.0";i:5;s:9:"SeaMonkey";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:9:{i:3;i:4592;i:4;s:13:"Opera Generic";i:5;s:5:"Opera";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:29;s:1:"1";}', -'a:2:{i:3;i:4580;i:5;s:13:"EMAILsearcher";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 22.0";i:5;s:8:"Chromium";i:6;s:4:"22.0";i:7;s:2:"22";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:13:{i:3;i:4592;i:4;s:13:"Konqueror 4.8";i:5;s:9:"Konqueror";i:6;s:3:"4.8";i:7;s:1:"4";i:8;s:1:"8";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', -'a:4:{i:3;i:4592;i:4;s:13:"Site Monitors";i:5;s:13:"Site Monitors";i:28;s:4:"true";}', -'a:4:{i:3;i:4592;i:4;s:13:"Link Checkers";i:5;s:13:"Link Checkers";i:28;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 15.0";i:5;s:8:"Chromium";i:6;s:4:"15.0";i:7;s:2:"15";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:13:{i:3;i:4592;i:4;s:13:"Konqueror 4.7";i:5;s:9:"Konqueror";i:6;s:3:"4.7";i:7;s:1:"4";i:8;s:1:"7";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', -'a:13:{i:3;i:4592;i:4;s:13:"Konqueror 4.6";i:5;s:9:"Konqueror";i:6;s:3:"4.6";i:7;s:1:"4";i:8;s:1:"6";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 13.0";i:5;s:8:"Chromium";i:6;s:4:"13.0";i:7;s:2:"13";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 23.0";i:5;s:8:"Chromium";i:6;s:4:"23.0";i:7;s:2:"23";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 24.0";i:5;s:8:"Chromium";i:6;s:4:"24.0";i:7;s:2:"24";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:13:{i:3;i:4592;i:4;s:13:"Konqueror 4.5";i:5;s:9:"Konqueror";i:6;s:3:"4.5";i:7;s:1:"4";i:8;s:1:"5";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', -'a:15:{i:3;i:4592;i:4;s:13:"SeaMonkey 1.1";i:5;s:9:"SeaMonkey";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 10.0";i:5;s:8:"Chromium";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:5523;i:5;s:13:"BlockNote.Net";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 11.0";i:5;s:8:"Chromium";i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 20.0";i:5;s:8:"Chromium";i:6;s:4:"20.0";i:7;s:2:"20";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 18.0";i:5;s:8:"Chromium";i:6;s:4:"18.0";i:7;s:2:"18";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"Seamonkey 2.4";i:5;s:9:"SeaMonkey";i:6;s:3:"2.4";i:7;s:1:"2";i:8;s:1:"4";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 19.0";i:5;s:8:"Chromium";i:6;s:4:"19.0";i:7;s:2:"19";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"Seamonkey 2.5";i:5;s:9:"SeaMonkey";i:6;s:3:"2.5";i:7;s:1:"2";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:2:{i:3;i:4657;i:5;s:13:"panscient.com";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 21.0";i:5;s:8:"Chromium";i:6;s:4:"21.0";i:7;s:2:"21";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 12.0";i:5;s:8:"Chromium";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"SeaMonkey 2.1";i:5;s:9:"SeaMonkey";i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:11:{i:3;i:4592;i:4;s:13:"QuickTime 5.0";i:5;s:9:"QuickTime";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:13:"SeaMonkey 2.0";i:5;s:9:"SeaMonkey";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:11:{i:3;i:4592;i:4;s:13:"QuickTime 6.0";i:5;s:9:"QuickTime";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', -'a:11:{i:3;i:4592;i:4;s:13:"QuickTime 7.0";i:5;s:9:"QuickTime";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:13:"Seamonkey 2.3";i:5;s:9:"SeaMonkey";i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:13:"Seamonkey 2.2";i:5;s:9:"SeaMonkey";i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:11:{i:3;i:4592;i:4;s:13:"QuickTime 7.6";i:5;s:9:"QuickTime";i:6;s:3:"7.6";i:7;s:1:"7";i:8;s:1:"6";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', -'a:2:{i:3;i:4942;i:5;s:13:"exactseek.com";}', -'a:3:{i:3;i:4592;i:4;s:13:"Proxy Servers";i:5;s:13:"Proxy Servers";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 29.0";i:5;s:8:"Chromium";i:6;s:4:"29.0";i:7;s:2:"29";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 28.0";i:5;s:8:"Chromium";i:6;s:4:"28.0";i:7;s:2:"28";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:14:{i:3;i:4592;i:4;s:13:"Lunascape 6.0";i:5;s:9:"Lunascape";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:9;s:5:"Win32";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 16.0";i:5;s:8:"Chromium";i:6;s:4:"16.0";i:7;s:2:"16";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:4645;i:5;s:12:"favorstarbot";}', +'a:2:{i:3;i:4788;i:5;s:23:"Cydral Web Image Search";}', +'a:2:{i:3;i:4539;i:5;s:12:"Transmission";}', +'a:2:{i:3;i:4645;i:5;s:10:"WebCrawler";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:2:{i:3;i:5557;i:5;s:13:"AdsBot-Google";}', +'a:2:{i:3;i:4788;i:5;s:13:"naoFavicon4IE";}', +'a:2:{i:3;i:4645;i:5;s:13:"NetID.com Bot";}', +'a:2:{i:3;i:4645;i:5;s:10:"hitcrawler";}', +'a:2:{i:3;i:4845;i:5;s:13:"Kenjin Spider";}', +'a:2:{i:3;i:4578;i:5;s:12:"RealDownload";}', +'a:2:{i:3;i:4576;i:5;s:13:"Netprospector";}', +'a:2:{i:3;i:5517;i:5;s:13:"VCI WebViewer";}', +'a:2:{i:3;i:4980;i:5;s:13:"Jayde Crawler";}', +'a:2:{i:3;i:4784;i:5;s:12:"StackRambler";}', +'a:2:{i:3;i:4784;i:5;s:25:"BigClique.com/BigClic.com";}', +'a:2:{i:3;i:4784;i:5;s:12:"ALeadSoftbot";}', +'a:2:{i:3;i:4586;i:5;s:12:"Apple-PubSub";}', +'a:1:{i:3;i:4045;}', +'a:3:{i:3;i:5321;i:5;s:11:"NetNewsWire";i:9;s:6:"MacOSX";}', +'a:2:{i:3;i:4784;i:5;s:9:"Cogentbot";}', +'a:1:{i:3;i:4045;}', +'a:2:{i:3;i:4586;i:5;s:11:"NetNewsWire";}', +'a:1:{i:3;i:4045;}', +'a:2:{i:3;i:4586;i:5;s:12:"NetVisualize";}', +'a:5:{i:3;i:4848;i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:18;s:5:"false";}', +'a:2:{i:3;i:4586;i:5;s:8:"Feedshow";}', +'a:2:{i:3;i:4252;i:5;s:13:"Avant Browser";}', +'a:1:{i:3;i:4045;}', +'a:13:{i:3;i:4591;i:4;s:13:"Konqueror 4.5";i:5;s:9:"Konqueror";i:6;s:3:"4.5";i:7;s:1:"4";i:8;s:1:"5";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', +'a:5:{i:3;i:4586;i:5;s:9:"GreatNews";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:9:{i:3;i:4591;i:4;s:13:"Opera Generic";i:5;s:5:"Opera";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:29;s:1:"1";}', +'a:14:{i:3;i:4591;i:4;s:13:"Lunascape 5.1";i:5;s:9:"Lunascape";i:6;s:3:"5.1";i:7;s:1:"5";i:8;s:1:"1";i:9;s:5:"Win32";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";}', +'a:11:{i:3;i:4591;i:4;s:13:"QuickTime 7.6";i:5;s:9:"QuickTime";i:6;s:3:"7.6";i:7;s:1:"7";i:8;s:1:"6";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', +'a:2:{i:3;i:4576;i:5;s:13:"EMAILsearcher";}', +'a:11:{i:3;i:4591;i:4;s:13:"QuickTime 7.0";i:5;s:9:"QuickTime";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', +'a:11:{i:3;i:4591;i:4;s:13:"Arora Generic";i:5;s:5:"Arora";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:14:{i:3;i:4591;i:4;s:13:"Lunascape 5.0";i:5;s:9:"Lunascape";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:9;s:5:"Win32";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";}', +'a:2:{i:3;i:4784;i:5;s:13:"Twingly Recon";}', +'a:4:{i:3;i:4591;i:4;s:13:"Media Players";i:5;s:13:"Media Players";i:26;s:4:"true";}', +'a:2:{i:3;i:4784;i:5;s:5:"Zatka";}', +'a:13:{i:3;i:4591;i:4;s:13:"Konqueror 4.0";i:5;s:9:"Konqueror";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', +'a:11:{i:3;i:4591;i:4;s:13:"QuickTime 5.0";i:5;s:9:"QuickTime";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', +'a:13:{i:3;i:4591;i:4;s:13:"Konqueror 4.7";i:5;s:9:"Konqueror";i:6;s:3:"4.7";i:7;s:1:"4";i:8;s:1:"7";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', +'a:13:{i:3;i:4591;i:4;s:13:"Konqueror 4.6";i:5;s:9:"Konqueror";i:6;s:3:"4.6";i:7;s:1:"4";i:8;s:1:"6";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', +'a:4:{i:3;i:4591;i:4;s:13:"Site Monitors";i:5;s:13:"Site Monitors";i:28;s:4:"true";}', +'a:11:{i:3;i:4591;i:4;s:13:"QuickTime 6.0";i:5;s:9:"QuickTime";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', +'a:13:{i:3;i:4591;i:4;s:13:"Konqueror 4.8";i:5;s:9:"Konqueror";i:6;s:3:"4.8";i:7;s:1:"4";i:8;s:1:"8";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', +'a:13:{i:3;i:4591;i:4;s:13:"Konqueror 3.0";i:5;s:9:"Konqueror";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"KHTML";}', +'a:2:{i:3;i:4980;i:5;s:13:"exactseek.com";}', +'a:2:{i:3;i:4645;i:5;s:13:"panscient.com";}', +'a:2:{i:3;i:5517;i:5;s:13:"BlockNote.Net";}', +'a:14:{i:3;i:4591;i:4;s:13:"Lunascape 6.0";i:5;s:9:"Lunascape";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:9;s:5:"Win32";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 19.0";i:5;s:8:"Chromium";i:6;s:4:"19.0";i:7;s:2:"19";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:4:{i:3;i:4591;i:4;s:13:"Link Checkers";i:5;s:13:"Link Checkers";i:28;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 22.0";i:5;s:8:"Chromium";i:6;s:4:"22.0";i:7;s:2:"22";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 30.0";i:5;s:8:"Chromium";i:6;s:4:"30.0";i:7;s:2:"30";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 29.0";i:5;s:8:"Chromium";i:6;s:4:"29.0";i:7;s:2:"29";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 28.0";i:5;s:8:"Chromium";i:6;s:4:"28.0";i:7;s:2:"28";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 27.0";i:5;s:8:"Chromium";i:6;s:4:"27.0";i:7;s:2:"27";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 26.0";i:5;s:8:"Chromium";i:6;s:4:"26.0";i:7;s:2:"26";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 25.0";i:5;s:8:"Chromium";i:6;s:4:"25.0";i:7;s:2:"25";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 24.0";i:5;s:8:"Chromium";i:6;s:4:"24.0";i:7;s:2:"24";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 23.0";i:5;s:8:"Chromium";i:6;s:4:"23.0";i:7;s:2:"23";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 21.0";i:5;s:8:"Chromium";i:6;s:4:"21.0";i:7;s:2:"21";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 18.0";i:5;s:8:"Chromium";i:6;s:4:"18.0";i:7;s:2:"18";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 20.0";i:5;s:8:"Chromium";i:6;s:4:"20.0";i:7;s:2:"20";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 10.0";i:5;s:8:"Chromium";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 11.0";i:5;s:8:"Chromium";i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 12.0";i:5;s:8:"Chromium";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 13.0";i:5;s:8:"Chromium";i:6;s:4:"13.0";i:7;s:2:"13";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 14.0";i:5;s:8:"Chromium";i:6;s:4:"14.0";i:7;s:2:"14";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 15.0";i:5;s:8:"Chromium";i:6;s:4:"15.0";i:7;s:2:"15";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 16.0";i:5;s:8:"Chromium";i:6;s:4:"16.0";i:7;s:2:"16";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 17.0";i:5;s:8:"Chromium";i:6;s:4:"17.0";i:7;s:2:"17";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 31.0";i:5;s:8:"Chromium";i:6;s:4:"31.0";i:7;s:2:"31";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"Chromium 32.0";i:5;s:8:"Chromium";i:6;s:4:"32.0";i:7;s:2:"32";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:13:"SeaMonkey 2.0";i:5;s:9:"SeaMonkey";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:13:"Seamonkey 2.4";i:5;s:9:"SeaMonkey";i:6;s:3:"2.4";i:7;s:1:"2";i:8;s:1:"4";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:3:{i:3;i:4591;i:4;s:13:"Proxy Servers";i:5;s:13:"Proxy Servers";}', +'a:15:{i:3;i:4591;i:4;s:13:"SeaMonkey 2.1";i:5;s:9:"SeaMonkey";i:6;s:3:"2.1";i:7;s:1:"2";i:8;s:1:"1";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:13:"Seamonkey 2.2";i:5;s:9:"SeaMonkey";i:6;s:3:"2.2";i:7;s:1:"2";i:8;s:1:"2";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:13:"SeaMonkey 1.0";i:5;s:9:"SeaMonkey";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:13:"Seamonkey 2.3";i:5;s:9:"SeaMonkey";i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', 'a:2:{i:3;i:5644;i:5;s:13:"P3P Validator";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 31.0";i:5;s:8:"Chromium";i:6;s:4:"31.0";i:7;s:2:"31";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 30.0";i:5;s:8:"Chromium";i:6;s:4:"30.0";i:7;s:2:"30";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:5614;i:5;s:13:"Yahoo Mindset";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 27.0";i:5;s:8:"Chromium";i:6;s:4:"27.0";i:7;s:2:"27";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 17.0";i:5;s:8:"Chromium";i:6;s:4:"17.0";i:7;s:2:"17";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4787;i:5;s:13:"Twingly Recon";}', -'a:14:{i:3;i:4592;i:4;s:13:"Lunascape 5.1";i:5;s:9:"Lunascape";i:6;s:3:"5.1";i:7;s:1:"5";i:8;s:1:"1";i:9;s:5:"Win32";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";}', -'a:2:{i:3;i:4787;i:5;s:5:"Zatka";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 25.0";i:5;s:8:"Chromium";i:6;s:4:"25.0";i:7;s:2:"25";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 26.0";i:5;s:8:"Chromium";i:6;s:4:"26.0";i:7;s:2:"26";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:14:{i:3;i:4592;i:4;s:13:"Lunascape 5.0";i:5;s:9:"Lunascape";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:9;s:5:"Win32";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:13:"Chromium 32.0";i:5;s:8:"Chromium";i:6;s:4:"32.0";i:7;s:2:"32";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4657;i:5;s:12:"TheInformant";}', -'a:2:{i:3;i:5521;i:5;s:11:"Exabot-Test";}', -'a:4:{i:3;i:4438;i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";}', -'a:2:{i:3;i:4578;i:5;s:11:"GetRightPro";}', -'a:5:{i:3;i:4584;i:5;s:9:"FeedGhost";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:15:{i:3;i:4591;i:4;s:13:"SeaMonkey 1.1";i:5;s:9:"SeaMonkey";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:13:"Seamonkey 2.5";i:5;s:9:"SeaMonkey";i:6;s:3:"2.5";i:7;s:1:"2";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:2:{i:3;i:5612;i:5;s:13:"Yahoo Mindset";}', +'a:5:{i:3;i:4645;i:5;s:8:"ShopWiki";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4784;i:5;s:11:"i1searchbot";}', +'a:2:{i:3;i:4784;i:5;s:11:"LocalcomBot";}', +'a:2:{i:3;i:4539;i:5;s:11:"uTorrentMac";}', +'a:2:{i:3;i:4579;i:5;s:12:"Theme Spider";}', +'a:2:{i:3;i:4784;i:5;s:9:"GurujiBot";}', +'a:2:{i:3;i:4576;i:5;s:12:"ProWebWalker";}', +'a:2:{i:3;i:4879;i:5;s:11:"Anonymizied";}', +'a:2:{i:3;i:4784;i:5;s:11:"GoGuidesBot";}', +'a:2:{i:3;i:5609;i:5;s:11:"CazoodleBot";}', +'a:2:{i:3;i:4645;i:5;s:12:"TheInformant";}', +'a:2:{i:3;i:5517;i:5;s:11:"IrssiUrlLog";}', +'a:2:{i:3;i:4854;i:5;s:11:"JCheckLinks";}', 'a:2:{i:3;i:4578;i:5;s:11:"Net Vampire";}', -'a:2:{i:3;i:4657;i:5;s:13:"Covario-IDS/*";}', -'a:2:{i:3;i:5523;i:5;s:19:"MovableType Web Log";}', -'a:2:{i:3;i:5506;i:5;s:12:"CrawlConvera";}', -'a:2:{i:3;i:4841;i:5;s:11:"LinkChecker";}', -'a:2:{i:3;i:4580;i:5;s:12:"ProWebWalker";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:11:"metatagsdir";}', -'a:2:{i:3;i:4540;i:5;s:11:"uTorrentMac";}', -'a:2:{i:3;i:4580;i:5;s:12:"ExtractorPro";}', -'a:2:{i:3;i:5523;i:5;s:11:"GameSpyHTTP";}', -'a:2:{i:3;i:5609;i:5;s:11:"AC-BaiduBot";}', -'a:2:{i:3;i:5588;i:5;s:11:"MonkeyCrawl";}', -'a:7:{i:3;i:4250;i:5;s:11:"WWW Browser";i:6;s:4:"1.69";i:7;s:1:"1";i:8;s:2:"69";i:9;s:5:"Win16";i:29;s:1:"3";}', -'a:5:{i:3;i:4657;i:5;s:8:"ShopWiki";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:5644;i:5;s:11:"W3CLineMode";}', -'a:2:{i:3;i:5523;i:5;s:11:"IrssiUrlLog";}', -'a:2:{i:3;i:4841;i:5;s:11:"LinkSweeper";}', -'a:2:{i:3;i:4841;i:5;s:11:"JCheckLinks";}', -'a:2:{i:3;i:4576;i:5;s:12:"Theme Spider";}', -'a:2:{i:3;i:4787;i:5;s:11:"TerrawizBot";}', -'a:2:{i:3;i:4787;i:5;s:11:"LocalcomBot";}', -'a:2:{i:3;i:4584;i:5;s:11:"SharpReader";}', -'a:2:{i:3;i:5615;i:5;s:11:"CazoodleBot";}', -'a:2:{i:3;i:4787;i:5;s:11:"i1searchbot";}', -'a:2:{i:3;i:4870;i:5;s:11:"Anonymizied";}', -'a:2:{i:3;i:4787;i:5;s:8:"Flatland";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:1:{i:3;i:5360;}', +'a:2:{i:3;i:4436;i:5;s:11:"TurnitinBot";}', +'a:5:{i:3;i:4586;i:5;s:9:"FeedGhost";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4645;i:5;s:13:"Covario-IDS/*";}', +'a:2:{i:3;i:4854;i:5;s:11:"LinkChecker";}', +'a:2:{i:3;i:4784;i:5;s:11:"TerrawizBot";}', +'a:7:{i:3;i:4252;i:5;s:11:"WWW Browser";i:6;s:4:"1.69";i:7;s:1:"1";i:8;s:2:"69";i:9;s:5:"Win16";i:29;s:1:"3";}', +'a:2:{i:3;i:4854;i:5;s:11:"LinkSweeper";}', +'a:2:{i:3;i:4578;i:5;s:11:"GetRightPro";}', +'a:2:{i:3;i:4645;i:5;s:11:"metatagsdir";}', +'a:2:{i:3;i:4436;i:5;s:8:"TutorGig";}', +'a:2:{i:3;i:5517;i:5;s:11:"GameSpyHTTP";}', +'a:2:{i:3;i:4586;i:5;s:11:"SharpReader";}', +'a:2:{i:3;i:4576;i:5;s:12:"ExtractorPro";}', +'a:2:{i:3;i:4784;i:5;s:8:"Flatland";}', +'a:2:{i:3;i:5517;i:5;s:19:"MovableType Web Log";}', +'a:2:{i:3;i:5602;i:5;s:11:"AC-BaiduBot";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:2:{i:3;i:4845;i:5;s:12:"URLy Warning";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:4:{i:3;i:4438;i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";}', 'a:4:{i:3;i:4438;i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";}', -'a:2:{i:3;i:4840;i:5;s:12:"URLy Warning";}', -'a:2:{i:3;i:4434;i:5;s:11:"TurnitinBot";}', -'a:2:{i:3;i:4434;i:5;s:8:"TutorGig";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:2:{i:3;i:4787;i:5;s:11:"GoGuidesBot";}', -'a:2:{i:3;i:4787;i:5;s:9:"GurujiBot";}', -'a:2:{i:3;i:4787;i:5;s:7:"RedCell";}', -'a:2:{i:3;i:4638;i:5;s:11:"TweakMASTER";}', -'a:1:{i:3;i:4940;}', -'a:1:{i:3;i:4974;}', -'a:2:{i:3;i:4576;i:5;s:12:"Shim Crawler";}', -'a:2:{i:3;i:4841;i:5;s:10:"Powermarks";}', -'a:1:{i:3;i:4194;}', -'a:2:{i:3;i:4870;i:5;s:11:"Proxomitron";}', -'a:2:{i:3;i:5609;i:5;s:5:"BaiDu";}', -'a:2:{i:3;i:4638;i:5;s:18:"IE Offline Browser";}', -'a:18:{i:3;i:4592;i:4;s:12:"Firefox 19.0";i:5;s:7:"Firefox";i:6;s:4:"19.0";i:7;s:2:"19";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"19.0";}', -'a:14:{i:3;i:4592;i:4;s:19:"Access NetFront 3.0";i:5;s:15:"Access NetFront";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";i:33;s:8:"NetFront";}', -'a:12:{i:3;i:4250;i:5;s:12:"GreenBrowser";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";}', -'a:6:{i:3;i:4592;i:4;s:12:"Jayde Online";i:5;s:12:"Jayde Online";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:13:{i:3;i:4592;i:4;s:12:"Netscape 4.0";i:5;s:8:"Netscape";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:12:"Netscape 8.0";i:5;s:8:"Netscape";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:14:{i:3;i:4592;i:4;s:12:"Netscape 4.8";i:5;s:8:"Netscape";i:6;s:3:"4.8";i:7;s:1:"4";i:8;s:1:"8";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"1";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:12:"OmniWeb 5.11";i:5;s:7:"OmniWeb";i:6;s:4:"5.11";i:7;s:1:"5";i:8;s:2:"11";i:9;s:6:"MacOSX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:12:"Netscape 6.0";i:5;s:8:"Netscape";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:12:"Netscape 9.0";i:5;s:9:"Navigator";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:12:"OmniWeb 5.10";i:5;s:7:"OmniWeb";i:6;s:4:"5.10";i:7;s:1:"5";i:8;s:2:"10";i:9;s:6:"MacOSX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:14:{i:3;i:4592;i:4;s:12:"K-Meleon 1.0";i:5;s:8:"K-Meleon";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:14:{i:3;i:4592;i:4;s:12:"Netscape 4.7";i:5;s:8:"Netscape";i:6;s:3:"4.7";i:7;s:1:"4";i:8;s:1:"7";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"1";i:33;s:5:"Gecko";}', -'a:2:{i:3;i:4250;i:5;s:12:"Ace Explorer";}', -'a:6:{i:3;i:4592;i:4;s:12:"iVia Project";i:5;s:12:"iVia Project";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:2:{i:3;i:5612;i:5;s:12:"Sogou/Spider";}', -'a:14:{i:3;i:4592;i:4;s:12:"K-Meleon 1.6";i:5;s:8:"K-Meleon";i:6;s:3:"1.6";i:7;s:1:"1";i:8;s:1:"6";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:14:{i:3;i:4592;i:4;s:12:"K-Meleon 1.1";i:5;s:8:"K-Meleon";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:14:{i:3;i:4592;i:4;s:12:"K-Meleon 1.5";i:5;s:8:"K-Meleon";i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:12:"Netscape 7.0";i:5;s:8:"Netscape";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:12:"Firefox 10.0";i:5;s:7:"Firefox";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:18:{i:3;i:4592;i:4;s:12:"Firefox 13.0";i:5;s:7:"Firefox";i:6;s:4:"13.0";i:7;s:2:"13";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"13.0";}', -'a:15:{i:3;i:4592;i:4;s:12:"Chromium 6.0";i:5;s:8:"Chromium";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4787;i:5;s:12:"webcrawl.net";}', -'a:18:{i:3;i:4592;i:4;s:12:"Firefox 17.0";i:5;s:7:"Firefox";i:6;s:4:"17.0";i:7;s:2:"17";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"17.0";}', -'a:2:{i:3;i:5101;i:5;s:12:"Seram Server";}', -'a:15:{i:3;i:4592;i:4;s:12:"Firefox 11.0";i:5;s:7:"Firefox";i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:18:{i:3;i:4592;i:4;s:12:"Firefox 15.0";i:5;s:7:"Firefox";i:6;s:4:"15.0";i:7;s:2:"15";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"15.0";}', -'a:19:{i:3;i:4592;i:4;s:12:"Firefox 24.0";i:5;s:7:"Firefox";i:6;s:4:"24.0";i:7;s:2:"24";i:8;s:1:"0";i:12;s:4:"true";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"22.0";}', -'a:15:{i:3;i:4592;i:4;s:12:"Chromium 7.0";i:5;s:8:"Chromium";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:11:{i:3;i:4592;i:4;s:12:"Iron Generic";i:5;s:4:"Iron";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"1";i:33;s:6:"WebKit";}', -'a:4:{i:3;i:4592;i:4;s:8:"Nintendo";i:5;s:0:"";i:26;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:12:"Chromium 9.0";i:5;s:8:"Chromium";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:18:{i:3;i:4592;i:4;s:12:"Firefox 14.0";i:5;s:7:"Firefox";i:6;s:4:"14.0";i:7;s:2:"14";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"14.0";}', -'a:15:{i:3;i:4592;i:4;s:12:"Chromium 8.0";i:5;s:8:"Chromium";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:14:{i:3;i:4592;i:4;s:19:"Access NetFront 2.0";i:5;s:15:"Access NetFront";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";i:33;s:8:"NetFront";}', -'a:19:{i:3;i:4592;i:4;s:12:"Firefox 23.0";i:5;s:7:"Firefox";i:6;s:4:"23.0";i:7;s:2:"23";i:8;s:1:"0";i:13;s:4:"true";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"22.0";}', -'a:18:{i:3;i:4592;i:4;s:12:"Firefox 22.0";i:5;s:7:"Firefox";i:6;s:4:"22.0";i:7;s:2:"22";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"22.0";}', -'a:11:{i:3;i:4592;i:4;s:12:"SEMC Browser";i:5;s:12:"SEMC Browser";i:9;s:4:"JAVA";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:18:{i:3;i:4592;i:4;s:12:"Firefox 12.0";i:5;s:7:"Firefox";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"12.0";}', -'a:2:{i:3;i:5523;i:5;s:12:"http generic";}', -'a:18:{i:3;i:4592;i:4;s:12:"Firefox 21.0";i:5;s:7:"Firefox";i:6;s:4:"21.0";i:7;s:2:"21";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"21.0";}', -'a:18:{i:3;i:4592;i:4;s:12:"Firefox 18.0";i:5;s:7:"Firefox";i:6;s:4:"18.0";i:7;s:2:"18";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"18.0";}', -'a:10:{i:3;i:4592;i:4;s:12:"Opera Mobile";i:5;s:10:"Opera Mobi";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";}', -'a:18:{i:3;i:4592;i:4;s:12:"Firefox 16.0";i:5;s:7:"Firefox";i:6;s:4:"16.0";i:7;s:2:"16";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"16.0";}', -'a:18:{i:3;i:4592;i:4;s:12:"Firefox 20.0";i:5;s:7:"Firefox";i:6;s:4:"20.0";i:7;s:2:"20";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"20.0";}', -'a:2:{i:3;i:4580;i:5;s:12:"Atomic_Email";}', -'a:2:{i:3;i:5523;i:5;s:12:"iexplore.exe";}', -'a:2:{i:3;i:4840;i:5;s:10:"URL_Access";}', -'a:2:{i:3;i:4841;i:5;s:10:"CheckLinks";}', -'a:2:{i:3;i:5521;i:5;s:10:"Exalead NG";}', -'a:2:{i:3;i:4657;i:5;s:10:"UbiCrawler";}', -'a:2:{i:3;i:4840;i:5;s:11:"NetMechanic";}', -'a:2:{i:3;i:4657;i:5;s:10:"Twitterbot";}', -'a:2:{i:3;i:4576;i:5;s:14:"Gulper Web Bot";}', -'a:5:{i:3;i:4833;i:5;s:7:"MPlayer";i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";}', -'a:3:{i:3;i:4870;i:5;s:11:"ProxyTester";i:28;s:4:"true";}', -'a:2:{i:3;i:4840;i:5;s:11:"URL Control";}', -'a:2:{i:3;i:4540;i:5;s:10:"BitTorrent";}', -'a:2:{i:3;i:4540;i:5;s:10:"BitTornado";}', -'a:2:{i:3;i:5523;i:5;s:11:"WebGatherer";}', -'a:2:{i:3;i:4584;i:5;s:11:"Omnipelagos";}', -'a:2:{i:3;i:4780;i:5;s:8:"IconSurf";}', -'a:2:{i:3;i:5523;i:5;s:11:"Webster Pro";}', -'a:2:{i:3;i:4658;i:5;s:16:"Internet Archive";}', -'a:2:{i:3;i:5523;i:5;s:11:"WebSnatcher";}', -'a:2:{i:3;i:4870;i:5;s:10:"Anonymizer";}', -'a:2:{i:3;i:4870;i:5;s:11:"Anonymizied";}', -'a:2:{i:3;i:4787;i:5;s:10:"GroschoBot";}', -'a:2:{i:3;i:5556;i:5;s:10:"URI::Fetch";}', -'a:2:{i:3;i:4787;i:5;s:11:"FyberSpider";}', -'a:2:{i:3;i:4540;i:5;s:10:"libtorrent";}', -'a:2:{i:3;i:5523;i:5;s:11:"WebStripper";}', -'a:2:{i:3;i:4787;i:5;s:11:"Mnogosearch";}', -'a:2:{i:3;i:5523;i:5;s:10:"SiteParser";}', -'a:2:{i:3;i:4580;i:5;s:11:"WebEnhancer";}', -'a:6:{i:3;i:5642;i:5;s:6:"msnbot";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:13;s:4:"true";}', -'a:2:{i:3;i:5581;i:5;s:23:"Google Search Appliance";}', -'a:3:{i:3;i:5556;i:5;s:10:"Hatena RSS";i:27;s:4:"true";}', -'a:2:{i:3;i:5614;i:5;s:11:"Yahoo Pipes";}', -'a:5:{i:3;i:5642;i:5;s:13:"msnbot-mobile";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', -'a:2:{i:3;i:5614;i:5;s:11:"Yahoo-Blogs";}', -'a:2:{i:3;i:4657;i:5;s:10:"Nudelsalat";}', -'a:2:{i:3;i:5523;i:5;s:11:"DeepIndexer";}', -'a:2:{i:3;i:4580;i:5;s:10:"ContactBot";}', -'a:2:{i:3;i:4580;i:5;s:13:"E-Mail Siphon";}', -'a:2:{i:3;i:5523;i:5;s:10:"HTMLParser";}', -'a:2:{i:3;i:4657;i:5;s:11:"NextopiaBOT";}', -'a:2:{i:3;i:5444;i:15;s:5:"false";}', -'a:2:{i:3;i:5523;i:5;s:10:"DISCo Pump";}', -'a:3:{i:3;i:5556;i:5;s:9:"Feed Find";i:27;s:4:"true";}', -'a:2:{i:3;i:4841;i:5;s:11:"RLinkCheker";}', -'a:2:{i:3;i:5644;i:5;s:10:"W3C-WebCon";}', +'a:2:{i:3;i:5644;i:5;s:11:"W3CLineMode";}', +'a:2:{i:3;i:5512;i:5;s:12:"CrawlConvera";}', +'a:2:{i:3;i:5511;i:5;s:11:"Exabot-Test";}', +'a:2:{i:3;i:5577;i:5;s:11:"MonkeyCrawl";}', +'a:1:{i:3;i:5344;}', +'a:2:{i:3;i:4879;i:5;s:11:"Proxomitron";}', +'a:2:{i:3;i:4784;i:5;s:7:"RedCell";}', +'a:1:{i:3;i:4944;}', +'a:2:{i:3;i:4646;i:5;s:18:"IE Offline Browser";}', +'a:1:{i:3;i:4948;}', +'a:2:{i:3;i:4646;i:5;s:11:"TweakMASTER";}', +'a:2:{i:3;i:5602;i:5;s:5:"BaiDu";}', +'a:2:{i:3;i:4854;i:5;s:10:"Powermarks";}', +'a:2:{i:3;i:4579;i:5;s:12:"Shim Crawler";}', +'a:1:{i:3;i:4197;}', +'a:11:{i:3;i:4591;i:4;s:12:"SEMC Browser";i:5;s:12:"SEMC Browser";i:9;s:4:"JAVA";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:18:{i:3;i:4591;i:4;s:12:"Firefox 19.0";i:5;s:7:"Firefox";i:6;s:4:"19.0";i:7;s:2:"19";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"19.0";}', +'a:14:{i:3;i:4591;i:4;s:12:"K-Meleon 1.5";i:5;s:8:"K-Meleon";i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:14:{i:3;i:4591;i:4;s:12:"K-Meleon 1.6";i:5;s:8:"K-Meleon";i:6;s:3:"1.6";i:7;s:1:"1";i:8;s:1:"6";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:2:{i:3;i:5608;i:5;s:12:"Sogou/Spider";}', +'a:14:{i:3;i:4591;i:4;s:19:"Access NetFront 3.0";i:5;s:15:"Access NetFront";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";i:33;s:8:"NetFront";}', +'a:15:{i:3;i:4591;i:4;s:12:"OmniWeb 5.11";i:5;s:7:"OmniWeb";i:6;s:4:"5.11";i:7;s:1:"5";i:8;s:2:"11";i:9;s:6:"MacOSX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:12:"Firefox 10.0";i:5;s:7:"Firefox";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:14:{i:3;i:4591;i:4;s:12:"Netscape 4.7";i:5;s:8:"Netscape";i:6;s:3:"4.7";i:7;s:1:"4";i:8;s:1:"7";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"1";i:33;s:5:"Gecko";}', +'a:14:{i:3;i:4591;i:4;s:19:"Access NetFront 2.0";i:5;s:15:"Access NetFront";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";i:33;s:8:"NetFront";}', +'a:14:{i:3;i:4591;i:4;s:12:"Netscape 4.8";i:5;s:8:"Netscape";i:6;s:3:"4.8";i:7;s:1:"4";i:8;s:1:"8";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"1";i:33;s:5:"Gecko";}', +'a:2:{i:3;i:4576;i:5;s:12:"Atomic_Email";}', +'a:10:{i:3;i:4591;i:4;s:12:"Opera Mobile";i:5;s:10:"Opera Mobi";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";}', +'a:15:{i:3;i:4591;i:4;s:12:"Netscape 7.0";i:5;s:8:"Netscape";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:4:{i:3;i:4591;i:4;s:8:"Nintendo";i:5;s:0:"";i:26;s:4:"true";}', +'a:18:{i:3;i:4591;i:4;s:12:"Firefox 15.0";i:5;s:7:"Firefox";i:6;s:4:"15.0";i:7;s:2:"15";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"15.0";}', +'a:18:{i:3;i:4591;i:4;s:12:"Firefox 12.0";i:5;s:7:"Firefox";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"12.0";}', +'a:19:{i:3;i:4591;i:4;s:12:"Firefox 23.0";i:5;s:7:"Firefox";i:6;s:4:"23.0";i:7;s:2:"23";i:8;s:1:"0";i:13;s:4:"true";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"22.0";}', +'a:18:{i:3;i:4591;i:4;s:12:"Firefox 13.0";i:5;s:7:"Firefox";i:6;s:4:"13.0";i:7;s:2:"13";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"13.0";}', +'a:18:{i:3;i:4591;i:4;s:12:"Firefox 20.0";i:5;s:7:"Firefox";i:6;s:4:"20.0";i:7;s:2:"20";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"20.0";}', +'a:2:{i:3;i:5119;i:5;s:12:"Seram Server";}', +'a:6:{i:3;i:4591;i:4;s:12:"iVia Project";i:5;s:12:"iVia Project";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:14:{i:3;i:4591;i:4;s:12:"K-Meleon 1.0";i:5;s:8:"K-Meleon";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:18:{i:3;i:4591;i:4;s:12:"Firefox 17.0";i:5;s:7:"Firefox";i:6;s:4:"17.0";i:7;s:2:"17";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"17.0";}', +'a:18:{i:3;i:4591;i:4;s:12:"Firefox 18.0";i:5;s:7:"Firefox";i:6;s:4:"18.0";i:7;s:2:"18";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"18.0";}', +'a:15:{i:3;i:4591;i:4;s:12:"Chromium 7.0";i:5;s:8:"Chromium";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:12:"Netscape 6.0";i:5;s:8:"Netscape";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:12:"Chromium 6.0";i:5;s:8:"Chromium";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:5517;i:5;s:12:"iexplore.exe";}', +'a:19:{i:3;i:4591;i:4;s:12:"Firefox 24.0";i:5;s:7:"Firefox";i:6;s:4:"24.0";i:7;s:2:"24";i:8;s:1:"0";i:12;s:4:"true";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"22.0";}', +'a:15:{i:3;i:4591;i:4;s:12:"Netscape 8.0";i:5;s:8:"Netscape";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:2:{i:3;i:5517;i:5;s:12:"http generic";}', +'a:18:{i:3;i:4591;i:4;s:12:"Firefox 16.0";i:5;s:7:"Firefox";i:6;s:4:"16.0";i:7;s:2:"16";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"16.0";}', +'a:15:{i:3;i:4591;i:4;s:12:"Chromium 9.0";i:5;s:8:"Chromium";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:12:"Netscape 9.0";i:5;s:9:"Navigator";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:14:{i:3;i:4591;i:4;s:12:"K-Meleon 1.1";i:5;s:8:"K-Meleon";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:12:"Chromium 8.0";i:5;s:8:"Chromium";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:12:"Firefox 11.0";i:5;s:7:"Firefox";i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:18:{i:3;i:4591;i:4;s:12:"Firefox 22.0";i:5;s:7:"Firefox";i:6;s:4:"22.0";i:7;s:2:"22";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"22.0";}', +'a:18:{i:3;i:4591;i:4;s:12:"Firefox 21.0";i:5;s:7:"Firefox";i:6;s:4:"21.0";i:7;s:2:"21";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"21.0";}', +'a:2:{i:3;i:4252;i:5;s:12:"Ace Explorer";}', +'a:6:{i:3;i:4591;i:4;s:12:"Jayde Online";i:5;s:12:"Jayde Online";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:11:{i:3;i:4591;i:4;s:12:"Iron Generic";i:5;s:4:"Iron";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"1";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:12:"OmniWeb 5.10";i:5;s:7:"OmniWeb";i:6;s:4:"5.10";i:7;s:1:"5";i:8;s:2:"10";i:9;s:6:"MacOSX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:12:{i:3;i:4252;i:5;s:12:"GreenBrowser";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";}', +'a:2:{i:3;i:4784;i:5;s:12:"webcrawl.net";}', +'a:13:{i:3;i:4591;i:4;s:12:"Netscape 4.0";i:5;s:8:"Netscape";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:33;s:5:"Gecko";}', +'a:18:{i:3;i:4591;i:4;s:12:"Firefox 14.0";i:5;s:7:"Firefox";i:6;s:4:"14.0";i:7;s:2:"14";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:4:"14.0";}', +'a:2:{i:3;i:4586;i:5;s:10:"FeedBurner";}', +'a:3:{i:3;i:4879;i:5;s:11:"ProxyTester";i:28;s:4:"true";}', 'a:4:{i:3;i:4438;i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";}', -'a:2:{i:3;i:4584;i:5;s:10:"intraVnews";}', -'a:4:{i:3;i:4438;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', -'a:2:{i:3;i:4250;i:5;s:11:"NetRecorder";}', -'a:2:{i:3;i:5523;i:5;s:11:"SiteSnagger";}', -'a:2:{i:3;i:4833;i:5;s:6:"WinAmp";}', -'a:2:{i:3;i:4584;i:5;s:8:"Netvibes";}', -'a:2:{i:3;i:5523;i:5;s:10:"SiteSucker";}', +'a:4:{i:3;i:4438;i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";}', 'a:4:{i:3;i:4438;i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";}', -'a:2:{i:3;i:4578;i:5;s:10:"LMQueueBot";}', +'a:4:{i:3;i:4438;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', +'a:2:{i:3;i:4854;i:5;s:11:"RLinkCheker";}', +'a:2:{i:3;i:4879;i:5;s:11:"Anonymizied";}', +'a:2:{i:3;i:4879;i:5;s:10:"Anonymizer";}', +'a:2:{i:3;i:4839;i:5;s:6:"WinAmp";}', +'a:2:{i:3;i:5644;i:5;s:10:"W3C-WebCon";}', +'a:2:{i:3;i:4784;i:5;s:11:"Mnogosearch";}', +'a:2:{i:3;i:4576;i:5;s:10:"ContactBot";}', +'a:5:{i:3;i:4839;i:5;s:7:"MPlayer";i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";}', +'a:2:{i:3;i:4576;i:5;s:13:"E-Mail Siphon";}', +'a:2:{i:3;i:4252;i:5;s:11:"NetRecorder";}', +'a:2:{i:3;i:5511;i:5;s:10:"Exalead NG";}', +'a:2:{i:3;i:4586;i:5;s:8:"Netvibes";}', +'a:2:{i:3;i:4576;i:5;s:11:"WebEnhancer";}', +'a:2:{i:3;i:4586;i:5;s:11:"Omnipelagos";}', +'a:2:{i:3;i:4854;i:5;s:10:"CheckLinks";}', +'a:2:{i:3;i:4845;i:5;s:11:"URL Control";}', +'a:3:{i:3;i:5612;i:5;s:11:"YahooSeeker";i:26;s:4:"true";}', +'a:2:{i:3;i:4648;i:5;s:16:"Internet Archive";}', +'a:2:{i:3;i:4645;i:5;s:11:"NextopiaBOT";}', +'a:2:{i:3;i:4539;i:5;s:10:"libtorrent";}', +'a:2:{i:3;i:5612;i:5;s:11:"Yahoo-Blogs";}', +'a:2:{i:3;i:5517;i:5;s:10:"DISCo Pump";}', +'a:2:{i:3;i:5517;i:5;s:11:"WebGatherer";}', +'a:2:{i:3;i:4645;i:5;s:10:"Nudelsalat";}', +'a:2:{i:3;i:4645;i:5;s:10:"Twitterbot";}', +'a:2:{i:3;i:4645;i:5;s:10:"UbiCrawler";}', +'a:2:{i:3;i:5517;i:5;s:10:"HTMLParser";}', +'a:2:{i:3;i:5583;i:5;s:10:"URI::Fetch";}', +'a:2:{i:3;i:4645;i:5;s:8:"BitlyBot";}', +'a:2:{i:3;i:4539;i:5;s:10:"BitTornado";}', +'a:2:{i:3;i:4784;i:5;s:10:"GroschoBot";}', +'a:3:{i:3;i:5583;i:5;s:10:"Hatena RSS";i:27;s:4:"true";}', +'a:2:{i:3;i:4539;i:5;s:10:"BitTorrent";}', +'a:3:{i:3;i:5583;i:5;s:9:"Feed Find";i:27;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:10:"SiteSucker";}', +'a:2:{i:3;i:5517;i:5;s:11:"SiteSnagger";}', +'a:2:{i:3;i:5517;i:5;s:10:"SiteParser";}', +'a:2:{i:3;i:4784;i:5;s:11:"FyberSpider";}', +'a:2:{i:3;i:5557;i:5;s:23:"Google Search Appliance";}', +'a:2:{i:3;i:5517;i:5;s:11:"DeepIndexer";}', +'a:2:{i:3;i:4788;i:5;s:8:"IconSurf";}', +'a:5:{i:3;i:5643;i:5;s:13:"msnbot-mobile";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', +'a:2:{i:3;i:5612;i:5;s:11:"Yahoo Pipes";}', +'a:2:{i:3;i:4579;i:5;s:14:"Gulper Web Bot";}', 'a:2:{i:3;i:4578;i:5;s:11:"Net_Vampire";}', -'a:2:{i:3;i:4657;i:5;s:11:"CyberPatrol";}', -'a:3:{i:3;i:5614;i:5;s:11:"YahooSeeker";i:26;s:4:"true";}', -'a:2:{i:3;i:4584;i:5;s:10:"FeedBurner";}', -'a:2:{i:3;i:4657;i:5;s:8:"BitlyBot";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:4:{i:3;i:4438;i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";}', -'a:2:{i:3;i:5588;i:5;s:9:"BecomeBot";}', -'a:2:{i:3;i:4657;i:5;s:15:"Generic Crawler";}', -'a:2:{i:3;i:4841;i:5;s:9:"AgentName";}', -'a:2:{i:3;i:5523;i:5;s:10:"WebGrabber";}', -'a:2:{i:3;i:4787;i:5;s:10:"FDSE Robot";}', -'a:2:{i:3;i:4657;i:5;s:10:"SqwidgeBot";}', -'a:2:{i:3;i:5221;i:10;s:3:"1.0";}', -'a:2:{i:3;i:5523;i:5;s:9:"IP*Works!";}', -'a:18:{i:3;i:4592;i:4;s:11:"Mozilla 1.8";i:5;s:7:"Mozilla";i:6;s:3:"1.8";i:7;s:1:"1";i:8;s:1:"8";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.8";}', -'a:2:{i:3;i:5610;i:5;s:11:"Lycos-Proxy";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 9.0";i:5;s:7:"Firefox";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:18:{i:3;i:4592;i:4;s:11:"Mozilla 1.9";i:5;s:7:"Mozilla";i:6;s:3:"1.9";i:7;s:1:"1";i:8;s:1:"9";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', -'a:18:{i:3;i:4592;i:4;s:11:"Fennec 10.0";i:5;s:6:"Fennec";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:9;s:7:"Android";i:10;s:3:"2.3";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:7:"default";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"10.0";}', -'a:5:{i:3;i:4657;i:5;s:7:"MedHunt";i:6;s:3:"0.3";i:7;s:1:"0";i:8;s:1:"3";}', -'a:5:{i:3;i:4592;i:4;s:11:"Feeds Blogs";i:5;s:11:"Feeds Blogs";i:27;s:4:"true";i:28;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:11:"AOL Generic";i:5;s:2:"IE";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"1";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:2:{i:3;i:4657;i:5;s:11:"Surf Knight";}', -'a:5:{i:3;i:4657;i:5;s:7:"Cynthia";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:5:{i:3;i:4592;i:4;s:11:"General RSS";i:5;s:11:"General RSS";i:27;s:4:"true";i:28;s:4:"true";}', -'a:17:{i:3;i:4592;i:4;s:11:"Mozilla 1.3";i:5;s:7:"Mozilla";i:6;s:3:"1.3";i:7;s:1:"1";i:8;s:1:"3";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.3";}', -'a:18:{i:3;i:4592;i:4;s:11:"Mozilla 1.4";i:5;s:7:"Mozilla";i:6;s:3:"1.4";i:7;s:1:"1";i:8;s:1:"4";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.4";}', -'a:17:{i:3;i:4592;i:4;s:11:"Mozilla 1.2";i:5;s:7:"Mozilla";i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.2";}', -'a:17:{i:3;i:4592;i:4;s:11:"Mozilla 1.1";i:5;s:7:"Mozilla";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.1";}', -'a:2:{i:3;i:4787;i:5;s:7:"Mail.Ru";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 7.0";i:5;s:7:"Firefox";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:18:{i:3;i:4592;i:4;s:11:"Mozilla 1.5";i:5;s:7:"Mozilla";i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.5";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 8.0";i:5;s:7:"Firefox";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:17:{i:3;i:4592;i:4;s:11:"Mozilla 1.0";i:5;s:7:"Mozilla";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.0";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 6.0";i:5;s:7:"Firefox";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:2:{i:3;i:4780;i:5;s:11:"FOTOCHECKER";}', -'a:18:{i:3;i:4592;i:4;s:11:"Mozilla 1.6";i:5;s:7:"Mozilla";i:6;s:3:"1.6";i:7;s:1:"1";i:8;s:1:"6";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.6";}', -'a:18:{i:3;i:4592;i:4;s:11:"Mozilla 1.7";i:5;s:7:"Mozilla";i:6;s:3:"1.7";i:7;s:1:"1";i:8;s:1:"7";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.7";}', -'a:5:{i:3;i:5642;i:5;s:7:"llssbot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4870;i:5;s:11:"SurfControl";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 11.50";i:5;s:5:"Opera";i:6;s:5:"11.50";i:7;s:2:"11";i:8;s:2:"50";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"2.9";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 14.0";i:5;s:6:"Chrome";i:6;s:4:"14.0";i:7;s:2:"14";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 13.0";i:5;s:6:"Chrome";i:6;s:4:"13.0";i:7;s:2:"13";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 12.0";i:5;s:6:"Chrome";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 10.0";i:5;s:6:"Chrome";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 11.0";i:5;s:6:"Chrome";i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 15.0";i:5;s:6:"Chrome";i:6;s:4:"15.0";i:7;s:2:"15";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 11.60";i:5;s:5:"Opera";i:6;s:5:"11.60";i:7;s:2:"11";i:8;s:2:"60";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 19.0";i:5;s:6:"Chrome";i:6;s:4:"19.0";i:7;s:2:"19";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 20.0";i:5;s:6:"Chrome";i:6;s:4:"20.0";i:7;s:2:"20";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 18.0";i:5;s:6:"Chrome";i:6;s:4:"18.0";i:7;s:2:"18";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 1.0";i:5;s:7:"Firefox";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 12.00";i:5;s:5:"Opera";i:6;s:5:"12.00";i:7;s:2:"12";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 16.0";i:5;s:6:"Chrome";i:6;s:4:"16.0";i:7;s:2:"16";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:5523;i:5;s:11:"HttpSession";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 3.6";i:5;s:7:"Firefox";i:6;s:3:"3.6";i:7;s:1:"3";i:8;s:1:"6";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 2.0";i:5;s:7:"Firefox";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:14:{i:3;i:4592;i:4;s:11:"Maxthon 2.0";i:5;s:7:"Maxthon";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', -'a:6:{i:3;i:4592;i:4;s:11:"Translators";i:5;s:11:"Translators";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:12:{i:3;i:4592;i:4;s:11:"Playstation";i:5;s:11:"Playstation";i:9;s:3:"WAP";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:31;s:11:"Playstation";i:32;s:4:"Sony";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 3.1";i:5;s:7:"Firefox";i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:2:{i:3;i:4840;i:5;s:11:"SITECHECKER";}', -'a:15:{i:3;i:4592;i:4;s:11:"Maxthon 3.0";i:5;s:7:"Maxthon";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 3.5";i:5;s:7:"Firefox";i:6;s:3:"3.5";i:7;s:1:"3";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 11.00";i:5;s:5:"Opera";i:6;s:5:"11.00";i:7;s:2:"11";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"2.7";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 11.10";i:5;s:5:"Opera";i:6;s:5:"11.10";i:7;s:2:"11";i:8;s:2:"10";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"2.8";}', -'a:4:{i:3;i:4592;i:4;s:11:"NameProtect";i:5;s:11:"NameProtect";i:28;s:4:"true";}', -'a:2:{i:3;i:4576;i:5;s:11:"Zao-Crawler";}', -'a:15:{i:3;i:4592;i:4;s:11:"OmniWeb 5.0";i:5;s:7:"OmniWeb";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:9;s:6:"MacOSX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 10.00";i:5;s:5:"Opera";i:6;s:5:"10.00";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"2.2";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 21.0";i:5;s:6:"Chrome";i:6;s:4:"21.0";i:7;s:2:"21";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 17.0";i:5;s:6:"Chrome";i:6;s:4:"17.0";i:7;s:2:"17";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 22.0";i:5;s:6:"Chrome";i:6;s:4:"22.0";i:7;s:2:"22";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 5.0";i:5;s:7:"Firefox";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 27.0";i:5;s:6:"Chrome";i:6;s:4:"27.0";i:7;s:2:"27";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:9:{i:3;i:4592;i:4;s:11:"NetPositive";i:5;s:11:"NetPositive";i:9;s:4:"BeOS";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', -'a:8:{i:3;i:4592;i:4;s:11:"ELinks 0.13";i:5;s:6:"ELinks";i:6;s:4:"0.13";i:7;s:1:"0";i:8;s:2:"13";i:17;s:4:"true";i:19;s:4:"true";}', -'a:3:{i:3;i:4592;i:4;s:11:"Google Code";i:5;s:11:"Google Code";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 28.0";i:5;s:6:"Chrome";i:6;s:4:"28.0";i:7;s:2:"28";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:8:{i:3;i:4592;i:4;s:11:"ELinks 0.12";i:5;s:6:"ELinks";i:6;s:4:"0.12";i:7;s:1:"0";i:8;s:2:"12";i:17;s:4:"true";i:19;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 32.0";i:5;s:6:"Chrome";i:6;s:4:"32.0";i:7;s:2:"32";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:8:{i:3;i:4592;i:4;s:11:"ELinks 0.11";i:5;s:6:"ELinks";i:6;s:4:"0.11";i:7;s:1:"0";i:8;s:2:"11";i:17;s:4:"true";i:19;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 31.0";i:5;s:6:"Chrome";i:6;s:4:"31.0";i:7;s:2:"31";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:8:{i:3;i:4592;i:4;s:11:"ELinks 0.10";i:5;s:6:"ELinks";i:6;s:4:"0.10";i:7;s:1:"0";i:8;s:2:"10";i:17;s:4:"true";i:19;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 29.0";i:5;s:6:"Chrome";i:6;s:4:"29.0";i:7;s:2:"29";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 30.0";i:5;s:6:"Chrome";i:6;s:4:"30.0";i:7;s:2:"30";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 26.0";i:5;s:6:"Chrome";i:6;s:4:"26.0";i:7;s:2:"26";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:5523;i:5;s:11:"ICE_GetFile";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 12.13";i:5;s:5:"Opera";i:6;s:5:"12.13";i:7;s:2:"12";i:8;s:2:"13";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 12.10";i:5;s:5:"Opera";i:6;s:5:"12.10";i:7;s:2:"12";i:8;s:2:"10";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 24.0";i:5;s:6:"Chrome";i:6;s:4:"24.0";i:7;s:2:"24";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 12.12";i:5;s:5:"Opera";i:6;s:5:"12.12";i:7;s:2:"12";i:8;s:2:"12";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 3.0";i:5;s:7:"Firefox";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 23.0";i:5;s:6:"Chrome";i:6;s:4:"23.0";i:7;s:2:"23";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 4.0";i:5;s:7:"Firefox";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:11:"Chrome 25.0";i:5;s:6:"Chrome";i:6;s:4:"25.0";i:7;s:2:"25";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 12.15";i:5;s:5:"Opera";i:6;s:5:"12.15";i:7;s:2:"12";i:8;s:2:"15";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";i:34;s:8:"2.12.388";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 12.16";i:5;s:5:"Opera";i:6;s:5:"12.16";i:7;s:2:"12";i:8;s:2:"16";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";i:34;s:8:"2.12.388";}', -'a:2:{i:3;i:4250;i:5;s:11:"SlimBrowser";}', -'a:15:{i:3;i:4592;i:4;s:11:"Firefox 4.2";i:5;s:7:"Firefox";i:6;s:3:"4.2";i:7;s:1:"4";i:8;s:1:"2";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 12.14";i:5;s:5:"Opera";i:6;s:5:"12.14";i:7;s:2:"12";i:8;s:2:"14";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";i:34;s:8:"2.12.388";}', -'a:16:{i:3;i:4592;i:4;s:11:"Opera 12.11";i:5;s:5:"Opera";i:6;s:5:"12.11";i:7;s:2:"12";i:8;s:2:"11";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', -'a:2:{i:3;i:4657;i:5;s:6:"Mozdex";}', -'a:2:{i:3;i:4434;i:5;s:9:"SlySearch";}', -'a:2:{i:3;i:5523;i:5;s:9:"webbandit";}', -'a:2:{i:3;i:4578;i:5;s:9:"BitBeamer";}', -'a:2:{i:3;i:4657;i:5;s:7:"KBeeBot";}', -'a:2:{i:3;i:5523;i:5;s:10:"RepoMonkey";}', -'a:2:{i:3;i:4657;i:5;s:32:"Safe-t.net Web Filtering Service";}', -'a:2:{i:3;i:4787;i:5;s:8:"RawGrunt";}', -'a:2:{i:3;i:5523;i:5;s:10:"SiteWinder";}', -'a:1:{i:3;i:5435;}', -'a:2:{i:3;i:5523;i:5;s:9:"SuperHTTP";}', +'a:2:{i:3;i:4845;i:5;s:10:"URL_Access";}', +'a:2:{i:3;i:4578;i:5;s:10:"LMQueueBot";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:2:{i:3;i:4845;i:5;s:11:"NetMechanic";}', +'a:2:{i:3;i:4586;i:5;s:10:"intraVnews";}', +'a:2:{i:3;i:4645;i:5;s:11:"CyberPatrol";}', +'a:2:{i:3;i:5450;i:15;s:5:"false";}', +'a:6:{i:3;i:5643;i:5;s:6:"msnbot";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:13;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:11:"WebSnatcher";}', +'a:2:{i:3;i:5517;i:5;s:11:"Webster Pro";}', +'a:2:{i:3;i:5517;i:5;s:11:"WebStripper";}', +'a:2:{i:3;i:5261;i:10;s:3:"1.0";}', +'a:2:{i:3;i:5577;i:5;s:9:"BecomeBot";}', +'a:2:{i:3;i:5517;i:5;s:10:"WebGrabber";}', +'a:2:{i:3;i:4645;i:5;s:10:"SqwidgeBot";}', +'a:2:{i:3;i:4645;i:5;s:15:"Generic Crawler";}', +'a:2:{i:3;i:4784;i:5;s:10:"FDSE Robot";}', +'a:2:{i:3;i:4854;i:5;s:9:"AgentName";}', +'a:2:{i:3;i:5517;i:5;s:9:"IP*Works!";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 12.00";i:5;s:5:"Opera";i:6;s:5:"12.00";i:7;s:2:"12";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 7.0";i:5;s:7:"Firefox";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 11.60";i:5;s:5:"Opera";i:6;s:5:"11.60";i:7;s:2:"11";i:8;s:2:"60";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', +'a:5:{i:3;i:4591;i:4;s:11:"General RSS";i:5;s:11:"General RSS";i:27;s:4:"true";i:28;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 32.0";i:5;s:6:"Chrome";i:6;s:4:"32.0";i:7;s:2:"32";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:18:{i:3;i:4591;i:4;s:11:"Mozilla 1.5";i:5;s:7:"Mozilla";i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.5";}', +'a:3:{i:3;i:4591;i:4;s:11:"Google Code";i:5;s:11:"Google Code";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 12.10";i:5;s:5:"Opera";i:6;s:5:"12.10";i:7;s:2:"12";i:8;s:2:"10";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 12.11";i:5;s:5:"Opera";i:6;s:5:"12.11";i:7;s:2:"12";i:8;s:2:"11";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 8.0";i:5;s:7:"Firefox";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:18:{i:3;i:4591;i:4;s:11:"Mozilla 1.6";i:5;s:7:"Mozilla";i:6;s:3:"1.6";i:7;s:1:"1";i:8;s:1:"6";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.6";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 11.50";i:5;s:5:"Opera";i:6;s:5:"11.50";i:7;s:2:"11";i:8;s:2:"50";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"2.9";}', +'a:18:{i:3;i:4591;i:4;s:11:"Mozilla 1.8";i:5;s:7:"Mozilla";i:6;s:3:"1.8";i:7;s:1:"1";i:8;s:1:"8";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.8";}', +'a:18:{i:3;i:4591;i:4;s:11:"Mozilla 1.7";i:5;s:7:"Mozilla";i:6;s:3:"1.7";i:7;s:1:"1";i:8;s:1:"7";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.7";}', +'a:8:{i:3;i:4591;i:4;s:11:"ELinks 0.13";i:5;s:6:"ELinks";i:6;s:4:"0.13";i:7;s:1:"0";i:8;s:2:"13";i:17;s:4:"true";i:19;s:4:"true";}', +'a:8:{i:3;i:4591;i:4;s:11:"ELinks 0.12";i:5;s:6:"ELinks";i:6;s:4:"0.12";i:7;s:1:"0";i:8;s:2:"12";i:17;s:4:"true";i:19;s:4:"true";}', +'a:8:{i:3;i:4591;i:4;s:11:"ELinks 0.11";i:5;s:6:"ELinks";i:6;s:4:"0.11";i:7;s:1:"0";i:8;s:2:"11";i:17;s:4:"true";i:19;s:4:"true";}', +'a:8:{i:3;i:4591;i:4;s:11:"ELinks 0.10";i:5;s:6:"ELinks";i:6;s:4:"0.10";i:7;s:1:"0";i:8;s:2:"10";i:17;s:4:"true";i:19;s:4:"true";}', +'a:5:{i:3;i:5643;i:5;s:7:"llssbot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 1.0";i:5;s:7:"Firefox";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:2:{i:3;i:4645;i:5;s:11:"Surf Knight";}', +'a:12:{i:3;i:4591;i:4;s:11:"Playstation";i:5;s:11:"Playstation";i:9;s:3:"WAP";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:31;s:11:"Playstation";i:32;s:4:"Sony";}', +'a:18:{i:3;i:4591;i:4;s:11:"Fennec 10.0";i:5;s:6:"Fennec";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:9;s:7:"Android";i:10;s:3:"2.3";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:7:"default";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:4:"10.0";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 11.10";i:5;s:5:"Opera";i:6;s:5:"11.10";i:7;s:2:"11";i:8;s:2:"10";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"2.8";}', +'a:14:{i:3;i:4591;i:4;s:11:"Maxthon 2.0";i:5;s:7:"Maxthon";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', +'a:18:{i:3;i:4591;i:4;s:11:"Mozilla 1.9";i:5;s:7:"Mozilla";i:6;s:3:"1.9";i:7;s:1:"1";i:8;s:1:"9";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', +'a:2:{i:3;i:4788;i:5;s:11:"FOTOCHECKER";}', +'a:5:{i:3;i:4591;i:4;s:11:"Feeds Blogs";i:5;s:11:"Feeds Blogs";i:27;s:4:"true";i:28;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:11:"Maxthon 3.0";i:5;s:7:"Maxthon";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"OmniWeb 5.0";i:5;s:7:"OmniWeb";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:9;s:6:"MacOSX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 9.0";i:5;s:7:"Firefox";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 10.00";i:5;s:5:"Opera";i:6;s:5:"10.00";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"2.2";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 11.00";i:5;s:5:"Opera";i:6;s:5:"11.00";i:7;s:2:"11";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"2.7";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 31.0";i:5;s:6:"Chrome";i:6;s:4:"31.0";i:7;s:2:"31";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:9:{i:3;i:4591;i:4;s:11:"NetPositive";i:5;s:11:"NetPositive";i:9;s:4:"BeOS";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 30.0";i:5;s:6:"Chrome";i:6;s:4:"30.0";i:7;s:2:"30";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 4.2";i:5;s:7:"Firefox";i:6;s:3:"4.2";i:7;s:1:"4";i:8;s:1:"2";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 3.0";i:5;s:7:"Firefox";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 15.0";i:5;s:6:"Chrome";i:6;s:4:"15.0";i:7;s:2:"15";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 14.0";i:5;s:6:"Chrome";i:6;s:4:"14.0";i:7;s:2:"14";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:17:{i:3;i:4591;i:4;s:11:"Mozilla 1.0";i:5;s:7:"Mozilla";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.0";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 12.12";i:5;s:5:"Opera";i:6;s:5:"12.12";i:7;s:2:"12";i:8;s:2:"12";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 13.0";i:5;s:6:"Chrome";i:6;s:4:"13.0";i:7;s:2:"13";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 5.0";i:5;s:7:"Firefox";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:2:{i:3;i:4784;i:5;s:7:"Mail.Ru";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 11.0";i:5;s:6:"Chrome";i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 10.0";i:5;s:6:"Chrome";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:5:{i:3;i:4645;i:5;s:7:"MedHunt";i:6;s:3:"0.3";i:7;s:1:"0";i:8;s:1:"3";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 12.13";i:5;s:5:"Opera";i:6;s:5:"12.13";i:7;s:2:"12";i:8;s:2:"13";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:4:"2.10";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 12.14";i:5;s:5:"Opera";i:6;s:5:"12.14";i:7;s:2:"12";i:8;s:2:"14";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";i:34;s:8:"2.12.388";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 12.15";i:5;s:5:"Opera";i:6;s:5:"12.15";i:7;s:2:"12";i:8;s:2:"15";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";i:34;s:8:"2.12.388";}', +'a:17:{i:3;i:4591;i:4;s:11:"Mozilla 1.1";i:5;s:7:"Mozilla";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.1";}', +'a:5:{i:3;i:4645;i:5;s:7:"Cynthia";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 3.1";i:5;s:7:"Firefox";i:6;s:3:"3.1";i:7;s:1:"3";i:8;s:1:"1";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:2:{i:3;i:4579;i:5;s:11:"Zao-Crawler";}', +'a:4:{i:3;i:4591;i:4;s:11:"NameProtect";i:5;s:11:"NameProtect";i:28;s:4:"true";}', +'a:2:{i:3;i:4252;i:5;s:11:"SlimBrowser";}', +'a:2:{i:3;i:4845;i:5;s:11:"SITECHECKER";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 4.0";i:5;s:7:"Firefox";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 3.5";i:5;s:7:"Firefox";i:6;s:3:"3.5";i:7;s:1:"3";i:8;s:1:"5";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:2:{i:3;i:4879;i:5;s:11:"SurfControl";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 2.0";i:5;s:7:"Firefox";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:6:{i:3;i:4591;i:4;s:11:"Translators";i:5;s:11:"Translators";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 29.0";i:5;s:6:"Chrome";i:6;s:4:"29.0";i:7;s:2:"29";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:16:{i:3;i:4591;i:4;s:11:"Opera 12.16";i:5;s:5:"Opera";i:6;s:5:"12.16";i:7;s:2:"12";i:8;s:2:"16";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";i:34;s:8:"2.12.388";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 16.0";i:5;s:6:"Chrome";i:6;s:4:"16.0";i:7;s:2:"16";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 12.0";i:5;s:6:"Chrome";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 3.6";i:5;s:7:"Firefox";i:6;s:3:"3.6";i:7;s:1:"3";i:8;s:1:"6";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 21.0";i:5;s:6:"Chrome";i:6;s:4:"21.0";i:7;s:2:"21";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 28.0";i:5;s:6:"Chrome";i:6;s:4:"28.0";i:7;s:2:"28";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 27.0";i:5;s:6:"Chrome";i:6;s:4:"27.0";i:7;s:2:"27";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 26.0";i:5;s:6:"Chrome";i:6;s:4:"26.0";i:7;s:2:"26";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:5615;i:5;s:11:"Lycos-Proxy";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 25.0";i:5;s:6:"Chrome";i:6;s:4:"25.0";i:7;s:2:"25";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 24.0";i:5;s:6:"Chrome";i:6;s:4:"24.0";i:7;s:2:"24";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:5517;i:5;s:11:"ICE_GetFile";}', +'a:17:{i:3;i:4591;i:4;s:11:"Mozilla 1.2";i:5;s:7:"Mozilla";i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.2";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 23.0";i:5;s:6:"Chrome";i:6;s:4:"23.0";i:7;s:2:"23";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Firefox 6.0";i:5;s:7:"Firefox";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:18:{i:3;i:4591;i:4;s:11:"Mozilla 1.4";i:5;s:7:"Mozilla";i:6;s:3:"1.4";i:7;s:1:"1";i:8;s:1:"4";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.4";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 22.0";i:5;s:6:"Chrome";i:6;s:4:"22.0";i:7;s:2:"22";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:5517;i:5;s:11:"HttpSession";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 18.0";i:5;s:6:"Chrome";i:6;s:4:"18.0";i:7;s:2:"18";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:17:{i:3;i:4591;i:4;s:11:"Mozilla 1.3";i:5;s:7:"Mozilla";i:6;s:3:"1.3";i:7;s:1:"1";i:8;s:1:"3";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:5:"Gecko";i:34;s:3:"1.3";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 19.0";i:5;s:6:"Chrome";i:6;s:4:"19.0";i:7;s:2:"19";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"AOL Generic";i:5;s:2:"IE";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"1";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 20.0";i:5;s:6:"Chrome";i:6;s:4:"20.0";i:7;s:2:"20";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:11:"Chrome 17.0";i:5;s:6:"Chrome";i:6;s:4:"17.0";i:7;s:2:"17";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:4645;i:5;s:32:"Safe-t.net Web Filtering Service";}', +'a:2:{i:3;i:4579;i:5;s:9:"OutfoxBot";}', +'a:2:{i:3;i:5517;i:5;s:9:"gnome-vfs";}', +'a:2:{i:3;i:4845;i:5;s:9:"WebPatrol";}', +'a:2:{i:3;i:4784;i:5;s:9:"LapozzBot";}', +'a:1:{i:3;i:5432;}', +'a:2:{i:3;i:5517;i:5;s:10:"RepoMonkey";}', +'a:2:{i:3;i:4879;i:5;s:10:"SmallProxy";}', +'a:2:{i:3;i:5517;i:5;s:10:"ColdFusion";}', +'a:2:{i:3;i:5517;i:5;s:10:"ScoutAbout";}', +'a:2:{i:3;i:4645;i:5;s:6:"shelob";}', 'a:2:{i:3;i:4578;i:5;s:10:"PicaLoader";}', -'a:2:{i:3;i:5523;i:5;s:10:"Web Magnet";}', -'a:2:{i:3;i:5344;i:5;s:9:"NewsGator";}', -'a:2:{i:3;i:4657;i:5;s:9:"WebTrends";}', -'a:2:{i:3;i:4787;i:5;s:9:"Tarantula";}', -'a:2:{i:3;i:4657;i:5;s:10:"WebCollage";}', -'a:5:{i:3;i:4833;i:5;s:7:"MPlayer";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4787;i:5;s:7:"Branzel";}', -'a:2:{i:3;i:4787;i:5;s:9:"Search-10";}', -'a:2:{i:3;i:4787;i:5;s:33:"Indian Language Web Search Engine";}', -'a:2:{i:3;i:4787;i:5;s:9:"LapozzBot";}', -'a:2:{i:3;i:4787;i:5;s:6:"Amfibi";}', -'a:2:{i:3;i:4787;i:5;s:6:"Popdex";}', -'a:2:{i:3;i:4833;i:5;s:10:"RealPlayer";}', -'a:4:{i:3;i:5563;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4645;i:5;s:9:"SeznamBot";}', +'a:4:{i:3;i:5564;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', +'a:4:{i:3;i:5564;i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:5517;i:5;s:25:"ColdFusion Task Scheduler";}', +'a:2:{i:3;i:4645;i:5;s:7:"Sunrise";}', +'a:2:{i:3;i:4845;i:5;s:10:"NetReality";}', +'a:2:{i:3;i:5517;i:5;s:10:"Web Magnet";}', +'a:2:{i:3;i:4436;i:5;s:9:"SlySearch";}', +'a:2:{i:3;i:5517;i:5;s:9:"HTTPFetch";}', +'a:2:{i:3;i:5517;i:5;s:10:"httpclient";}', +'a:2:{i:3;i:5517;i:5;s:9:"BasicHTTP";}', +'a:2:{i:3;i:5517;i:5;s:10:"Ad Muncher";}', +'a:5:{i:3;i:5643;i:5;s:6:"msnbot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:5517;i:5;s:10:"WebWhacker";}', +'a:2:{i:3;i:4578;i:5;s:9:"BitBeamer";}', +'a:2:{i:3;i:4645;i:5;s:9:"WebTrends";}', +'a:5:{i:3;i:5643;i:5;s:6:"msnbot";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', +'a:2:{i:3;i:5517;i:5;s:9:"webbandit";}', +'a:2:{i:3;i:4645;i:5;s:9:"SurveyBot";}', +'a:2:{i:3;i:4784;i:5;s:33:"Indian Language Web Search Engine";}', +'a:2:{i:3;i:5517;i:5;s:9:"SuperHTTP";}', +'a:2:{i:3;i:5517;i:5;s:10:"SiteWinder";}', +'a:2:{i:3;i:4645;i:5;s:10:"WebCollage";}', +'a:2:{i:3;i:5517;i:5;s:9:"CFNetwork";}', +'a:2:{i:3;i:5517;i:5;s:9:"DataCha0s";}', +'a:2:{i:3;i:4879;i:5;s:10:"SilentSurf";}', +'a:2:{i:3;i:4788;i:5;s:9:"pixfinder";}', +'a:2:{i:3;i:4854;i:5;s:9:"LinkAlarm";}', +'a:2:{i:3;i:5511;i:5;s:9:"NG-Search";}', +'a:2:{i:3;i:4784;i:5;s:9:"Tarantula";}', +'a:2:{i:3;i:4586;i:5;s:9:"SimplePie";}', +'a:2:{i:3;i:4854;i:5;s:9:"FindLinks";}', +'a:5:{i:3;i:4586;i:5;s:6:"RssBar";i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";}', +'a:2:{i:3;i:4586;i:5;s:9:"RssBandit";}', +'a:2:{i:3;i:4784;i:5;s:9:"Search-10";}', +'a:2:{i:3;i:4645;i:5;s:6:"Mozdex";}', +'a:5:{i:3;i:4839;i:5;s:7:"MPlayer";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4586;i:5;s:9:"Gregarius";}', +'a:2:{i:3;i:5321;i:5;s:9:"NewsGator";}', +'a:2:{i:3;i:4784;i:5;s:6:"Amfibi";}', +'a:2:{i:3;i:4784;i:5;s:7:"Branzel";}', +'a:2:{i:3;i:4854;i:5;s:10:"LinkWalker";}', +'a:2:{i:3;i:4854;i:5;s:9:"Robozilla";}', +'a:2:{i:3;i:4586;i:5;s:9:"Akregator";}', +'a:2:{i:3;i:4784;i:5;s:8:"RawGrunt";}', +'a:2:{i:3;i:4784;i:5;s:6:"Popdex";}', 'a:2:{i:3;i:5644;i:5;s:11:"W3C Unicorn";}', -'a:2:{i:3;i:4840;i:5;s:9:"WebPatrol";}', -'a:2:{i:3;i:4657;i:5;s:9:"RedCarpet";}', -'a:2:{i:3;i:4840;i:5;s:10:"NetReality";}', -'a:2:{i:3;i:4657;i:5;s:9:"SeznamBot";}', -'a:2:{i:3;i:4657;i:5;s:6:"shelob";}', -'a:4:{i:3;i:5563;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', -'a:2:{i:3;i:4657;i:5;s:9:"SurveyBot";}', -'a:2:{i:3;i:4657;i:5;s:7:"Sunrise";}', -'a:2:{i:3;i:5523;i:5;s:10:"WebWhacker";}', -'a:2:{i:3;i:5523;i:5;s:10:"ScoutAbout";}', -'a:2:{i:3;i:4780;i:5;s:10:"Camcrawler";}', -'a:2:{i:3;i:4870;i:5;s:9:"Anonymous";}', -'a:2:{i:3;i:5523;i:5;s:9:"DataCha0s";}', -'a:2:{i:3;i:5523;i:5;s:25:"ColdFusion Task Scheduler";}', -'a:2:{i:3;i:4780;i:5;s:10:"Mister PIX";}', -'a:2:{i:3;i:4780;i:5;s:9:"pixfinder";}', -'a:2:{i:3;i:4584;i:5;s:9:"Gregarius";}', -'a:5:{i:3;i:5642;i:5;s:6:"msnbot";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:5614;i:5;s:10:"YahooYSMcm";}', -'a:2:{i:3;i:5523;i:5;s:10:"Ad Muncher";}', -'a:5:{i:3;i:5642;i:5;s:6:"msnbot";i:6;s:3:"1.1";i:7;s:1:"1";i:8;s:1:"1";}', -'a:2:{i:3;i:4584;i:5;s:9:"RssBandit";}', -'a:2:{i:3;i:4576;i:5;s:9:"OutfoxBot";}', -'a:2:{i:3;i:5521;i:5;s:9:"NG-Search";}', -'a:2:{i:3;i:5523;i:5;s:9:"gnome-vfs";}', -'a:5:{i:3;i:4584;i:5;s:6:"RssBar";i:6;s:3:"1.2";i:7;s:1:"1";i:8;s:1:"2";}', -'a:2:{i:3;i:4870;i:5;s:10:"SilentSurf";}', -'a:2:{i:3;i:4870;i:5;s:10:"SmallProxy";}', -'a:2:{i:3;i:4584;i:5;s:9:"SimplePie";}', -'a:2:{i:3;i:5523;i:5;s:10:"ColdFusion";}', -'a:2:{i:3;i:4584;i:5;s:9:"Akregator";}', -'a:2:{i:3;i:4841;i:5;s:9:"Robozilla";}', -'a:2:{i:3;i:5523;i:5;s:9:"CFNetwork";}', -'a:2:{i:3;i:5523;i:5;s:9:"HTTPFetch";}', -'a:2:{i:3;i:4841;i:5;s:9:"LinkAlarm";}', -'a:2:{i:3;i:4841;i:5;s:10:"LinkWalker";}', -'a:2:{i:3;i:4841;i:5;s:9:"FindLinks";}', -'a:2:{i:3;i:5063;i:5;s:9:"WordPress";}', -'a:2:{i:3;i:5523;i:5;s:10:"httpclient";}', -'a:2:{i:3;i:5523;i:5;s:9:"BasicHTTP";}', -'a:1:{i:3;i:5633;}', -'a:2:{i:3;i:4787;i:5;s:10:"Eule-Robot";}', -'a:2:{i:3;i:4638;i:5;s:9:"Check&Get";}', -'a:2:{i:3;i:4840;i:5;s:9:"EasyRider";}', -'a:2:{i:3;i:4780;i:5;s:9:"CFNetwork";}', -'a:2:{i:3;i:4580;i:5;s:8:"www4mail";}', -'a:2:{i:3;i:4840;i:5;s:6:"WebMon";}', -'a:14:{i:3;i:4592;i:4;s:10:"Safari 7.0";i:5;s:6:"Safari";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:6:{i:3;i:4592;i:4;s:10:"Word Press";i:5;s:10:"Word Press";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:13:{i:3;i:4592;i:4;s:10:"BlackBerry";i:5;s:10:"BlackBerry";i:9;s:13:"BlackBerry OS";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', -'a:14:{i:3;i:4592;i:4;s:10:"Safari 6.1";i:5;s:6:"Safari";i:6;s:3:"6.1";i:7;s:1:"6";i:8;s:1:"1";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:9:{i:3;i:4592;i:4;s:10:"UC Browser";i:5;s:10:"UC Browser";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";}', -'a:2:{i:3;i:5614;i:5;s:17:"Yahoo! My Browser";}', -'a:15:{i:3;i:4592;i:4;s:10:"Fennec 1.0";i:5;s:6:"Fennec";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', -'a:2:{i:3;i:5523;i:5;s:10:"AutoHotkey";}', -'a:2:{i:3;i:4870;i:5;s:10:"CE-Preload";}', -'a:15:{i:3;i:4592;i:4;s:10:"Chrome 7.0";i:5;s:6:"Chrome";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:10:"Chrome 6.0";i:5;s:6:"Chrome";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', -'a:16:{i:3;i:4592;i:4;s:10:"Opera 8.00";i:5;s:5:"Opera";i:6;s:4:"8.00";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"1.0";}', -'a:16:{i:3;i:4592;i:4;s:10:"Opera 7.00";i:5;s:5:"Opera";i:6;s:4:"7.00";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"1.0";}', -'a:15:{i:3;i:4592;i:4;s:10:"Chrome 8.0";i:5;s:6:"Chrome";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4787;i:5;s:10:"NavissoBot";}', -'a:2:{i:3;i:4787;i:5;s:9:"KRetrieve";}', -'a:16:{i:3;i:4592;i:4;s:10:"Opera 9.00";i:5;s:5:"Opera";i:6;s:4:"9.00";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"2.0";}', -'a:15:{i:3;i:4592;i:4;s:10:"Chrome 9.0";i:5;s:6:"Chrome";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', -'a:14:{i:3;i:4592;i:4;s:10:"Opera 6.00";i:5;s:5:"Opera";i:6;s:4:"6.00";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";}', -'a:14:{i:3;i:4592;i:4;s:10:"Opera 5.00";i:5;s:5:"Opera";i:6;s:4:"5.00";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";}', -'a:15:{i:3;i:4592;i:4;s:10:"Arora 0.10";i:5;s:5:"Arora";i:6;s:4:"0.10";i:7;s:1:"0";i:8;s:2:"10";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:10:"Arora 0.11";i:5;s:5:"Arora";i:6;s:4:"0.11";i:7;s:1:"0";i:8;s:2:"11";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4657;i:5;s:15:"Generic Crawler";}', -'a:5:{i:3;i:5521;i:5;s:6:"Exabot";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', -'a:11:{i:3;i:4592;i:4;s:10:"Opera 2.00";i:5;s:5:"Opera";i:6;s:4:"2.00";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', -'a:11:{i:3;i:4592;i:4;s:9:"Opera 3.0";i:5;s:5:"Opera";i:6;s:4:"3.00";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', -'a:2:{i:3;i:4787;i:5;s:10:"SiteSpider";}', -'a:14:{i:3;i:4592;i:4;s:10:"Opera 4.00";i:5;s:5:"Opera";i:6;s:4:"4.00";i:7;s:1:"4";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";}', -'a:2:{i:3;i:5357;i:5;s:10:"MFHttpScan";}', -'a:6:{i:3;i:5521;i:5;s:6:"Exabot";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:8:"Liberate";}', -'a:2:{i:3;i:4657;i:5;s:10:"Search Fst";}', -'a:8:{i:3;i:4592;i:4;s:10:"ELinks 0.9";i:5;s:6:"ELinks";i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:17;s:4:"true";i:19;s:4:"true";}', -'a:14:{i:3;i:4592;i:4;s:10:"Safari 2.0";i:5;s:6:"Safari";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', -'a:14:{i:3;i:4592;i:4;s:10:"Safari 5.0";i:5;s:6:"Safari";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:16:{i:3;i:4592;i:4;s:10:"Fennec 5.0";i:5;s:6:"Fennec";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', -'a:14:{i:3;i:4592;i:4;s:10:"Safari 5.1";i:5;s:6:"Safari";i:6;s:3:"5.1";i:7;s:1:"5";i:8;s:1:"1";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:16:{i:3;i:4592;i:4;s:10:"Fennec 4.0";i:5;s:6:"Fennec";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', -'a:3:{i:3;i:4584;i:5;s:10:"TouchStone";i:27;s:4:"true";}', -'a:16:{i:3;i:4592;i:4;s:10:"Fennec 7.0";i:5;s:6:"Fennec";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', -'a:14:{i:3;i:4592;i:4;s:10:"Safari 4.0";i:5;s:6:"Safari";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:16:{i:3;i:4592;i:4;s:10:"Fennec 6.0";i:5;s:6:"Fennec";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', -'a:2:{i:3;i:4787;i:5;s:10:"DiamondBot";}', -'a:14:{i:3;i:4592;i:4;s:10:"Safari 6.0";i:5;s:6:"Safari";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:14:{i:3;i:4592;i:4;s:10:"Safari 3.0";i:5;s:6:"Safari";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4578;i:5;s:4:"lftp";}', +'a:2:{i:3;i:4645;i:5;s:7:"KBeeBot";}', +'a:2:{i:3;i:4788;i:5;s:10:"Mister PIX";}', +'a:2:{i:3;i:4645;i:5;s:9:"RedCarpet";}', +'a:2:{i:3;i:4879;i:5;s:9:"Anonymous";}', +'a:2:{i:3;i:5612;i:5;s:10:"YahooYSMcm";}', +'a:2:{i:3;i:4839;i:5;s:10:"RealPlayer";}', +'a:2:{i:3;i:5084;i:5;s:9:"WordPress";}', +'a:2:{i:3;i:4788;i:5;s:10:"Camcrawler";}', +'a:2:{i:3;i:4845;i:5;s:9:"EasyRider";}', +'a:2:{i:3;i:4646;i:5;s:9:"Check&Get";}', +'a:1:{i:3;i:5626;}', +'a:2:{i:3;i:4784;i:5;s:10:"Eule-Robot";}', +'a:2:{i:3;i:4576;i:5;s:8:"www4mail";}', +'a:2:{i:3;i:4788;i:5;s:9:"CFNetwork";}', +'a:2:{i:3;i:4845;i:5;s:6:"WebMon";}', +'a:15:{i:3;i:4591;i:4;s:10:"Chrome 6.0";i:5;s:6:"Chrome";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:10:"Chrome 7.0";i:5;s:6:"Chrome";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:10:"Chrome 9.0";i:5;s:6:"Chrome";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', +'a:14:{i:3;i:4591;i:4;s:10:"Opera 4.00";i:5;s:5:"Opera";i:6;s:4:"4.00";i:7;s:1:"4";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";}', +'a:2:{i:3;i:4784;i:5;s:10:"DiamondBot";}', +'a:14:{i:3;i:4591;i:4;s:10:"Opera 5.00";i:5;s:5:"Opera";i:6;s:4:"5.00";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";}', +'a:2:{i:3;i:4784;i:5;s:10:"SiteSpider";}', +'a:15:{i:3;i:4591;i:4;s:10:"Chrome 8.0";i:5;s:6:"Chrome";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:4645;i:5;s:15:"Generic Crawler";}', +'a:16:{i:3;i:4591;i:4;s:10:"Opera 9.00";i:5;s:5:"Opera";i:6;s:4:"9.00";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"2.0";}', +'a:6:{i:3;i:4591;i:4;s:10:"Word Press";i:5;s:10:"Word Press";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:16:{i:3;i:4591;i:4;s:10:"Opera 8.00";i:5;s:5:"Opera";i:6;s:4:"8.00";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"1.0";}', +'a:16:{i:3;i:4591;i:4;s:10:"Opera 7.00";i:5;s:5:"Opera";i:6;s:4:"7.00";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"Presto";i:34;s:3:"1.0";}', +'a:3:{i:3;i:4586;i:5;s:10:"TouchStone";i:27;s:4:"true";}', +'a:8:{i:3;i:4591;i:4;s:10:"ELinks 0.9";i:5;s:6:"ELinks";i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:17;s:4:"true";i:19;s:4:"true";}', +'a:14:{i:3;i:4591;i:4;s:10:"Opera 6.00";i:5;s:5:"Opera";i:6;s:4:"6.00";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";}', +'a:14:{i:3;i:4591;i:4;s:10:"Safari 6.0";i:5;s:6:"Safari";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:5517;i:5;s:10:"AutoHotkey";}', +'a:15:{i:3;i:4591;i:4;s:10:"Arora 0.11";i:5;s:5:"Arora";i:6;s:4:"0.11";i:7;s:1:"0";i:8;s:2:"11";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:16:{i:3;i:4591;i:4;s:10:"Fennec 6.0";i:5;s:6:"Fennec";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', +'a:2:{i:3;i:4879;i:5;s:10:"CE-Preload";}', +'a:16:{i:3;i:4591;i:4;s:10:"Fennec 5.0";i:5;s:6:"Fennec";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', 'a:2:{i:3;i:4578;i:5;s:10:"P3P Client";}', -'a:2:{i:3;i:4578;i:5;s:9:"NetSucker";}', -'a:2:{i:3;i:4787;i:5;s:8:"Tkensaku";}', -'a:2:{i:3;i:4657;i:5;s:22:"Europe Internet Portal";}', -'a:2:{i:3;i:4787;i:5;s:8:"YodaoBot";}', -'a:2:{i:3;i:4787;i:5;s:8:"ZipppBot";}', -'a:2:{i:3;i:4657;i:5;s:8:"Omea Pro";}', -'a:2:{i:3;i:5523;i:5;s:9:"WebSauger";}', -'a:2:{i:3;i:4580;i:5;s:9:"EMailWolf";}', -'a:2:{i:3;i:4870;i:5;s:9:"Anonymous";}', -'a:2:{i:3;i:4657;i:5;s:6:"Drupal";}', -'a:2:{i:3;i:5523;i:5;s:8:"PageNest";}', -'a:2:{i:3;i:4578;i:5;s:9:"NetPumper";}', -'a:2:{i:3;i:4787;i:5;s:19:"Swiss Search Engine";}', -'a:2:{i:3;i:5523;i:5;s:8:"HttpUnit";}', -'a:5:{i:3;i:4787;i:5;s:5:"Sagoo";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4787;i:5;s:8:"miniRank";}', -'a:2:{i:3;i:4787;i:5;s:9:"Linknzbot";}', -'a:4:{i:3;i:5611;i:6;s:3:"0.8";i:7;s:1:"0";i:8;s:1:"8";}', -'a:4:{i:3;i:5611;i:6;s:3:"0.7";i:7;s:1:"0";i:8;s:1:"7";}', -'a:2:{i:3;i:4787;i:5;s:8:"iSEEKbot";}', -'a:4:{i:3;i:5611;i:6;s:3:"0.6";i:7;s:1:"0";i:8;s:1:"6";}', -'a:2:{i:3;i:5330;i:5;s:17:"DNS Group Crawler";}', -'a:2:{i:3;i:4540;i:5;s:8:"BitComet";}', -'a:2:{i:3;i:4657;i:5;s:8:"BilgiBot";}', -'a:2:{i:3;i:4841;i:5;s:8:"LinkScan";}', -'a:2:{i:3;i:5523;i:5;s:7:"InetURL";}', +'a:16:{i:3;i:4591;i:4;s:10:"Fennec 7.0";i:5;s:6:"Fennec";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', +'a:2:{i:3;i:4784;i:5;s:9:"KRetrieve";}', +'a:16:{i:3;i:4591;i:4;s:10:"Fennec 4.0";i:5;s:6:"Fennec";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', +'a:2:{i:3;i:4578;i:5;s:4:"lftp";}', +'a:14:{i:3;i:4591;i:4;s:10:"Safari 5.1";i:5;s:6:"Safari";i:6;s:3:"5.1";i:7;s:1:"5";i:8;s:1:"1";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:14:{i:3;i:4591;i:4;s:10:"Safari 6.1";i:5;s:6:"Safari";i:6;s:3:"6.1";i:7;s:1:"6";i:8;s:1:"1";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:14:{i:3;i:4591;i:4;s:10:"Safari 7.0";i:5;s:6:"Safari";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:10:"Fennec 1.0";i:5;s:6:"Fennec";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";i:34;s:3:"1.9";}', +'a:14:{i:3;i:4591;i:4;s:10:"Safari 5.0";i:5;s:6:"Safari";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:14:{i:3;i:4591;i:4;s:10:"Safari 4.0";i:5;s:6:"Safari";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:11:{i:3;i:4591;i:4;s:10:"Opera 2.00";i:5;s:5:"Opera";i:6;s:4:"2.00";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:10:"Arora 0.10";i:5;s:5:"Arora";i:6;s:4:"0.10";i:7;s:1:"0";i:8;s:2:"10";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:6:{i:3;i:5511;i:5;s:6:"Exabot";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:9;s:8:"Liberate";}', +'a:14:{i:3;i:4591;i:4;s:10:"Safari 2.0";i:5;s:6:"Safari";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:5324;i:5;s:10:"MFHttpScan";}', +'a:2:{i:3;i:4645;i:5;s:10:"Search Fst";}', +'a:14:{i:3;i:4591;i:4;s:10:"Safari 3.0";i:5;s:6:"Safari";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:4784;i:5;s:10:"NavissoBot";}', +'a:5:{i:3;i:5511;i:5;s:6:"Exabot";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', +'a:13:{i:3;i:4591;i:4;s:10:"BlackBerry";i:5;s:10:"BlackBerry";i:9;s:13:"BlackBerry OS";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";i:31;s:10:"Blackberry";i:32;s:3:"RIM";}', +'a:9:{i:3;i:4591;i:4;s:10:"UC Browser";i:5;s:10:"UC Browser";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";}', +'a:2:{i:3;i:5612;i:5;s:17:"Yahoo! My Browser";}', +'a:11:{i:3;i:4591;i:4;s:9:"Opera 3.0";i:5;s:5:"Opera";i:6;s:4:"3.00";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";}', +'a:2:{i:3;i:4784;i:5;s:7:"antibot";}', +'a:2:{i:3;i:4784;i:5;s:19:"Swiss Search Engine";}', +'a:2:{i:3;i:4539;i:5;s:8:"BitComet";}', +'a:2:{i:3;i:4784;i:5;s:8:"miniRank";}', +'a:2:{i:3;i:4784;i:5;s:9:"Linknzbot";}', +'a:2:{i:3;i:4784;i:5;s:8:"iSEEKbot";}', +'a:5:{i:3;i:4784;i:5;s:5:"Sagoo";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4784;i:5;s:8:"Tkensaku";}', +'a:2:{i:3;i:4784;i:5;s:8:"ZipppBot";}', +'a:2:{i:3;i:4539;i:5;s:8:"KTorrent";}', +'a:2:{i:3;i:4784;i:5;s:8:"YodaoBot";}', +'a:5:{i:3;i:4845;i:5;s:8:"Webcheck";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:2:{i:3;i:4645;i:5;s:8:"VengaBot";}', +'a:2:{i:3;i:4592;i:5;s:9:"Twitturly";}', 'a:2:{i:3;i:4578;i:5;s:8:"SuperBot";}', -'a:2:{i:3;i:4787;i:5;s:7:"antibot";}', -'a:2:{i:3;i:4841;i:5;s:8:"WorQmada";}', -'a:2:{i:3;i:4657;i:5;s:8:"VengaBot";}', -'a:2:{i:3;i:5523;i:5;s:8:"URL2File";}', -'a:4:{i:3;i:5602;i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";}', -'a:2:{i:3;i:4540;i:5;s:8:"uTorrent";}', -'a:2:{i:3;i:4540;i:5;s:8:"rtorrent";}', -'a:2:{i:3;i:5523;i:5;s:8:"Sherlock";}', -'a:2:{i:3;i:4578;i:5;s:8:"GetRight";}', -'a:2:{i:3;i:5523;i:5;s:9:"WebCopier";}', -'a:2:{i:3;i:4589;i:5;s:9:"Twitturly";}', -'a:2:{i:3;i:4657;i:5;s:8:"Pajaczek";}', -'a:2:{i:3;i:5523;i:5;s:9:"WebReaper";}', -'a:2:{i:3;i:5523;i:5;s:8:"WebFetch";}', -'a:5:{i:3;i:4840;i:5;s:8:"Webcheck";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:4:{i:3;i:5602;i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";}', -'a:2:{i:3;i:4540;i:5;s:8:"KTorrent";}', +'a:2:{i:3;i:4576;i:5;s:9:"EMailWolf";}', +'a:2:{i:3;i:5517;i:5;s:9:"WebSauger";}', +'a:2:{i:3;i:4645;i:5;s:6:"Drupal";}', +'a:2:{i:3;i:4645;i:5;s:22:"Europe Internet Portal";}', +'a:2:{i:3;i:5517;i:5;s:8:"PageNest";}', +'a:2:{i:3;i:4579;i:5;s:8:"HooWWWer";}', +'a:2:{i:3;i:4645;i:5;s:8:"Omea Pro";}', +'a:2:{i:3;i:4578;i:5;s:9:"NetPumper";}', +'a:2:{i:3;i:4879;i:5;s:9:"Anonymous";}', 'a:2:{i:3;i:5644;i:5;s:8:"W3CRobot";}', +'a:2:{i:3;i:5321;i:5;s:8:"NewsFire";}', +'a:2:{i:3;i:4539;i:5;s:8:"rtorrent";}', +'a:2:{i:3;i:4854;i:5;s:8:"WorQmada";}', +'a:2:{i:3;i:4854;i:5;s:8:"LinkScan";}', +'a:2:{i:3;i:4645;i:5;s:8:"Pajaczek";}', +'a:2:{i:3;i:4578;i:5;s:9:"NetSucker";}', +'a:2:{i:3;i:4645;i:5;s:8:"BilgiBot";}', +'a:2:{i:3;i:4586;i:5;s:8:"RSS Menu";}', +'a:2:{i:3;i:5517;i:5;s:8:"HttpUnit";}', +'a:2:{i:3;i:4539;i:5;s:8:"uTorrent";}', +'a:2:{i:3;i:5517;i:5;s:8:"Sherlock";}', +'a:4:{i:3;i:5603;i:6;s:3:"0.8";i:7;s:1:"0";i:8;s:1:"8";}', +'a:4:{i:3;i:5603;i:6;s:3:"0.7";i:7;s:1:"0";i:8;s:1:"7";}', +'a:4:{i:3;i:5603;i:6;s:3:"0.6";i:7;s:1:"0";i:8;s:1:"6";}', +'a:4:{i:3;i:5606;i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";}', +'a:4:{i:3;i:5606;i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";}', +'a:2:{i:3;i:5517;i:5;s:9:"WebReaper";}', +'a:2:{i:3;i:5517;i:5;s:7:"InetURL";}', +'a:2:{i:3;i:5517;i:5;s:8:"URL2File";}', +'a:2:{i:3;i:5517;i:5;s:9:"WebCopier";}', 'a:2:{i:3;i:4578;i:5;s:8:"GetSmart";}', -'a:2:{i:3;i:4576;i:5;s:8:"HooWWWer";}', -'a:2:{i:3;i:4584;i:5;s:8:"RSS Menu";}', -'a:2:{i:3;i:5344;i:5;s:8:"NewsFire";}', -'a:2:{i:3;i:4584;i:5;s:8:"LinkLint";}', -'a:1:{i:3;i:4194;}', -'a:2:{i:3;i:4658;i:5;s:8:"Heritrix";}', -'a:2:{i:3;i:4576;i:5;s:24:"Generic Research Crawler";}', -'a:12:{i:3;i:4592;i:4;s:9:"Pocket PC";i:5;s:9:"Pocket PC";i:9;s:5:"WinCE";i:11;s:10:"Windows CE";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:15:{i:3;i:4592;i:4;s:9:"Arora 0.8";i:5;s:5:"Arora";i:6;s:3:"0.8";i:7;s:1:"0";i:8;s:1:"8";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:12:{i:3;i:4592;i:4;s:9:"Iceweasel";i:5;s:9:"Iceweasel";i:9;s:6:"Debian";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:9:"Flock 2.0";i:5;s:5:"Flock";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:9:"Flock 3.0";i:5;s:5:"Flock";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 27.0";i:5;s:4:"Iron";i:6;s:4:"27.0";i:7;s:2:"27";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4840;i:5;s:9:"Net Probe";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 16.0";i:5;s:4:"Iron";i:6;s:4:"16.0";i:7;s:2:"16";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 14.0";i:5;s:4:"Iron";i:6;s:4:"14.0";i:7;s:2:"14";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 15.0";i:5;s:4:"Iron";i:6;s:4:"15.0";i:7;s:2:"15";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:5523;i:5;s:9:"WebRipper";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 13.0";i:5;s:4:"Iron";i:6;s:4:"13.0";i:7;s:2:"13";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:4:{i:3;i:4592;i:4;s:9:"DNS Tools";i:5;s:9:"DNS Tools";i:28;s:4:"true";}', -'a:4:{i:3;i:5611;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 10.0";i:5;s:4:"Iron";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 11.0";i:5;s:4:"Iron";i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 12.0";i:5;s:4:"Iron";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:4578;i:5;s:8:"GetRight";}', +'a:2:{i:3;i:5517;i:5;s:8:"WebFetch";}', +'a:2:{i:3;i:5341;i:5;s:17:"DNS Group Crawler";}', +'a:2:{i:3;i:4579;i:5;s:24:"Generic Research Crawler";}', +'a:2:{i:3;i:4648;i:5;s:8:"Heritrix";}', +'a:2:{i:3;i:4586;i:5;s:8:"LinkLint";}', +'a:1:{i:3;i:4197;}', +'a:2:{i:3;i:4645;i:5;s:9:"cisco-IOS";}', +'a:2:{i:3;i:4845;i:5;s:9:"Net Probe";}', +'a:2:{i:3;i:4879;i:5;s:5:"Squid";}', +'a:5:{i:3;i:4591;i:4;s:9:"NewsGator";i:5;s:9:"NewsGator";i:27;s:4:"true";i:28;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 11.0";i:5;s:4:"Iron";i:6;s:4:"11.0";i:7;s:2:"11";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:5517;i:5;s:9:"WebRipper";}', +'a:4:{i:3;i:4591;i:4;s:9:"Microsoft";i:5;s:9:"Microsoft";i:28;s:4:"true";}', +'a:2:{i:3;i:4784;i:5;s:9:"Deepindex";}', +'a:12:{i:3;i:4591;i:4;s:9:"Iceweasel";i:5;s:9:"Iceweasel";i:9;s:6:"Debian";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 10.0";i:5;s:4:"Iron";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 18.0";i:5;s:4:"Iron";i:6;s:4:"18.0";i:7;s:2:"18";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 12.0";i:5;s:4:"Iron";i:6;s:4:"12.0";i:7;s:2:"12";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:12:{i:3;i:4591;i:4;s:9:"Pocket PC";i:5;s:9:"Pocket PC";i:9;s:5:"WinCE";i:11;s:10:"Windows CE";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:2:{i:3;i:4784;i:5;s:9:"TMCrawler";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 31.0";i:5;s:4:"Iron";i:6;s:4:"31.0";i:7;s:2:"31";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 32.0";i:5;s:4:"Iron";i:6;s:4:"32.0";i:7;s:2:"32";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:6:{i:3;i:4591;i:4;s:9:"Entireweb";i:5;s:9:"Entireweb";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:9:"Arora 0.8";i:5;s:5:"Arora";i:6;s:3:"0.8";i:7;s:1:"0";i:8;s:1:"8";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Arora 0.9";i:5;s:5:"Arora";i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Flock 3.0";i:5;s:5:"Flock";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:5:"Gecko";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 13.0";i:5;s:4:"Iron";i:6;s:4:"13.0";i:7;s:2:"13";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', 'a:2:{i:3;i:4578;i:5;s:9:"AutoMate5";}', -'a:6:{i:3;i:4592;i:4;s:9:"Entireweb";i:5;s:9:"Entireweb";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 23.0";i:5;s:4:"Iron";i:6;s:4:"23.0";i:7;s:2:"23";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 17.0";i:5;s:4:"Iron";i:6;s:4:"17.0";i:7;s:2:"17";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 19.0";i:5;s:4:"Iron";i:6;s:4:"19.0";i:7;s:2:"19";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 25.0";i:5;s:4:"Iron";i:6;s:4:"25.0";i:7;s:2:"25";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 32.0";i:5;s:4:"Iron";i:6;s:4:"32.0";i:7;s:2:"32";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 20.0";i:5;s:4:"Iron";i:6;s:4:"20.0";i:7;s:2:"20";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4787;i:5;s:9:"TMCrawler";}', -'a:5:{i:3;i:4592;i:4;s:9:"NewsGator";i:5;s:9:"NewsGator";i:27;s:4:"true";i:28;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 26.0";i:5;s:4:"Iron";i:6;s:4:"26.0";i:7;s:2:"26";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 21.0";i:5;s:4:"Iron";i:6;s:4:"21.0";i:7;s:2:"21";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 22.0";i:5;s:4:"Iron";i:6;s:4:"22.0";i:7;s:2:"22";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 31.0";i:5;s:4:"Iron";i:6;s:4:"31.0";i:7;s:2:"31";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 24.0";i:5;s:4:"Iron";i:6;s:4:"24.0";i:7;s:2:"24";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 28.0";i:5;s:4:"Iron";i:6;s:4:"28.0";i:7;s:2:"28";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Flock 1.0";i:5;s:5:"Flock";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:2:{i:3;i:4870;i:5;s:5:"Squid";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 18.0";i:5;s:4:"Iron";i:6;s:4:"18.0";i:7;s:2:"18";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4657;i:5;s:9:"cisco-IOS";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 29.0";i:5;s:4:"Iron";i:6;s:4:"29.0";i:7;s:2:"29";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4787;i:5;s:9:"Deepindex";}', -'a:4:{i:3;i:4592;i:4;s:9:"Microsoft";i:5;s:9:"Microsoft";i:28;s:4:"true";}', -'a:15:{i:3;i:4592;i:4;s:9:"Iron 30.0";i:5;s:4:"Iron";i:6;s:4:"30.0";i:7;s:2:"30";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:9:"Arora 0.9";i:5;s:5:"Arora";i:6;s:3:"0.9";i:7;s:1:"0";i:8;s:1:"9";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:8:{i:3;i:4592;i:4;s:9:"FrontPage";i:5;s:9:"FrontPage";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', -'a:2:{i:3;i:4787;i:5;s:7:"ASPSeek";}', -'a:5:{i:3;i:5602;i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:29;s:1:"2";}', -'a:4:{i:3;i:5626;i:6;s:3:"2.6";i:7;s:1:"2";i:8;s:1:"6";}', -'a:4:{i:3;i:5626;i:6;s:3:"2.5";i:7;s:1:"2";i:8;s:1:"5";}', -'a:4:{i:3;i:5626;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";}', -'a:4:{i:3;i:5626;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";}', -'a:1:{i:3;i:5633;}', +'a:15:{i:3;i:4591;i:4;s:9:"Flock 2.0";i:5;s:5:"Flock";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:4:{i:3;i:4591;i:4;s:9:"DNS Tools";i:5;s:9:"DNS Tools";i:28;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:9:"Flock 1.0";i:5;s:5:"Flock";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:4:{i:3;i:5603;i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";}', +'a:8:{i:3;i:4591;i:4;s:9:"FrontPage";i:5;s:9:"FrontPage";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 30.0";i:5;s:4:"Iron";i:6;s:4:"30.0";i:7;s:2:"30";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 28.0";i:5;s:4:"Iron";i:6;s:4:"28.0";i:7;s:2:"28";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 29.0";i:5;s:4:"Iron";i:6;s:4:"29.0";i:7;s:2:"29";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 27.0";i:5;s:4:"Iron";i:6;s:4:"27.0";i:7;s:2:"27";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 14.0";i:5;s:4:"Iron";i:6;s:4:"14.0";i:7;s:2:"14";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 15.0";i:5;s:4:"Iron";i:6;s:4:"15.0";i:7;s:2:"15";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 16.0";i:5;s:4:"Iron";i:6;s:4:"16.0";i:7;s:2:"16";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 17.0";i:5;s:4:"Iron";i:6;s:4:"17.0";i:7;s:2:"17";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 19.0";i:5;s:4:"Iron";i:6;s:4:"19.0";i:7;s:2:"19";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 20.0";i:5;s:4:"Iron";i:6;s:4:"20.0";i:7;s:2:"20";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 21.0";i:5;s:4:"Iron";i:6;s:4:"21.0";i:7;s:2:"21";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 22.0";i:5;s:4:"Iron";i:6;s:4:"22.0";i:7;s:2:"22";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 23.0";i:5;s:4:"Iron";i:6;s:4:"23.0";i:7;s:2:"23";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 24.0";i:5;s:4:"Iron";i:6;s:4:"24.0";i:7;s:2:"24";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 25.0";i:5;s:4:"Iron";i:6;s:4:"25.0";i:7;s:2:"25";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:9:"Iron 26.0";i:5;s:4:"Iron";i:6;s:4:"26.0";i:7;s:2:"26";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:4645;i:5;s:8:"SpankBot";}', +'a:1:{i:3;i:5626;}', +'a:2:{i:3;i:4784;i:5;s:7:"ASPSeek";}', 'a:2:{i:3;i:5632;i:5;s:7:"Snapbot";}', -'a:2:{i:3;i:4657;i:5;s:7:"eventax";}', -'a:4:{i:3;i:5626;i:6;s:3:"2.4";i:7;s:1:"2";i:8;s:1:"4";}', -'a:2:{i:3;i:5444;i:15;s:5:"false";}', -'a:1:{i:3;i:4043;}', -'a:4:{i:3;i:5602;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', -'a:4:{i:3;i:5602;i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";}', -'a:4:{i:3;i:5626;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";}', -'a:2:{i:3;i:4657;i:5;s:8:"SpankBot";}', -'a:2:{i:3;i:4787;i:5;s:13:"Scrub The Web";}', -'a:2:{i:3;i:5344;i:5;s:8:"MarsEdit";}', -'a:2:{i:3;i:5357;i:5;s:8:"MS Proxy";}', -'a:2:{i:3;i:4540;i:5;s:8:"MediaGet";}', -'a:2:{i:3;i:4576;i:5;s:8:"woriobot";}', -'a:2:{i:3;i:4580;i:5;s:31:"Mike Elliott\'s E-Mail Harvester";}', -'a:2:{i:3;i:4841;i:5;s:7:"Bookdog";}', -'a:2:{i:3;i:4841;i:5;s:8:"Checkbot";}', -'a:2:{i:3;i:4787;i:5;s:7:"WebCorp";}', -'a:2:{i:3;i:4787;i:5;s:8:"Updated!";}', -'a:2:{i:3;i:4787;i:5;s:7:"WISEbot";}', -'a:2:{i:3;i:5523;i:5;s:7:"WebAuto";}', -'a:2:{i:3;i:4841;i:5;s:7:"URLBase";}', -'a:2:{i:3;i:4576;i:5;s:7:"Steeler";}', -'a:2:{i:3;i:4638;i:5;s:7:"iGetter";}', -'a:2:{i:3;i:4870;i:5;s:7:"Privoxy";}', -'a:2:{i:3;i:5523;i:5;s:7:"Harvest";}', -'a:2:{i:3;i:4578;i:5;s:7:"Vegas95";}', -'a:2:{i:3;i:4580;i:5;s:7:"Chilkat";}', -'a:2:{i:3;i:5615;i:5;s:4:"LOOQ";}', -'a:2:{i:3;i:4589;i:5;s:7:"WinkBot";}', -'a:2:{i:3;i:5523;i:5;s:7:"httperf";}', -'a:2:{i:3;i:4638;i:5;s:8:"Teleport";}', -'a:3:{i:3;i:4721;i:5;s:7:"Weblide";i:13;s:4:"true";}', -'a:2:{i:3;i:4580;i:5;s:8:"WebMiner";}', -'a:2:{i:3;i:4434;i:5;s:13:"Brand Protect";}', +'a:2:{i:3;i:4645;i:5;s:7:"eventax";}', +'a:2:{i:3;i:4784;i:5;s:8:"SygolBot";}', +'a:2:{i:3;i:4784;i:5;s:4:"Faxo";}', +'a:2:{i:3;i:5517;i:5;s:8:"LeechGet";}', +'a:2:{i:3;i:4854;i:5;s:7:"SiteBar";}', +'a:2:{i:3;i:4592;i:5;s:7:"WinkBot";}', +'a:2:{i:3;i:5517;i:5;s:7:"WebAuto";}', 'a:2:{i:3;i:4578;i:5;s:7:"GoZilla";}', -'a:2:{i:3;i:4787;i:5;s:4:"Zibb";}', -'a:2:{i:3;i:4787;i:5;s:8:"SygolBot";}', -'a:2:{i:3;i:4578;i:5;s:8:"PageDown";}', -'a:2:{i:3;i:4578;i:5;s:8:"shareaza";}', -'a:2:{i:3;i:5523;i:5;s:7:"OCN-SOC";}', -'a:2:{i:3;i:4787;i:5;s:7:"Sproose";}', -'a:2:{i:3;i:4578;i:5;s:6:"EasyDL";}', 'a:2:{i:3;i:4578;i:5;s:7:"Gozilla";}', -'a:2:{i:3;i:4787;i:5;s:7:"Seekbot";}', +'a:2:{i:3;i:5517;i:5;s:8:"PageLoad";}', +'a:2:{i:3;i:5517;i:5;s:8:"OSSProxy";}', +'a:2:{i:3;i:5517;i:5;s:7:"OCN-SOC";}', +'a:2:{i:3;i:4578;i:5;s:8:"PageDown";}', 'a:2:{i:3;i:4578;i:5;s:8:"Prozilla";}', -'a:2:{i:3;i:5523;i:5;s:8:"OSSProxy";}', -'a:2:{i:3;i:4787;i:5;s:7:"Hotzonu";}', -'a:2:{i:3;i:5523;i:5;s:7:"INetURL";}', -'a:2:{i:3;i:4841;i:5;s:7:"SiteBar";}', -'a:2:{i:3;i:4787;i:5;s:4:"Faxo";}', -'a:2:{i:3;i:4787;i:5;s:7:"Filangy";}', -'a:2:{i:3;i:4787;i:5;s:7:"Gaisbot";}', -'a:2:{i:3;i:5523;i:5;s:8:"PageLoad";}', -'a:2:{i:3;i:5523;i:5;s:8:"LeechGet";}', -'a:2:{i:3;i:4787;i:5;s:10:"GenieKnows";}', -'a:2:{i:3;i:4787;i:5;s:7:"Szukacz";}', -'a:2:{i:3;i:4840;i:5;s:7:"Pingdom";}', -'a:2:{i:3;i:4841;i:5;s:7:"Linkman";}', -'a:2:{i:3;i:5523;i:5;s:8:"IP*Works";}', -'a:2:{i:3;i:4638;i:5;s:7:"HTTrack";}', -'a:2:{i:3;i:4576;i:5;s:7:"Polybot";}', -'a:1:{i:3;i:5607;}', -'a:2:{i:3;i:4584;i:5;s:8:"Particls";}', +'a:2:{i:3;i:4578;i:5;s:6:"EasyDL";}', +'a:2:{i:3;i:4578;i:5;s:8:"shareaza";}', +'a:2:{i:3;i:4578;i:5;s:7:"Vegas95";}', +'a:2:{i:3;i:4784;i:5;s:7:"Filangy";}', +'a:2:{i:3;i:5517;i:5;s:7:"INetURL";}', +'a:2:{i:3;i:5609;i:5;s:4:"LOOQ";}', +'a:2:{i:3;i:4576;i:5;s:7:"Chilkat";}', +'a:2:{i:3;i:5517;i:5;s:7:"httperf";}', +'a:2:{i:3;i:5517;i:5;s:7:"Harvest";}', +'a:2:{i:3;i:4576;i:5;s:31:"Mike Elliott\'s E-Mail Harvester";}', +'a:2:{i:3;i:4576;i:5;s:8:"WebMiner";}', +'a:2:{i:3;i:4579;i:5;s:8:"woriobot";}', +'a:2:{i:3;i:4579;i:5;s:7:"Steeler";}', +'a:3:{i:3;i:4700;i:5;s:7:"Weblide";i:13;s:4:"true";}', +'a:2:{i:3;i:4879;i:5;s:7:"Privoxy";}', +'a:2:{i:3;i:4646;i:5;s:8:"Teleport";}', +'a:2:{i:3;i:4646;i:5;s:7:"iGetter";}', +'a:2:{i:3;i:5324;i:5;s:8:"MS Proxy";}', +'a:2:{i:3;i:4854;i:5;s:7:"Bookdog";}', +'a:2:{i:3;i:4854;i:5;s:8:"Checkbot";}', +'a:2:{i:3;i:5321;i:5;s:8:"MarsEdit";}', +'a:2:{i:3;i:4436;i:5;s:13:"Brand Protect";}', +'a:2:{i:3;i:4854;i:5;s:7:"URLBase";}', +'a:2:{i:3;i:4784;i:5;s:7:"Seekbot";}', +'a:2:{i:3;i:4784;i:5;s:7:"WebCorp";}', +'a:5:{i:3;i:5606;i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:29;s:1:"2";}', +'a:2:{i:3;i:4784;i:5;s:7:"Szukacz";}', +'a:4:{i:3;i:5606;i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";}', +'a:4:{i:3;i:5627;i:6;s:3:"2.3";i:7;s:1:"2";i:8;s:1:"3";}', +'a:2:{i:3;i:4784;i:5;s:7:"Sproose";}', +'a:4:{i:3;i:5627;i:6;s:3:"2.4";i:7;s:1:"2";i:8;s:1:"4";}', +'a:2:{i:3;i:4784;i:5;s:13:"Scrub The Web";}', +'a:2:{i:3;i:4784;i:5;s:7:"WISEbot";}', +'a:4:{i:3;i:5627;i:6;s:3:"2.5";i:7;s:1:"2";i:8;s:1:"5";}', +'a:4:{i:3;i:5627;i:6;s:3:"2.6";i:7;s:1:"2";i:8;s:1:"6";}', +'a:4:{i:3;i:5627;i:6;s:3:"2.7";i:7;s:1:"2";i:8;s:1:"7";}', +'a:4:{i:3;i:5627;i:6;s:3:"2.8";i:7;s:1:"2";i:8;s:1:"8";}', +'a:2:{i:3;i:4784;i:5;s:7:"Hotzonu";}', +'a:2:{i:3;i:4784;i:5;s:10:"GenieKnows";}', +'a:2:{i:3;i:4784;i:5;s:7:"Gaisbot";}', +'a:4:{i:3;i:5606;i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";}', +'a:2:{i:3;i:4784;i:5;s:8:"Updated!";}', +'a:1:{i:3;i:4045;}', +'a:2:{i:3;i:4539;i:5;s:8:"MediaGet";}', +'a:2:{i:3;i:5450;i:15;s:5:"false";}', +'a:2:{i:3;i:4784;i:5;s:4:"Zibb";}', +'a:2:{i:3;i:5517;i:5;s:8:"IP*Works";}', +'a:2:{i:3;i:4845;i:5;s:7:"Pingdom";}', +'a:2:{i:3;i:4579;i:5;s:7:"Polybot";}', +'a:2:{i:3;i:4854;i:5;s:7:"Linkman";}', +'a:2:{i:3;i:4646;i:5;s:7:"HTTrack";}', +'a:1:{i:3;i:5610;}', +'a:15:{i:3;i:4591;i:4;s:8:"Iron 7.0";i:5;s:4:"Iron";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:8:{i:3;i:4591;i:4;s:8:"Emacs/W3";i:5;s:8:"Emacs/W3";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:7:"default";}', +'a:15:{i:3;i:4591;i:4;s:8:"Iron 6.0";i:5;s:4:"Iron";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:8:"Iron 8.0";i:5;s:4:"Iron";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:15:{i:3;i:4591;i:4;s:12:"PaleMoon 3.6";i:5;s:8:"PaleMoon";i:6;s:3:"3.6";i:7;s:1:"3";i:8;s:1:"6";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', +'a:2:{i:3;i:4579;i:5;s:8:"Lachesis";}', +'a:12:{i:3;i:4591;i:4;s:8:"IEMobile";i:5;s:8:"IEMobile";i:9;s:5:"WinCE";i:11;s:10:"Windows CE";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";}', +'a:11:{i:3;i:4591;i:4;s:8:"GoogleTV";i:5;s:8:"GoogleTV";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:31;s:8:"GoogleTV";i:32;s:6:"Google";}', +'a:2:{i:3;i:5119;i:5;s:8:"WebTrans";}', +'a:4:{i:3;i:4591;i:4;s:8:"Netcraft";i:5;s:8:"Netcraft";i:28;s:4:"true";}', +'a:6:{i:3;i:4591;i:4;s:8:"Facebook";i:5;s:8:"Facebook";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:8:"Moozilla";}', +'a:2:{i:3;i:4845;i:5;s:8:"URLCHECK";}', +'a:2:{i:3;i:5517;i:5;s:8:"HTTPGrab";}', +'a:8:{i:3;i:4591;i:4;s:8:"fantomas";i:5;s:8:"fantomas";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:8:"LeechFTP";}', +'a:2:{i:3;i:5517;i:5;s:8:"WebFetch";}', +'a:10:{i:3;i:4591;i:4;s:8:"Palm Web";i:5;s:8:"Palm Web";i:9;s:5:"webOS";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:8:"Iron 9.0";i:5;s:4:"Iron";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:14:{i:3;i:4591;i:4;s:12:"Sleipnir 2.0";i:5;s:8:"Sleipnir";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";}', +'a:12:{i:3;i:4591;i:4;s:8:"RockMelt";i:5;s:8:"RockMelt";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:6:{i:3;i:4591;i:4;s:8:"YodaoBot";i:5;s:8:"YodaoBot";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:2:{i:3;i:4586;i:5;s:8:"Particls";}', +'a:2:{i:3;i:4645;i:5;s:8:"WhizBang";}', +'a:2:{i:3;i:4645;i:5;s:8:"VadixBot";}', 'a:2:{i:3;i:4578;i:5;s:8:"FlashGet";}', 'a:2:{i:3;i:4578;i:5;s:8:"WinTools";}', -'a:2:{i:3;i:5523;i:5;s:8:"LeechFTP";}', -'a:8:{i:3;i:4592;i:4;s:8:"Emacs/W3";i:5;s:8:"Emacs/W3";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:7:"default";}', -'a:6:{i:3;i:4592;i:4;s:8:"Facebook";i:5;s:8:"Facebook";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:2:{i:3;i:5523;i:5;s:8:"WebFetch";}', -'a:6:{i:3;i:4592;i:4;s:8:"YodaoBot";i:5;s:8:"YodaoBot";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:2:{i:3;i:5523;i:5;s:8:"HTTPGrab";}', -'a:2:{i:3;i:4576;i:5;s:8:"Lachesis";}', -'a:15:{i:3;i:4592;i:4;s:12:"PaleMoon 3.6";i:5;s:8:"PaleMoon";i:6;s:3:"3.6";i:7;s:1:"3";i:8;s:1:"6";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";i:33;s:5:"Gecko";}', -'a:2:{i:3;i:5523;i:5;s:8:"Moozilla";}', -'a:11:{i:3;i:4592;i:4;s:8:"GoogleTV";i:5;s:8:"GoogleTV";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:31;s:8:"GoogleTV";i:32;s:6:"Google";}', -'a:14:{i:3;i:4592;i:4;s:12:"Sleipnir 2.0";i:5;s:8:"Sleipnir";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"2";}', -'a:8:{i:3;i:4592;i:4;s:8:"fantomas";i:5;s:8:"fantomas";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', -'a:2:{i:3;i:4840;i:5;s:8:"URLCHECK";}', -'a:2:{i:3;i:4657;i:5;s:8:"VadixBot";}', -'a:4:{i:3;i:4592;i:4;s:8:"Netcraft";i:5;s:8:"Netcraft";i:28;s:4:"true";}', -'a:12:{i:3;i:4592;i:4;s:8:"IEMobile";i:5;s:8:"IEMobile";i:9;s:5:"WinCE";i:11;s:10:"Windows CE";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";}', -'a:12:{i:3;i:4592;i:4;s:8:"RockMelt";i:5;s:8:"RockMelt";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:8:"Iron 8.0";i:5;s:4:"Iron";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:8:"Iron 6.0";i:5;s:4:"Iron";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:15:{i:3;i:4592;i:4;s:8:"Iron 7.0";i:5;s:4:"Iron";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:4657;i:5;s:8:"WhizBang";}', -'a:2:{i:3;i:5101;i:5;s:8:"WebTrans";}', -'a:15:{i:3;i:4592;i:4;s:8:"Iron 9.0";i:5;s:4:"Iron";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:24;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:10:{i:3;i:4592;i:4;s:8:"Palm Web";i:5;s:8:"Palm Web";i:9;s:5:"webOS";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:6:"PhpDig";}', -'a:1:{i:3;i:5518;}', -'a:2:{i:3;i:4787;i:5;s:6:"Spinne";}', -'a:4:{i:3;i:5643;i:6;s:3:"0.1";i:7;s:1:"0";i:8;s:1:"1";}', -'a:2:{i:3;i:4657;i:5;s:7:"XSpider";}', -'a:4:{i:3;i:5643;i:6;s:3:"0.2";i:7;s:1:"0";i:8;s:1:"2";}', -'a:6:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:27;s:4:"true";}', -'a:2:{i:3;i:4578;i:5;s:7:"NetAnts";}', -'a:2:{i:3;i:4657;i:5;s:6:"Ocelli";}', -'a:2:{i:3;i:5523;i:5;s:6:"3D-FTP";}', -'a:5:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', -'a:2:{i:3;i:4787;i:5;s:7:"PEERbot";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:2:{i:3;i:5523;i:5;s:6:"JPluck";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:2:{i:3;i:4787;i:5;s:6:"Pompos";}', -'a:2:{i:3;i:4841;i:5;s:7:"Linkbot";}', -'a:4:{i:3;i:5643;i:6;s:3:"0.3";i:7;s:1:"0";i:8;s:1:"3";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:5:{i:3;i:5643;i:6;s:3:"0.4";i:7;s:1:"0";i:8;s:1:"4";i:20;s:4:"true";}', -'a:5:{i:3;i:5643;i:6;s:3:"0.5";i:7;s:1:"0";i:8;s:1:"5";i:20;s:4:"true";}', -'a:2:{i:3;i:5523;i:5;s:6:"CobWeb";}', -'a:2:{i:3;i:5523;i:5;s:6:"PycURL";}', -'a:2:{i:3;i:5614;i:5;s:7:"Scooter";}', -'a:2:{i:3;i:4540;i:5;s:7:"Azureus";}', -'a:2:{i:3;i:5523;i:5;s:6:"Holmes";}', -'a:2:{i:3;i:4250;i:5;s:7:"NetSurf";}', -'a:2:{i:3;i:5523;i:5;s:7:"WinHttp";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:3:{i:3;i:5614;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:7:"n4p_bot";}', 'a:2:{i:3;i:4578;i:5;s:6:"EasyDL";}', -'a:2:{i:3;i:4787;i:5;s:6:"Wotbox";}', -'a:2:{i:3;i:4870;i:5;s:8:"Websense";}', -'a:2:{i:3;i:5523;i:5;s:10:"BlackWidow";}', -'a:2:{i:3;i:5614;i:5;s:7:"Y!OASIS";}', -'a:2:{i:3;i:4657;i:5;s:8:"SiteSell";}', -'a:2:{i:3;i:4657;i:5;s:7:"Gaisbot";}', -'a:1:{i:3;i:4043;}', -'a:2:{i:3;i:4580;i:5;s:6:"Larbin";}', -'a:1:{i:3;i:4043;}', -'a:2:{i:3;i:5523;i:5;s:6:"libwww";}', -'a:9:{i:3;i:4592;i:4;s:7:"IBrowse";i:5;s:7:"IBrowse";i:9;s:5:"Amiga";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', -'a:22:{i:3;i:4592;i:4;s:7:"AOL 9.5";i:5;s:2:"IE";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"3";i:30;s:2:"10";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:8:{i:3;i:4592;i:4;s:7:"Chimera";i:5;s:7:"Chimera";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', -'a:2:{i:3;i:5523;i:5;s:7:"HLoader";}', -'a:22:{i:3;i:4592;i:4;s:7:"AOL 9.6";i:5;s:2:"IE";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"3";i:30;s:2:"10";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:7:"Trident";i:34;s:3:"4.0";}', -'a:2:{i:3;i:4434;i:5;s:7:"BDFetch";}', -'a:6:{i:3;i:4592;i:4;s:7:"Convera";i:5;s:7:"Convera";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:7:"PMAFind";}', -'a:6:{i:3;i:4592;i:4;s:7:"Webaroo";i:5;s:7:"Webaroo";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:20:{i:3;i:4592;i:4;s:7:"IE 10.0";i:5;s:2:"IE";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:13;s:4:"true";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:5:{i:3;i:4592;i:4;s:7:"FeedHub";i:5;s:7:"FeedHub";i:27;s:4:"true";i:28;s:4:"true";}', -'a:12:{i:3;i:4592;i:4;s:7:"Jasmine";i:5;s:7:"Jasmine";i:9;s:4:"JAVA";i:17;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:31;s:7:"Samsung";i:32;s:7:"Samsung";i:33;s:8:"NetFront";}', -'a:2:{i:3;i:4787;i:5;s:7:"SynoBot";}', -'a:2:{i:3;i:4841;i:5;s:7:"IECheck";}', -'a:2:{i:3;i:4657;i:5;s:7:"SyncMgr";}', -'a:12:{i:3;i:4592;i:4;s:7:"Skyfire";i:5;s:7:"Skyfire";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";i:34;s:6:"530.17";}', -'a:10:{i:3;i:4592;i:4;s:7:"Polaris";i:5;s:7:"Polaris";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";}', -'a:2:{i:3;i:4578;i:5;s:7:"Myzilla";}', -'a:6:{i:3;i:4592;i:4;s:7:"Gigabot";i:5;s:7:"Gigabot";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:7:"nicebot";}', +'a:2:{i:3;i:4539;i:5;s:7:"Azureus";}', +'a:2:{i:3;i:5517;i:5;s:10:"BlackWidow";}', +'a:2:{i:3;i:4784;i:5;s:7:"PEERbot";}', +'a:2:{i:3;i:5517;i:5;s:6:"3D-FTP";}', +'a:2:{i:3;i:5517;i:5;s:6:"PycURL";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:2:{i:3;i:4784;i:5;s:6:"Pompos";}', +'a:2:{i:3;i:4784;i:5;s:6:"Spinne";}', +'a:2:{i:3;i:5517;i:5;s:6:"CobWeb";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:2:{i:3;i:4578;i:5;s:7:"NetAnts";}', +'a:2:{i:3;i:5517;i:5;s:7:"WinHttp";}', +'a:2:{i:3;i:4645;i:5;s:8:"SiteSell";}', +'a:1:{i:3;i:5504;}', +'a:2:{i:3;i:5612;i:5;s:7:"Scooter";}', +'a:2:{i:3;i:5517;i:5;s:6:"Holmes";}', +'a:2:{i:3;i:5517;i:5;s:6:"JPluck";}', +'a:2:{i:3;i:4784;i:5;s:6:"Wotbox";}', +'a:2:{i:3;i:4645;i:5;s:6:"PhpDig";}', +'a:6:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:27;s:4:"true";}', +'a:4:{i:3;i:5642;i:6;s:3:"0.1";i:7;s:1:"0";i:8;s:1:"1";}', +'a:2:{i:3;i:4645;i:5;s:7:"n4p_bot";}', +'a:2:{i:3;i:4854;i:5;s:7:"Linkbot";}', +'a:2:{i:3;i:5612;i:5;s:7:"Y!OASIS";}', +'a:2:{i:3;i:4645;i:5;s:7:"XSpider";}', +'a:5:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";}', +'a:5:{i:3;i:5642;i:6;s:3:"0.5";i:7;s:1:"0";i:8;s:1:"5";i:20;s:4:"true";}', +'a:2:{i:3;i:4252;i:5;s:7:"NetSurf";}', +'a:5:{i:3;i:5642;i:6;s:3:"0.4";i:7;s:1:"0";i:8;s:1:"4";i:20;s:4:"true";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:4:{i:3;i:5642;i:6;s:3:"0.3";i:7;s:1:"0";i:8;s:1:"3";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:6:"Ocelli";}', +'a:3:{i:3;i:5612;i:5;s:15:"YahooFeedSeeker";i:27;s:4:"true";}', +'a:2:{i:3;i:4879;i:5;s:8:"Websense";}', +'a:4:{i:3;i:5642;i:6;s:3:"0.2";i:7;s:1:"0";i:8;s:1:"2";}', +'a:2:{i:3;i:4645;i:5;s:7:"Gaisbot";}', +'a:1:{i:3;i:4045;}', +'a:2:{i:3;i:5517;i:5;s:6:"libwww";}', +'a:2:{i:3;i:4576;i:5;s:6:"Larbin";}', +'a:1:{i:3;i:4045;}', 'a:2:{i:3;i:4578;i:5;s:21:"Free Download Manager";}', -'a:6:{i:3;i:4592;i:4;s:7:"Exalead";i:5;s:7:"Exalead";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:11:{i:3;i:4592;i:4;s:7:"PowerTV";i:5;s:7:"PowerTV";i:9;s:7:"PowerTV";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:31;s:7:"PowerTV";i:32;s:18:"Scientific Atlanta";}', -'a:4:{i:3;i:4592;i:4;s:7:"Rippers";i:5;s:6:"Ripper";i:28;s:4:"true";}', -'a:2:{i:3;i:5523;i:5;s:5:"3wGet";}', -'a:2:{i:3;i:5523;i:5;s:6:"Foobot";}', -'a:2:{i:3;i:4780;i:5;s:5:"Custo";}', -'a:2:{i:3;i:5063;i:5;s:6:"Reblog";}', -'a:2:{i:3;i:5523;i:5;s:5:"CTerm";}', -'a:2:{i:3;i:5523;i:5;s:5:"Pavuk";}', -'a:2:{i:3;i:4657;i:5;s:8:"ht://Dig";}', -'a:2:{i:3;i:5523;i:5;s:6:"Python";}', -'a:2:{i:3;i:5523;i:5;s:14:"Pockey-GetHTML";}', -'a:6:{i:3;i:4787;i:5;s:6:"Dumbot";i:6;s:3:"0.2";i:7;s:1:"0";i:8;s:1:"2";i:13;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:7:"SyncMgr";}', +'a:2:{i:3;i:4854;i:5;s:7:"IECheck";}', +'a:12:{i:3;i:4591;i:4;s:7:"Skyfire";i:5;s:7:"Skyfire";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";i:34;s:6:"530.17";}', +'a:6:{i:3;i:4591;i:4;s:7:"Gigabot";i:5;s:7:"Gigabot";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:10:{i:3;i:4591;i:4;s:7:"Polaris";i:5;s:7:"Polaris";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";}', +'a:20:{i:3;i:4591;i:4;s:7:"IE 10.0";i:5;s:2:"IE";i:6;s:4:"10.0";i:7;s:2:"10";i:8;s:1:"0";i:13;s:4:"true";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:5:{i:3;i:4591;i:4;s:7:"FeedHub";i:5;s:7:"FeedHub";i:27;s:4:"true";i:28;s:4:"true";}', +'a:9:{i:3;i:4591;i:4;s:7:"IBrowse";i:5;s:7:"IBrowse";i:9;s:5:"Amiga";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', +'a:2:{i:3;i:4436;i:5;s:7:"BDFetch";}', +'a:6:{i:3;i:4591;i:4;s:7:"Webaroo";i:5;s:7:"Webaroo";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:6:{i:3;i:4591;i:4;s:7:"Exalead";i:5;s:7:"Exalead";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:6:{i:3;i:4591;i:4;s:7:"Convera";i:5;s:7:"Convera";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:12:{i:3;i:4591;i:4;s:7:"Jasmine";i:5;s:7:"Jasmine";i:9;s:4:"JAVA";i:17;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:31;s:7:"Samsung";i:32;s:7:"Samsung";i:33;s:8:"NetFront";}', +'a:22:{i:3;i:4591;i:4;s:7:"AOL 9.6";i:5;s:2:"IE";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"3";i:30;s:2:"10";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:2:{i:3;i:4578;i:5;s:7:"Myzilla";}', +'a:2:{i:3;i:4645;i:5;s:7:"nicebot";}', +'a:4:{i:3;i:4591;i:4;s:7:"Rippers";i:5;s:6:"Ripper";i:28;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:7:"HLoader";}', +'a:2:{i:3;i:4645;i:5;s:7:"PMAFind";}', +'a:8:{i:3;i:4591;i:4;s:7:"Chimera";i:5;s:7:"Chimera";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";}', +'a:2:{i:3;i:4784;i:5;s:7:"SynoBot";}', +'a:11:{i:3;i:4591;i:4;s:7:"PowerTV";i:5;s:7:"PowerTV";i:9;s:7:"PowerTV";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:31;s:7:"PowerTV";i:32;s:18:"Scientific Atlanta";}', +'a:22:{i:3;i:4591;i:4;s:7:"AOL 9.5";i:5;s:2:"IE";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"3";i:30;s:2:"10";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:7:"Trident";i:34;s:3:"4.0";}', +'a:2:{i:3;i:5084;i:5;s:6:"Reblog";}', +'a:2:{i:3;i:4784;i:5;s:6:"Xyleme";}', +'a:2:{i:3;i:4645;i:5;s:8:"ht://Dig";}', +'a:2:{i:3;i:4539;i:5;s:6:"Deluge";}', +'a:2:{i:3;i:4576;i:5;s:6:"eCatch";}', +'a:2:{i:3;i:5517;i:5;s:5:"3wGet";}', +'a:2:{i:3;i:4784;i:5;s:9:"QweeryBot";}', +'a:2:{i:3;i:5517;i:5;s:5:"CTerm";}', +'a:2:{i:3;i:5517;i:5;s:14:"Pockey-GetHTML";}', +'a:2:{i:3;i:4784;i:5;s:6:"Abacho";}', +'a:2:{i:3;i:4788;i:5;s:5:"Custo";}', +'a:2:{i:3;i:5517;i:5;s:6:"Foobot";}', +'a:2:{i:3;i:4784;i:5;s:25:"Bit Torrent Search Engine";}', +'a:2:{i:3;i:4784;i:5;s:10:"21Seek.Com";}', +'a:6:{i:3;i:4784;i:5;s:6:"Dumbot";i:6;s:3:"0.2";i:7;s:1:"0";i:8;s:1:"2";i:13;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:5:"Pavuk";}', 'a:2:{i:3;i:4578;i:5;s:6:"Beamer";}', -'a:2:{i:3;i:4540;i:5;s:6:"Deluge";}', -'a:2:{i:3;i:4657;i:5;s:5:"SMBot";}', -'a:2:{i:3;i:5642;i:5;s:6:"MSRBOT";}', -'a:2:{i:3;i:4657;i:5;s:3:"Goo";}', -'a:2:{i:3;i:4787;i:5;s:5:"VMBot";}', -'a:2:{i:3;i:5523;i:5;s:6:"Snoopy";}', -'a:2:{i:3;i:4580;i:5;s:6:"eCatch";}', -'a:2:{i:3;i:4787;i:5;s:9:"QweeryBot";}', -'a:2:{i:3;i:4657;i:5;s:5:"WeBoX";}', -'a:2:{i:3;i:4787;i:5;s:25:"Bit Torrent Search Engine";}', -'a:2:{i:3;i:4787;i:5;s:10:"21Seek.Com";}', -'a:2:{i:3;i:4787;i:5;s:6:"Xyleme";}', -'a:2:{i:3;i:4787;i:5;s:6:"Abacho";}', +'a:2:{i:3;i:5643;i:5;s:6:"MSRBOT";}', +'a:2:{i:3;i:4645;i:5;s:3:"Goo";}', 'a:2:{i:3;i:4578;i:5;s:6:"WebZIP";}', -'a:3:{i:3;i:4250;i:5;s:5:"Amiga";i:9;s:5:"Amiga";}', -'a:2:{i:3;i:4870;i:5;s:5:"Squid";}', -'a:1:{i:3;i:5615;}', -'a:2:{i:3;i:4657;i:5;s:8:"NaverBot";}', -'a:1:{i:3;i:4043;}', -'a:4:{i:3;i:4592;i:4;s:6:"Nagios";i:5;s:6:"Nagios";i:28;s:4:"true";}', -'a:13:{i:3;i:4592;i:4;s:6:"Kindle";i:5;s:6:"Kindle";i:9;s:7:"Android";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";i:31;s:6:"Kindle";i:32;s:6:"Amazon";i:33;s:6:"WebKit";}', -'a:4:{i:3;i:4592;i:4;s:6:"Hatena";i:5;s:6:"Hatena";i:28;s:4:"true";}', -'a:18:{i:3;i:4592;i:4;s:6:"IE 5.0";i:5;s:2:"IE";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:11:{i:3;i:4592;i:4;s:17:"Handspring Blazer";i:5;s:17:"Handspring Blazer";i:9;s:4:"Palm";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";}', -'a:7:{i:3;i:4592;i:4;s:6:"Yandex";i:5;s:6:"Yandex";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:6:"UCmore";}', -'a:19:{i:3;i:4592;i:4;s:6:"IE 6.0";i:5;s:2:"IE";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"1";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:2:{i:3;i:4841;i:5;s:6:"FavOrg";}', -'a:12:{i:3;i:4592;i:4;s:6:"DoCoMo";i:5;s:6:"DoCoMo";i:9;s:6:"DoCoMo";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:28;s:4:"true";i:29;s:1:"1";}', -'a:2:{i:3;i:4833;i:5;s:6:"vobsub";}', -'a:13:{i:3;i:4592;i:4;s:6:"Dolfin";i:5;s:6:"Dolfin";i:9;s:4:"Bada";i:11;s:12:"Samsung Bada";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', -'a:18:{i:3;i:4592;i:4;s:6:"IE 4.0";i:5;s:2:"IE";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:5:{i:3;i:4592;i:4;s:11:"NCSA Mosaic";i:5;s:6:"Mosaic";i:17;s:4:"true";i:19;s:4:"true";}', -'a:2:{i:3;i:4657;i:5;s:6:"cz32ts";}', -'a:15:{i:3;i:4592;i:4;s:6:"IE 2.0";i:5;s:2:"IE";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:19:{i:3;i:4592;i:4;s:6:"IE 8.0";i:5;s:2:"IE";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:10:{i:3;i:4592;i:4;s:6:"Camino";i:5;s:6:"Camino";i:9;s:6:"MacOSX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', -'a:10:{i:3;i:4592;i:4;s:6:"Galeon";i:5;s:6:"Galeon";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', -'a:11:{i:3;i:4592;i:4;s:6:"Shiira";i:5;s:6:"Shiira";i:9;s:6:"MacOSX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', -'a:19:{i:3;i:4592;i:4;s:6:"IE 7.0";i:5;s:2:"IE";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:9:{i:3;i:4592;i:4;s:6:"iSiloX";i:5;s:6:"iSiloX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', -'a:14:{i:3;i:4592;i:4;s:6:"IE 1.5";i:5;s:2:"IE";i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:11:{i:3;i:4592;i:4;s:6:"Netbox";i:5;s:6:"Netbox";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"1";i:31;s:6:"Netbox";i:32;s:4:"Sony";}', -'a:18:{i:3;i:4592;i:4;s:6:"IE 3.0";i:5;s:2:"IE";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:14:{i:3;i:4592;i:4;s:6:"IE 1.0";i:5;s:2:"IE";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', -'a:2:{i:3;i:4657;i:5;s:6:"NV32ts";}', -'a:7:{i:3;i:4592;i:4;s:6:"Google";i:5;s:6:"Google";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:6:{i:3;i:4592;i:4;s:6:"Boitho";i:5;s:6:"Boitho";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:6:{i:3;i:4592;i:4;s:6:"DotBot";i:5;s:6:"DotBot";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:10:{i:3;i:4592;i:4;s:6:"Teleca";i:5;s:6:"Teleca";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:2:{i:3;i:5523;i:5;s:6:"WebGet";}', -'a:21:{i:3;i:4592;i:4;s:6:"IE 9.0";i:5;s:2:"IE";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:7:"Trident";i:34;s:3:"5.0";}', -'a:6:{i:3;i:4592;i:4;s:6:"Envolk";i:5;s:6:"Envolk";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:5:{i:3;i:4592;i:4;s:6:"Become";i:5;s:6:"Become";i:27;s:4:"true";i:28;s:4:"true";}', -'a:2:{i:3;i:4576;i:5;s:5:"MQbot";}', -'a:2:{i:3;i:5109;i:5;s:11:"NameProtect";}', -'a:2:{i:3;i:5109;i:5;s:11:"NameProtect";}', -'a:2:{i:3;i:4540;i:5;s:4:"BTSP";}', -'a:1:{i:3;i:5626;}', -'a:2:{i:3;i:4657;i:5;s:5:"Nabot";}', -'a:2:{i:3;i:4721;i:5;s:4:"WWWC";}', -'a:2:{i:3;i:5523;i:5;s:5:"Custo";}', -'a:2:{i:3;i:5610;i:5;s:5:"Lycos";}', -'a:2:{i:3;i:5523;i:5;s:4:"hcat";}', -'a:2:{i:3;i:4841;i:5;s:4:"Zeus";}', -'a:2:{i:3;i:5523;i:5;s:4:"grub";}', -'a:2:{i:3;i:5523;i:5;s:20:"Generic Java Crawler";}', -'a:5:{i:3;i:4592;i:4;s:5:"Amaya";i:5;s:5:"Amaya";i:17;s:4:"true";i:19;s:4:"true";}', -'a:10:{i:3;i:4592;i:4;s:11:"WebTV/MSNTV";i:5;s:11:"WebTV/MSNTV";i:9;s:5:"WebTV";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:31;s:5:"WebTV";i:32;s:9:"Microsoft";}', -'a:10:{i:3;i:4592;i:4;s:5:"Boxee";i:5;s:5:"Boxee";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:31;s:5:"Boxee";i:32;s:6:"D-Link";}', -'a:10:{i:3;i:4592;i:4;s:13:"Maemo Browser";i:5;s:5:"Maemo";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";}', -'a:2:{i:3;i:4250;i:5;s:5:"12345";}', -'a:11:{i:3;i:4592;i:4;s:5:"Nokia";i:5;s:5:"Nokia";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:31;s:5:"Nokia";i:32;s:5:"Nokia";}', -'a:5:{i:3;i:4592;i:4;s:5:"Links";i:5;s:5:"Links";i:17;s:4:"true";i:19;s:4:"true";}', -'a:7:{i:3;i:4592;i:4;s:5:"Baidu";i:5;s:5:"Baidu";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:6:{i:3;i:4592;i:4;s:5:"Lycos";i:5;s:5:"Lycos";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:10:{i:3;i:4592;i:4;s:5:"Dillo";i:5;s:5:"Dillo";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', -'a:6:{i:3;i:4592;i:4;s:5:"Sogou";i:5;s:5:"Sogou";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:2:{i:3;i:5614;i:5;s:5:"slurp";}', -'a:7:{i:3;i:4592;i:4;s:5:"Yahoo";i:5;s:5:"Yahoo";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:6:{i:3;i:4592;i:4;s:5:"Nutch";i:5;s:5:"Nutch";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:2:{i:3;i:4833;i:5;s:3:"RMA";}', -'a:2:{i:3;i:5523;i:5;s:4:"FGet";}', -'a:1:{i:3;i:4650;}', -'a:2:{i:3;i:4841;i:5;s:15:"VSE Link Tester";}', -'a:2:{i:3;i:4841;i:5;s:3:"DLC";}', +'a:2:{i:3;i:4645;i:5;s:5:"WeBoX";}', +'a:2:{i:3;i:4645;i:5;s:5:"SMBot";}', +'a:2:{i:3;i:5517;i:5;s:6:"Python";}', +'a:2:{i:3;i:5517;i:5;s:6:"Snoopy";}', +'a:2:{i:3;i:4784;i:5;s:5:"VMBot";}', +'a:3:{i:3;i:4252;i:5;s:5:"Amiga";i:9;s:5:"Amiga";}', +'a:1:{i:3;i:5609;}', +'a:2:{i:3;i:4879;i:5;s:5:"Squid";}', +'a:2:{i:3;i:4645;i:5;s:8:"NaverBot";}', +'a:1:{i:3;i:4045;}', +'a:18:{i:3;i:4591;i:4;s:6:"IE 5.0";i:5;s:2:"IE";i:6;s:3:"5.0";i:7;s:1:"5";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:10:{i:3;i:4591;i:4;s:6:"Camino";i:5;s:6:"Camino";i:9;s:6:"MacOSX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', +'a:13:{i:3;i:4591;i:4;s:6:"Kindle";i:5;s:6:"Kindle";i:9;s:7:"Android";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";i:31;s:6:"Kindle";i:32;s:6:"Amazon";i:33;s:6:"WebKit";}', +'a:7:{i:3;i:4591;i:4;s:6:"Google";i:5;s:6:"Google";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:11:{i:3;i:4591;i:4;s:6:"Netbox";i:5;s:6:"Netbox";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"1";i:31;s:6:"Netbox";i:32;s:4:"Sony";}', +'a:5:{i:3;i:4591;i:4;s:11:"NCSA Mosaic";i:5;s:6:"Mosaic";i:17;s:4:"true";i:19;s:4:"true";}', +'a:19:{i:3;i:4591;i:4;s:6:"IE 6.0";i:5;s:2:"IE";i:6;s:3:"6.0";i:7;s:1:"6";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"1";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:19:{i:3;i:4591;i:4;s:6:"IE 7.0";i:5;s:2:"IE";i:6;s:3:"7.0";i:7;s:1:"7";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:10:{i:3;i:4591;i:4;s:6:"Teleca";i:5;s:6:"Teleca";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:19:{i:3;i:4591;i:4;s:6:"IE 8.0";i:5;s:2:"IE";i:6;s:3:"8.0";i:7;s:1:"8";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"2";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:12:{i:3;i:4591;i:4;s:6:"DoCoMo";i:5;s:6:"DoCoMo";i:9;s:6:"DoCoMo";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:28;s:4:"true";i:29;s:1:"1";}', +'a:13:{i:3;i:4591;i:4;s:6:"Dolfin";i:5;s:6:"Dolfin";i:9;s:4:"Bada";i:11;s:12:"Samsung Bada";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"3";i:33;s:6:"WebKit";}', +'a:4:{i:3;i:4591;i:4;s:6:"Nagios";i:5;s:6:"Nagios";i:28;s:4:"true";}', +'a:21:{i:3;i:4591;i:4;s:6:"IE 9.0";i:5;s:2:"IE";i:6;s:3:"9.0";i:7;s:1:"9";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:29;s:1:"3";i:31;s:2:"PC";i:32;s:7:"Various";i:33;s:7:"Trident";i:34;s:3:"5.0";}', +'a:6:{i:3;i:4591;i:4;s:6:"Envolk";i:5;s:6:"Envolk";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:2:{i:3;i:4854;i:5;s:6:"FavOrg";}', +'a:2:{i:3;i:4645;i:5;s:6:"NV32ts";}', +'a:2:{i:3;i:4645;i:5;s:6:"cz32ts";}', +'a:9:{i:3;i:4591;i:4;s:6:"iSiloX";i:5;s:6:"iSiloX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', +'a:11:{i:3;i:4591;i:4;s:17:"Handspring Blazer";i:5;s:17:"Handspring Blazer";i:9;s:4:"Palm";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";}', +'a:14:{i:3;i:4591;i:4;s:6:"IE 1.0";i:5;s:2:"IE";i:6;s:3:"1.0";i:7;s:1:"1";i:8;s:1:"0";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:11:{i:3;i:4591;i:4;s:6:"Shiira";i:5;s:6:"Shiira";i:9;s:6:"MacOSX";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";i:33;s:6:"WebKit";}', +'a:14:{i:3;i:4591;i:4;s:6:"IE 1.5";i:5;s:2:"IE";i:6;s:3:"1.5";i:7;s:1:"1";i:8;s:1:"5";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:5:{i:3;i:4591;i:4;s:6:"Become";i:5;s:6:"Become";i:27;s:4:"true";i:28;s:4:"true";}', +'a:15:{i:3;i:4591;i:4;s:6:"IE 2.0";i:5;s:2:"IE";i:6;s:3:"2.0";i:7;s:1:"2";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:10:{i:3;i:4591;i:4;s:6:"Galeon";i:5;s:6:"Galeon";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', +'a:18:{i:3;i:4591;i:4;s:6:"IE 3.0";i:5;s:2:"IE";i:6;s:3:"3.0";i:7;s:1:"3";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:2:{i:3;i:5517;i:5;s:6:"WebGet";}', +'a:2:{i:3;i:4645;i:5;s:6:"UCmore";}', +'a:4:{i:3;i:4591;i:4;s:6:"Hatena";i:5;s:6:"Hatena";i:28;s:4:"true";}', +'a:6:{i:3;i:4591;i:4;s:6:"Boitho";i:5;s:6:"Boitho";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:6:{i:3;i:4591;i:4;s:6:"DotBot";i:5;s:6:"DotBot";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:2:{i:3;i:4839;i:5;s:6:"vobsub";}', +'a:18:{i:3;i:4591;i:4;s:6:"IE 4.0";i:5;s:2:"IE";i:6;s:3:"4.0";i:7;s:1:"4";i:8;s:1:"0";i:15;s:4:"true";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:21;s:4:"true";i:22;s:4:"true";i:23;s:4:"true";i:24;s:4:"true";i:25;s:4:"true";i:31;s:2:"PC";i:32;s:7:"Various";}', +'a:7:{i:3;i:4591;i:4;s:6:"Yandex";i:5;s:6:"Yandex";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:2:{i:3;i:4645;i:5;s:5:"Nabot";}', +'a:2:{i:3;i:4539;i:5;s:4:"BTSP";}', +'a:2:{i:3;i:5615;i:5;s:5:"Lycos";}', +'a:2:{i:3;i:5517;i:5;s:4:"hcat";}', +'a:1:{i:3;i:5627;}', +'a:2:{i:3;i:5517;i:5;s:5:"Custo";}', +'a:2:{i:3;i:4700;i:5;s:4:"WWWC";}', +'a:2:{i:3;i:5112;i:5;s:11:"NameProtect";}', +'a:2:{i:3;i:4579;i:5;s:5:"MQbot";}', +'a:2:{i:3;i:5112;i:5;s:11:"NameProtect";}', +'a:2:{i:3;i:5517;i:5;s:20:"Generic Java Crawler";}', +'a:2:{i:3;i:4854;i:5;s:4:"Zeus";}', +'a:2:{i:3;i:5517;i:5;s:4:"grub";}', +'a:7:{i:3;i:4591;i:4;s:5:"Baidu";i:5;s:5:"Baidu";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:10:{i:3;i:4591;i:4;s:5:"Dillo";i:5;s:5:"Dillo";i:9;s:5:"Linux";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:29;s:1:"2";}', +'a:5:{i:3;i:4591;i:4;s:5:"Links";i:5;s:5:"Links";i:17;s:4:"true";i:19;s:4:"true";}', +'a:2:{i:3;i:4252;i:5;s:5:"12345";}', +'a:5:{i:3;i:4591;i:4;s:5:"Amaya";i:5;s:5:"Amaya";i:17;s:4:"true";i:19;s:4:"true";}', +'a:10:{i:3;i:4591;i:4;s:11:"WebTV/MSNTV";i:5;s:11:"WebTV/MSNTV";i:9;s:5:"WebTV";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:31;s:5:"WebTV";i:32;s:9:"Microsoft";}', +'a:6:{i:3;i:4591;i:4;s:5:"Sogou";i:5;s:5:"Sogou";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:6:{i:3;i:4591;i:4;s:5:"Nutch";i:5;s:5:"Nutch";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:11:{i:3;i:4591;i:4;s:5:"Nokia";i:5;s:5:"Nokia";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:31;s:5:"Nokia";i:32;s:5:"Nokia";}', +'a:2:{i:3;i:5612;i:5;s:5:"slurp";}', +'a:7:{i:3;i:4591;i:4;s:5:"Yahoo";i:5;s:5:"Yahoo";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:10:{i:3;i:4591;i:4;s:13:"Maemo Browser";i:5;s:5:"Maemo";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";}', +'a:10:{i:3;i:4591;i:4;s:5:"Boxee";i:5;s:5:"Boxee";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:31;s:5:"Boxee";i:32;s:6:"D-Link";}', +'a:6:{i:3;i:4591;i:4;s:5:"Lycos";i:5;s:5:"Lycos";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:4:"FGet";}', +'a:1:{i:3;i:4643;}', +'a:2:{i:3;i:4854;i:5;s:3:"DLC";}', +'a:2:{i:3;i:4854;i:5;s:15:"VSE Link Tester";}', +'a:2:{i:3;i:4645;i:5;s:11:"sohu-search";}', 'a:2:{i:3;i:4578;i:5;s:4:"Wget";}', -'a:2:{i:3;i:5523;i:5;s:4:"cURL";}', -'a:2:{i:3;i:4576;i:5;s:3:"Zao";}', -'a:2:{i:3;i:5523;i:5;s:3:"b2w";}', -'a:2:{i:3;i:4657;i:5;s:11:"sohu-search";}', -'a:6:{i:3;i:4592;i:4;s:4:"Lynx";i:5;s:4:"Lynx";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";}', -'a:10:{i:3;i:4592;i:4;s:4:"KDDI";i:5;s:4:"KDDI";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', -'a:13:{i:3;i:4592;i:4;s:4:"Silk";i:5;s:4:"Silk";i:9;s:7:"Android";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";i:31;s:6:"Kindle";i:32;s:6:"Amazon";i:33;s:6:"WebKit";}', -'a:2:{i:3;i:5523;i:5;s:4:"CAST";}', -'a:2:{i:3;i:4434;i:5;s:4:"oBot";}', -'a:9:{i:3;i:4592;i:4;s:4:"iCab";i:5;s:4:"iCab";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:33;s:6:"WebKit";}', -'a:6:{i:3;i:4592;i:4;s:4:"Snap";i:5;s:4:"Snap";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:6:{i:3;i:4592;i:4;s:4:"Ilse";i:5;s:4:"Ilse";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:9:{i:3;i:4592;i:4;s:4:"Brew";i:5;s:4:"Brew";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";}', -'a:2:{i:3;i:4540;i:5;s:3:"FDM";}', +'a:2:{i:3;i:4579;i:5;s:3:"Zao";}', +'a:2:{i:3;i:5517;i:5;s:3:"b2w";}', +'a:2:{i:3;i:5517;i:5;s:4:"cURL";}', +'a:2:{i:3;i:4839;i:5;s:3:"RMA";}', +'a:6:{i:3;i:4591;i:4;s:4:"Ilse";i:5;s:4:"Ilse";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:6:{i:3;i:4591;i:4;s:4:"Lynx";i:5;s:4:"Lynx";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";}', +'a:13:{i:3;i:4591;i:4;s:4:"Silk";i:5;s:4:"Silk";i:9;s:7:"Android";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:26;s:4:"true";i:29;s:1:"2";i:31;s:6:"Kindle";i:32;s:6:"Amazon";i:33;s:6:"WebKit";}', +'a:9:{i:3;i:4591;i:4;s:4:"iCab";i:5;s:4:"iCab";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:33;s:6:"WebKit";}', +'a:2:{i:3;i:4436;i:5;s:4:"oBot";}', +'a:2:{i:3;i:5517;i:5;s:4:"CAST";}', +'a:6:{i:3;i:4591;i:4;s:4:"Snap";i:5;s:4:"Snap";i:17;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:10:{i:3;i:4591;i:4;s:4:"KDDI";i:5;s:4:"KDDI";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";i:29;s:1:"1";}', +'a:9:{i:3;i:4591;i:4;s:4:"Brew";i:5;s:4:"Brew";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:20;s:4:"true";i:22;s:4:"true";i:26;s:4:"true";}', +'a:2:{i:3;i:5517;i:5;s:3:"lwp";}', +'a:2:{i:3;i:5112;i:5;s:11:"NameProtect";}', +'a:2:{i:3;i:5511;i:5;s:17:"Exalead Previewer";}', +'a:2:{i:3;i:5517;i:5;s:3:"PHP";}', 'a:2:{i:3;i:4578;i:5;s:20:"Download Accelerator";}', -'a:2:{i:3;i:5521;i:5;s:17:"Exalead Previewer";}', -'a:2:{i:3;i:5109;i:5;s:11:"NameProtect";}', -'a:2:{i:3;i:5523;i:5;s:3:"PHP";}', -'a:2:{i:3;i:5523;i:5;s:3:"lwp";}', -'a:7:{i:3;i:4592;i:4;s:3:"Ask";i:5;s:3:"Ask";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:7:{i:3;i:4592;i:4;s:3:"MSN";i:5;s:3:"MSN";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', -'a:5:{i:3;i:4592;i:4;s:3:"w3m";i:5;s:3:"w3m";i:17;s:4:"true";i:19;s:4:"true";}', -'a:4:{i:3;i:4592;i:4;s:3:"W3C";i:5;s:3:"W3C";i:28;s:4:"true";}', +'a:2:{i:3;i:4539;i:5;s:3:"FDM";}', +'a:7:{i:3;i:4591;i:4;s:3:"Ask";i:5;s:3:"Ask";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:5:{i:3;i:4591;i:4;s:3:"w3m";i:5;s:3:"w3m";i:17;s:4:"true";i:19;s:4:"true";}', +'a:7:{i:3;i:4591;i:4;s:3:"MSN";i:5;s:3:"MSN";i:17;s:4:"true";i:18;s:4:"true";i:19;s:4:"true";i:28;s:4:"true";}', +'a:4:{i:3;i:4591;i:4;s:3:"W3C";i:5;s:3:"W3C";i:28;s:4:"true";}', 'a:31:{i:4;s:15:"Default Browser";i:5;s:15:"Default Browser";i:6;s:3:"0.0";i:7;s:1:"0";i:8;s:1:"0";i:9;s:7:"unknown";i:10;s:7:"unknown";i:11;s:7:"unknown";i:12;s:5:"false";i:13;s:5:"false";i:14;s:5:"false";i:15;s:5:"false";i:16;s:5:"false";i:17;s:5:"false";i:18;s:5:"false";i:19;s:5:"false";i:20;s:5:"false";i:21;s:5:"false";i:22;s:5:"false";i:23;s:5:"false";i:24;s:5:"false";i:25;s:5:"false";i:26;s:5:"false";i:27;s:5:"false";i:28;s:5:"false";i:29;s:1:"0";i:30;s:1:"0";i:31;s:7:"unknown";i:32;s:7:"unknown";i:33;s:7:"unknown";i:34;s:7:"unknown";}' ); $userAgents=array( -4646=>'Version Checkers', -5607=>'Nokia', -5091=>'Chrome 19.0', +4657=>'Version Checkers', +5610=>'Nokia', +5141=>'Chrome 19.0', 5628=>'Silk', -5336=>'Entireweb', -5555=>'Kindle', -4577=>'Mobile Safari 4.0', -5443=>'GoogleTV', -5450=>'Rockmelt', -4593=>'Mobile Safari 5.1', -4591=>'Mobile Safari 6.0', -4585=>'Mobile Safari 5.0', -4579=>'Mobile Safari 3.1', -4590=>'Mobile Safari 6.1', -4587=>'Mobile Safari 7.0', -4787=>'Search Engines', -5515=>'Skyfire', -4949=>'OmniWeb 5.10', -5322=>'Flock 3.0', +5334=>'Entireweb', +5556=>'Kindle', +4589=>'Mobile Safari 4.0', +5438=>'GoogleTV', +5451=>'Rockmelt', +4584=>'Mobile Safari 6.0', +4594=>'Mobile Safari 5.1', +4593=>'Mobile Safari 5.0', +4588=>'Mobile Safari 3.1', +4583=>'Mobile Safari 6.1', +4581=>'Mobile Safari 7.0', +4784=>'Search Engines', +5503=>'Skyfire', +4982=>'OmniWeb 5.10', +5337=>'Flock 3.0', 4582=>'Mobile Safari 3.0', -4657=>'General Crawlers', -5441=>'Palemoon', -5105=>'Maxthon 3.0', -4940=>'NetFront 3.0', -4974=>'NetFront 2.0', -4486=>'Android Browser 4.0', -5067=>'General RSS', -4488=>'Android Browser 3.0', -4946=>'OmniWeb 5.11', -5504=>'AOL 9.6', -4874=>'Chromium 16.0', -4877=>'Chromium 30.0', -4876=>'Chromium 31.0', -4842=>'Chromium 15.0', -4830=>'Chromium 14.0', -4871=>'Chromium 29.0', -4887=>'Chromium 32.0', -4856=>'Chromium 19.0', -4853=>'Chromium 20.0', -4859=>'Chromium 21.0', -4838=>'Chromium 22.0', -4846=>'Chromium 23.0', -4847=>'Chromium 24.0', -4884=>'Chromium 25.0', -4879=>'Chromium 27.0', -4854=>'Chromium 18.0', -4885=>'Chromium 26.0', -4872=>'Chromium 28.0', -4880=>'Chromium 17.0', -4850=>'Chromium 10.0', -4845=>'Chromium 13.0', -4852=>'Chromium 11.0', -4860=>'Chromium 12.0', -4886=>'Lunascape 5.0', -4882=>'Lunascape 5.1', -4873=>'Lunascape 6.0', -5111=>'OmniWeb 5.0', -4961=>'Chromium 6.0', -4968=>'Chromium 7.0', -4973=>'Chromium 8.0', -4971=>'Chromium 9.0', -5086=>'Chrome 12.0', -5085=>'Chrome 13.0', -5349=>'Iron 24.0', -5337=>'Iron 23.0', -5127=>'Chrome 29.0', -5088=>'Chrome 11.0', -5087=>'Chrome 10.0', -5133=>'Chrome 24.0', -5084=>'Chrome 14.0', -5089=>'Chrome 15.0', -5096=>'Chrome 16.0', -5129=>'Chrome 26.0', -5114=>'Chrome 17.0', -5136=>'Chrome 23.0', -5128=>'Chrome 30.0', -5138=>'Chrome 25.0', -5123=>'Chrome 32.0', -5115=>'Chrome 22.0', -5125=>'Chrome 31.0', -5093=>'Chrome 18.0', -5121=>'Chrome 28.0', -5092=>'Chrome 20.0', -5117=>'Chrome 27.0', -5113=>'Chrome 21.0', -4252=>'Microsoft Outlook 2010', -4250=>'Miscellaneous Browsers', -5345=>'Iron 26.0', -5340=>'Iron 25.0', -5341=>'Iron 32.0', -5348=>'Iron 31.0', -5323=>'Iron 27.0', -5350=>'Iron 28.0', -5355=>'Iron 29.0', -5358=>'Iron 30.0', -5229=>'Chrome 6.0', -4656=>'Chromium Generic', -5236=>'Chrome 9.0', -5232=>'Chrome 8.0', -5228=>'Chrome 7.0', +4645=>'General Crawlers', +5435=>'Palemoon', +5085=>'Maxthon 3.0', +4948=>'NetFront 2.0', +4944=>'NetFront 3.0', +4490=>'Android Browser 4.0', +5060=>'General RSS', +4491=>'Android Browser 3.0', +4945=>'OmniWeb 5.11', +5514=>'AOL 9.6', +4875=>'Chromium 31.0', +4860=>'Chromium 26.0', +4863=>'Chromium 23.0', +4864=>'Chromium 21.0', +4855=>'Chromium 22.0', +4859=>'Chromium 27.0', +4856=>'Chromium 30.0', +4858=>'Chromium 28.0', +4866=>'Chromium 20.0', +4853=>'Chromium 19.0', +4857=>'Chromium 29.0', +4865=>'Chromium 18.0', +4862=>'Chromium 24.0', +4861=>'Chromium 25.0', +4868=>'Chromium 11.0', +4871=>'Chromium 14.0', +4870=>'Chromium 13.0', +4869=>'Chromium 12.0', +4872=>'Chromium 15.0', +4873=>'Chromium 16.0', +4874=>'Chromium 17.0', +4876=>'Chromium 32.0', +4867=>'Chromium 10.0', +4832=>'Lunascape 5.1', +4852=>'Lunascape 6.0', +5086=>'OmniWeb 5.0', +4837=>'Lunascape 5.0', +4966=>'Chromium 6.0', +4972=>'Chromium 9.0', +4975=>'Chromium 8.0', +4964=>'Chromium 7.0', +5120=>'Chrome 29.0', +5134=>'Chrome 23.0', +5131=>'Chrome 24.0', +5061=>'Chrome 32.0', +5137=>'Chrome 22.0', +5125=>'Chrome 21.0', +5143=>'Chrome 20.0', +5130=>'Chrome 25.0', +5358=>'Iron 24.0', +5126=>'Chrome 28.0', +5090=>'Chrome 31.0', +5092=>'Chrome 30.0', +5127=>'Chrome 27.0', +5128=>'Chrome 26.0', +5357=>'Iron 23.0', +5099=>'Chrome 13.0', +5102=>'Chrome 11.0', +5103=>'Chrome 10.0', +5123=>'Chrome 12.0', +5122=>'Chrome 16.0', +5139=>'Chrome 18.0', +5144=>'Chrome 17.0', +5096=>'Chrome 14.0', +5095=>'Chrome 15.0', +4251=>'Microsoft Outlook 2010', +4252=>'Miscellaneous Browsers', +5332=>'Iron 31.0', +5333=>'Iron 32.0', +5348=>'Iron 27.0', +5347=>'Iron 29.0', +5360=>'Iron 26.0', +5345=>'Iron 30.0', +5346=>'Iron 28.0', +5359=>'Iron 25.0', +5221=>'Chrome 9.0', +5226=>'Chrome 8.0', +5220=>'Chrome 7.0', +5219=>'Chrome 6.0', +4652=>'Chromium Generic', 5565=>'Dolfin', -5457=>'Palm Web', -5254=>'Safari 5.1', -5261=>'Safari 6.0', -5239=>'Arora 0.10', -5222=>'Safari 6.1', -5240=>'Arora 0.11', -5219=>'Safari 7.0', -4774=>'Chrome Generic', -5614=>'Yahoo', -5120=>'Google Code', -5359=>'Arora 0.9', -5319=>'Arora 0.8', -5251=>'Safari 2.0', -5262=>'Safari 3.0', -5252=>'Safari 5.0', -5258=>'Safari 4.0', -4832=>'Arora Generic', -5449=>'IEMobile', -5501=>'AOL 9.5', +5448=>'Palm Web', +5253=>'Arora 0.10', +5246=>'Safari 5.1', +5235=>'Safari 6.0', +5248=>'Safari 7.0', +5247=>'Safari 6.1', +5237=>'Arora 0.11', +4789=>'Chrome Generic', +5612=>'Yahoo', +5063=>'Google Code', +5250=>'Safari 5.0', +5336=>'Arora 0.9', +5251=>'Safari 4.0', +5258=>'Safari 3.0', +5335=>'Arora 0.8', +5255=>'Safari 2.0', +4836=>'Arora Generic', +5437=>'IEMobile', +5523=>'AOL 9.5', 4255=>'Microsoft Outlook 2007', -5334=>'Iron 12.0', -5333=>'Iron 11.0', -5332=>'Iron 10.0', -5339=>'Iron 19.0', -5342=>'Iron 20.0', -5353=>'Iron 18.0', -5325=>'Iron 16.0', -5327=>'Iron 15.0', -5346=>'Iron 21.0', -5338=>'Iron 17.0', -5329=>'Iron 13.0', -5347=>'Iron 22.0', -5326=>'Iron 14.0', -5609=>'Baidu', -4780=>'Image Crawlers', -5558=>'Blazer', -5320=>'Iceweasel', -5452=>'Iron 6.0', -5453=>'Iron 7.0', -5451=>'Iron 8.0', -5456=>'Iron 9.0', -5351=>'Flock 1.0', -5321=>'Flock 2.0', -4969=>'Iron Generic', -5061=>'Fennec 10.0', -5098=>'Firefox 3.6', -5255=>'Fennec 4.0', -5605=>'Maemo', -4584=>'Feeds Syndicators', -5106=>'Firefox 3.5', -5253=>'Fennec 5.0', -5259=>'Fennec 6.0', -5257=>'Fennec 7.0', -5570=>'IE 8.0', -4944=>'Netscape 8.0', -4982=>'Opera Mobile', -4589=>'Social Networking', -5135=>'Firefox 3.0', -5103=>'Firefox 3.1', -5586=>'IE 9.0', -4840=>'Site Monitors', -5436=>'Facebook', -4835=>'SeaMonkey 1.0', -4849=>'SeaMonkey 1.1', -4863=>'SeaMonkey 2.0', -4843=>'Konqueror 4.7', -4839=>'Konqueror 4.8', -4870=>'Proxy Servers', +5351=>'Iron 16.0', +5354=>'Iron 20.0', +5353=>'Iron 19.0', +5328=>'Iron 18.0', +5356=>'Iron 22.0', +5355=>'Iron 21.0', +5329=>'Iron 12.0', +5338=>'Iron 13.0', +5322=>'Iron 11.0', +5349=>'Iron 14.0', +5350=>'Iron 15.0', +5352=>'Iron 17.0', +5327=>'Iron 10.0', +5602=>'Baidu', +4788=>'Image Crawlers', +5573=>'Blazer', +5326=>'Iceweasel', +5434=>'Iron 8.0', +5449=>'Iron 9.0', +5431=>'Iron 7.0', +5433=>'Iron 6.0', +5340=>'Flock 2.0', +5342=>'Flock 1.0', +4981=>'Iron Generic', +5079=>'Fennec 10.0', +5124=>'Firefox 3.6', +5244=>'Fennec 4.0', +5613=>'Maemo', +4586=>'Feeds Syndicators', +5116=>'Firefox 3.5', +5240=>'Fennec 5.0', +5242=>'Fennec 7.0', +5238=>'Fennec 6.0', +5563=>'IE 8.0', +4969=>'Netscape 8.0', +4951=>'Opera Mobile', +4592=>'Social Networking', +5094=>'Firefox 3.0', +5110=>'Firefox 3.1', +5567=>'IE 9.0', +4845=>'Site Monitors', +5441=>'Facebook', +4882=>'SeaMonkey 1.0', +4877=>'SeaMonkey 2.0', +4885=>'SeaMonkey 1.1', 4844=>'Konqueror 4.6', -4848=>'Konqueror 4.5', -4779=>'Safari Generic', -5223=>'UC Browser', -5571=>'Camino', -5574=>'IE 7.0', -4841=>'Link Checkers', -4950=>'K-Meleon 1.0', -4957=>'K-Meleon 1.5', -4955=>'K-Meleon 1.6', -4956=>'K-Meleon 1.1', -5099=>'Firefox 2.0', -5094=>'Firefox 1.0', -5508=>'Webaroo', -4576=>'Research Projects', -4831=>'Konqueror 4.0', -4861=>'SeaMonkey 2.1', -4783=>'AOL 9.1/IE 8.0', -4867=>'Seamonkey 2.2', -4855=>'Seamonkey 2.4', -4866=>'Seamonkey 2.3', -4857=>'Seamonkey 2.5', +4879=>'Proxy Servers', +4843=>'Konqueror 4.7', +4847=>'Konqueror 4.8', +4829=>'Konqueror 4.5', +4774=>'Safari Generic', +5262=>'UC Browser', +5555=>'Camino', +5561=>'IE 7.0', +4854=>'Link Checkers', +4961=>'K-Meleon 1.0', +4941=>'K-Meleon 1.5', +4942=>'K-Meleon 1.6', +4974=>'K-Meleon 1.1', +5118=>'Firefox 2.0', +5510=>'Webaroo', +5076=>'Firefox 1.0', +4579=>'Research Projects', +4841=>'Konqueror 4.0', +4880=>'SeaMonkey 2.1', +4886=>'Seamonkey 2.5', +4878=>'Seamonkey 2.4', +4883=>'Seamonkey 2.3', +4881=>'Seamonkey 2.2', +4777=>'AOL 9.0/IE 7.0', +4791=>'AOL 9.0/IE 5.5', +4772=>'AOL 9.1/IE 7.0', 4773=>'AOL 9.0/IE 6.0', -4771=>'AOL 9.0/IE 7.0', -4778=>'AOL 9.1/IE 7.0', -4777=>'AOL 9.0/IE 8.0', -4792=>'AOL 9.0/IE 5.5', -5357=>'Microsoft', -5448=>'Netcraft', -4581=>'Windows Live Mail', +4779=>'AOL 9.1/IE 8.0', +4785=>'AOL 9.0/IE 8.0', +5324=>'Microsoft', +5440=>'Netcraft', +4585=>'Windows Live Mail', 5634=>'Brew', -5642=>'MSN', -4833=>'Media Players', -5142=>'Firefox 4.2', -5502=>'Chimera', +5643=>'MSN', +4839=>'Media Players', +5093=>'Firefox 4.2', +5520=>'Chimera', 5522=>'PowerTV', -5583=>'DotBot', -4947=>'Netscape 6.0', -4948=>'Netscape 9.0', -4958=>'Netscape 7.0', -5444=>'Sleipnir', -5116=>'Firefox 5.0', -5137=>'Firefox 4.0', -5100=>'Maxthon 2.0', -4706=>'Best of the Web', -4960=>'Firefox 13.0', -4978=>'Firefox 12.0', -4965=>'Firefox 11.0', -4959=>'Firefox 10.0', -4721=>'HTML Validators', -5073=>'Firefox 7.0', -5077=>'Firefox 6.0', -5075=>'Firefox 8.0', -5059=>'Firefox 9.0', -5523=>'Rippers', -5631=>'iCab', -5561=>'IE 6.0', -4714=>'Thunderbird 5.0', -5080=>'Mozilla 1.7', -5057=>'Mozilla 1.8', -5074=>'Mozilla 1.5', -5069=>'Mozilla 1.4', -5079=>'Mozilla 1.6', -5060=>'Mozilla 1.9', -5318=>'Pocket PC', -4043=>'Motorola Internet Browser', -4538=>'Lycoris Desktop/LX', -4718=>'Lotus Notes 5.0', -4789=>'Microsoft Zune', -5557=>'IE 5.0', -5566=>'IE 4.0', -4966=>'Firefox 15.0', -4981=>'Firefox 18.0', -4972=>'Firefox 14.0', -4975=>'Firefox 23.0', -4983=>'Firefox 16.0', -4939=>'Firefox 19.0', -4967=>'Firefox 24.0', -4980=>'Firefox 21.0', -4976=>'Firefox 22.0', -4984=>'Firefox 20.0', -4963=>'Firefox 17.0', -5225=>'Fennec 1.0', -5559=>'Yandex', -4649=>'Thunderbird 12.0', -4651=>'Thunderbird 13.0', -4641=>'Thunderbird 14.0', -4720=>'Thunderbird 3.1', -4643=>'Thunderbird 11.0', -4724=>'Thunderbird 1.5', -4639=>'Thunderbird 10.0', -4782=>'Fast/AllTheWeb', -4702=>'Lotus Notes 6.0', -4704=>'Thunderbird 1.0', -4722=>'Thunderbird 3.0', -4707=>'Thunderbird 2.0', -4700=>'Thunderbird 6.0', -4709=>'Thunderbird 8.0', -4715=>'Thunderbird 7.0', -4710=>'Thunderbird 9.0', -5604=>'Boxee', -5510=>'FeedHub', -5500=>'IBrowse', -5584=>'Teleca', -5587=>'Envolk', -5573=>'Shiira', -5509=>'IE 10.0', -4580=>'E-Mail Harvesters', -4345=>'HP Secure Web Browser', -4594=>'Blue Coat Systems', -4953=>'iVia Project', -5572=>'Galeon', -4942=>'Jayde Online', +5585=>'DotBot', +4965=>'Netscape 6.0', +4952=>'Netscape 7.0', +4973=>'Netscape 9.0', +5450=>'Sleipnir', +5115=>'Firefox 4.0', +5100=>'Firefox 5.0', +5081=>'Maxthon 2.0', +4721=>'Best of the Web', +4957=>'Firefox 13.0', +4976=>'Firefox 11.0', +4955=>'Firefox 12.0', +4946=>'Firefox 10.0', +4700=>'HTML Validators', +5058=>'Firefox 7.0', +5066=>'Firefox 8.0', +5135=>'Firefox 6.0', +5087=>'Firefox 9.0', +5517=>'Rippers', +5629=>'iCab', +5560=>'IE 6.0', +4712=>'Thunderbird 5.0', +5136=>'Mozilla 1.4', +5067=>'Mozilla 1.6', +5062=>'Mozilla 1.5', +5070=>'Mozilla 1.7', +5082=>'Mozilla 1.9', +5069=>'Mozilla 1.8', +5330=>'Pocket PC', +4045=>'Motorola Internet Browser', +4540=>'Lycoris Desktop/LX', +4706=>'Lotus Notes 5.0', +4790=>'Microsoft Zune', +5554=>'IE 5.0', +5587=>'IE 4.0', +4962=>'Firefox 17.0', +4963=>'Firefox 18.0', +4986=>'Firefox 14.0', +4978=>'Firefox 21.0', +4958=>'Firefox 20.0', +4968=>'Firefox 24.0', +4977=>'Firefox 22.0', +4971=>'Firefox 16.0', +4956=>'Firefox 23.0', +4940=>'Firefox 19.0', +4954=>'Firefox 15.0', +5249=>'Fennec 1.0', +5588=>'Yandex', +4654=>'Thunderbird 13.0', +4710=>'Thunderbird 3.1', +4653=>'Thunderbird 12.0', +4639=>'Thunderbird 11.0', +4723=>'Thunderbird 1.5', +4651=>'Thunderbird 14.0', +4658=>'Thunderbird 10.0', +4786=>'Fast/AllTheWeb', +4711=>'Lotus Notes 6.0', +4719=>'Thunderbird 8.0', +4713=>'Thunderbird 2.0', +4715=>'Thunderbird 3.0', +4714=>'Thunderbird 6.0', +4724=>'Thunderbird 1.0', +4722=>'Thunderbird 9.0', +4717=>'Thunderbird 7.0', +5614=>'Boxee', +5507=>'FeedHub', +5508=>'IBrowse', +5562=>'Teleca', +5568=>'Envolk', +5575=>'Shiira', +5506=>'IE 10.0', +4576=>'E-Mail Harvesters', +4344=>'HP Secure Web Browser', +4580=>'Blue Coat Systems', +4960=>'iVia Project', +5579=>'Galeon', +4980=>'Jayde Online', 5632=>'Snap', 4699=>'Online Scanners', -5603=>'WebTV', -5521=>'Exalead', -5588=>'Become', -5144=>'Opera 12.11', -5140=>'Opera 12.16', -5131=>'Opera 12.13', -5139=>'Opera 12.15', -5132=>'Opera 12.10', -5143=>'Opera 12.14', -5134=>'Opera 12.12', -5438=>'YodaoBot', -5577=>'Netbox', +5511=>'Exalead', +5607=>'WebTV', +5577=>'Become', +5121=>'Opera 12.16', +5098=>'Opera 12.12', +5105=>'Opera 12.13', +5106=>'Opera 12.14', +5065=>'Opera 12.11', +5064=>'Opera 12.10', +5107=>'Opera 12.15', +5452=>'YodaoBot', +5558=>'Netbox', 5641=>'Ask', -5090=>'Opera 11.60', -5108=>'Opera 11.10', -5083=>'Opera 11.50', +5080=>'Opera 11.10', +5059=>'Opera 11.60', +5068=>'Opera 11.50', 5445=>'fantomas', -4658=>'Internet Archive', -5107=>'Opera 11.00', -5095=>'Opera 12.00', -5112=>'Opera 10.00', -4868=>'QuickTime 7.6', -4865=>'QuickTime 7.0', -4788=>'QuickTime 10.0', -4784=>'Opera Mini 6.0', -4776=>'Opera Mini 8.0', -4785=>'Opera Mini 9.0', -4775=>'Opera Mini 7.0', -5102=>'Playstation', -5063=>'Feeds Blogs', -4864=>'QuickTime 6.0', -4862=>'QuickTime 5.0', -5064=>'AOL Generic', -4786=>'Opera Mini 5.0', -4791=>'Opera Mini 2.0', -4770=>'Opera Mini 3.0', -4790=>'Opera Mini 4.0', -5243=>'Opera 2.00', -5237=>'Opera 6.00', -5235=>'Opera 9.00', -5246=>'Opera 4.00', +4648=>'Internet Archive', +5057=>'Opera 12.00', +5089=>'Opera 11.00', +5088=>'Opera 10.00', +4833=>'QuickTime 7.6', +4792=>'QuickTime 10.0', +4835=>'QuickTime 7.0', +4770=>'Opera Mini 9.0', +4782=>'Opera Mini 7.0', +4781=>'Opera Mini 6.0', +4783=>'Opera Mini 8.0', +5078=>'Playstation', +5084=>'Feeds Blogs', +4842=>'QuickTime 5.0', +4846=>'QuickTime 6.0', +4776=>'Opera Mini 3.0', +5142=>'AOL Generic', +4775=>'Opera Mini 2.0', +4780=>'Opera Mini 5.0', +4778=>'Opera Mini 4.0', +5224=>'Opera 5.00', +5264=>'Opera 3.00', +5234=>'Opera 6.00', 5230=>'Opera 8.00', -5244=>'Opera 3.00', -5238=>'Opera 5.00', 5231=>'Opera 7.00', -5330=>'DNS Tools', -4434=>'Copyright/Plagiarism', -5360=>'FrontPage', -5511=>'Jasmine', -4542=>'Opera Mini Generic', -4970=>'Nintendo Wii', +5228=>'Opera 9.00', +5252=>'Opera 2.00', +5222=>'Opera 4.00', +5341=>'DNS Tools', +4436=>'Copyright/Plagiarism', +5344=>'FrontPage', +5513=>'Jasmine', +4538=>'Opera Mini Generic', +4953=>'Nintendo Wii', 5576=>'IE 1.5', -4836=>'Opera Generic', +4831=>'Opera Generic', 4578=>'Download Managers', -5569=>'IE 2.0', -5578=>'IE 3.0', -4592=>'DefaultProperties', -5554=>'Nagios', -5581=>'Google', -5579=>'IE 1.0', -5344=>'NewsGator', -5068=>'Mozilla 1.3', -5627=>'KDDI', -5070=>'Mozilla 1.2', -5071=>'Mozilla 1.1', -5076=>'Mozilla 1.0', -4945=>'Netscape 4.8', -5122=>'ELinks 0.12', -5124=>'ELinks 0.11', -5126=>'ELinks 0.10', -4951=>'Netscape 4.7', -5119=>'ELinks 0.13', -5506=>'Convera', -5101=>'Translators', -4943=>'Netscape 4.0', -5250=>'ELinks 0.9', +5580=>'IE 3.0', +5578=>'IE 2.0', +4591=>'DefaultProperties', +5566=>'Nagios', +5557=>'Google', +5574=>'IE 1.0', +5321=>'NewsGator', +5140=>'Mozilla 1.3', +5633=>'KDDI', +5133=>'Mozilla 1.2', +5108=>'Mozilla 1.1', +5097=>'Mozilla 1.0', +4947=>'Netscape 4.7', +5074=>'ELinks 0.10', +5072=>'ELinks 0.12', +5073=>'ELinks 0.11', +4949=>'Netscape 4.8', +5071=>'ELinks 0.13', +5512=>'Convera', +5119=>'Translators', +5233=>'ELinks 0.9', +4985=>'Netscape 4.0', +5261=>'BlackBerry', 5644=>'W3C', -5221=>'BlackBerry', -5516=>'Polaris', -5608=>'Links', +5505=>'Polaris', +5604=>'Links', 4438=>'Windows Media Player', -5610=>'Lycos', -5567=>'Mosaic', -5615=>'Nutch', -3352=>'Internet Content Rating Association', -5612=>'Sogou', -5575=>'iSiloX', -4829=>'Konqueror 3.0', -5633=>'Ilse', -4638=>'Offline Browsers', -5518=>'Gigabot', -5220=>'Word Press', -5435=>'Emacs/W3', -5582=>'Boitho', -5556=>'Hatena', -5118=>'NetPositive', -4540=>'BitTorrent Clients', -4977=>'SEMC Browser', -4194=>'Openwave Mobile Browser', -5563=>'DoCoMo', -5611=>'Dillo', -5602=>'Amaya', -5626=>'Lynx', -5643=>'w3m', -5109=>'NameProtect', -4650=>'VLC Media Player' +5615=>'Lycos', +5559=>'Mosaic', +3353=>'Internet Content Rating Association', +5609=>'Nutch', +5572=>'iSiloX', +5608=>'Sogou', +4848=>'Konqueror 3.0', +5626=>'Ilse', +4646=>'Offline Browsers', +5229=>'Word Press', +5504=>'Gigabot', +5432=>'Emacs/W3', +5584=>'Boitho', +5583=>'Hatena', +5091=>'NetPositive', +4539=>'BitTorrent Clients', +4939=>'SEMC Browser', +4197=>'Openwave Mobile Browser', +5564=>'DoCoMo', +5603=>'Dillo', +5606=>'Amaya', +5627=>'Lynx', +5642=>'w3m', +5112=>'NameProtect', +4643=>'VLC Media Player' ); $patterns=array( '@^Browser Capabilities Project AutoDownloader; created by Tom Kelleher Consulting, Inc\. \(tkelleher\.com\); used with special permission from Gary Joel Keith; uses Microsoft\'s WinHTTP component$@'=>0, @@ -6090,15 +6090,15 @@ '@^Mozilla/5\.0 \(iPhone.*CPU.*OS 3_1.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/4\.0.*Mobile/.*Safari/528.*$@'=>8, '@^Mozilla/5\.0 \(X11; U\: Linux i686; .*\) AppleWebKit/.* \(KHTML, like Gecko\) Chrome/5\..* Large Screen Safari/.* GoogleTV/.*$@'=>9, '@^Mozilla/5\.0 \(Macintosh; U; Intel Mac OS X 10.*; .*\) AppleWebKit/.* \(KHTML, like Gecko\) RockMelt/.* Chrome/.* Safari/.*$@'=>10, -'@^Mozilla/5\.0 \(iPhone.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/(\d)\.(\d).*Mobile/.*Safari/.*$@'=>'a:13:{s:8:"@5|1|5|1";i:11;s:8:"@6|0|6|0";i:12;s:8:"@4|3|5|0";i:13;s:8:"@2|0|3|1";i:14;s:8:"@6|1|6|1";i:15;s:8:"@4|2|5|0";i:16;s:8:"@2|1|3|1";i:17;s:8:"@3|0|4|0";i:18;s:8:"@3|2|4|0";i:19;s:8:"@4|0|4|0";i:20;s:8:"@4|1|4|0";i:21;s:8:"@2|2|3|1";i:22;s:8:"@5|0|5|1";i:23;}', -'@^Mozilla/5\.0 \(iPad.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/(\d)\.(\d)\..*Mobile/.*Safari/.*$@'=>'a:7:{s:8:"@5|0|5|1";i:24;s:8:"@4|2|5|0";i:25;s:8:"@3|2|4|0";i:26;s:8:"@4|3|5|0";i:27;s:8:"@6|0|6|0";i:28;s:8:"@6|1|6|1";i:29;s:8:"@5|1|5|1";i:30;}', -'@^Mozilla/5\.0 \(iPod.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/(\d)\.(\d).*Mobile/.*Safari/.*$@'=>'a:13:{s:8:"@4|3|5|0";i:31;s:8:"@5|0|5|1";i:32;s:8:"@3|0|4|0";i:33;s:8:"@2|2|3|1";i:34;s:8:"@4|2|5|0";i:35;s:8:"@5|1|5|1";i:37;s:8:"@6|1|6|1";i:38;s:8:"@2|0|3|1";i:39;s:8:"@6|0|6|0";i:40;s:8:"@2|1|3|1";i:41;s:8:"@4|1|4|0";i:42;s:8:"@4|0|4|0";i:43;s:8:"@3|1|4|0";i:44;}', -'@^Mozilla/5\.0 \(iPhone.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/7\.0.*Mobile/.*Safari/.*$@'=>36, +'@^Mozilla/5\.0 \(iPhone.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/(\d)\.(\d).*Mobile/.*Safari/.*$@'=>'a:13:{s:8:"@6|0|6|0";i:11;s:8:"@4|0|4|0";i:12;s:8:"@4|1|4|0";i:13;s:8:"@5|1|5|1";i:14;s:8:"@5|0|5|1";i:15;s:8:"@4|2|5|0";i:16;s:8:"@2|2|3|1";i:17;s:8:"@2|0|3|1";i:18;s:8:"@4|3|5|0";i:19;s:8:"@2|1|3|1";i:20;s:8:"@6|1|6|1";i:21;s:8:"@3|2|4|0";i:22;s:8:"@3|0|4|0";i:23;}', +'@^Mozilla/5\.0 \(iPad.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/(\d)\.(\d)\..*Mobile/.*Safari/.*$@'=>'a:7:{s:8:"@6|1|6|1";i:24;s:8:"@4|3|5|0";i:25;s:8:"@5|0|5|1";i:26;s:8:"@5|1|5|1";i:27;s:8:"@4|2|5|0";i:28;s:8:"@3|2|4|0";i:29;s:8:"@6|0|6|0";i:30;}', +'@^Mozilla/5\.0 \(iPod.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/(\d)\.(\d).*Mobile/.*Safari/.*$@'=>'a:13:{s:8:"@5|1|5|1";i:31;s:8:"@3|1|4|0";i:32;s:8:"@4|2|5|0";i:33;s:8:"@2|1|3|1";i:34;s:8:"@4|3|5|0";i:35;s:8:"@3|0|4|0";i:36;s:8:"@2|2|3|1";i:37;s:8:"@2|0|3|1";i:38;s:8:"@6|1|6|1";i:39;s:8:"@5|0|5|1";i:40;s:8:"@4|0|4|0";i:41;s:8:"@4|1|4|0";i:42;s:8:"@6|0|6|0";i:44;}', +'@^Mozilla/5\.0 \(iPhone.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/7\.0.*Mobile/.*Safari/.*$@'=>43, '@^Mozilla/5\.0 \(iPad.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/7\.0\..*Mobile/.*Safari/.*$@'=>45, '@^Mozilla/4\.0 \(compatible; MSIE .*; Windows NT; Girafabot; girafabot at girafa dot com; http\://www\.girafa\.com\)$@'=>46, '@^Mozilla/5\.0 \(Linux.*Android 2\.3.*NookColor.*\).*AppleWebKit/533\.1.*\(.*KHTML, like Gecko.*\).*Version/4\..*Safari/533\.1.*$@'=>47, '@^Mozilla/5\.0 \(iPod.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/7\.0.*Mobile/.*Safari/.*$@'=>48, -'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d); .*\) AppleWebKit/.* \(KHTML, like Gecko\) RockMelt/.* Chrome/.* Safari/.*$@'=>'a:3:{s:4:"@6|0";i:49;s:4:"@5|1";i:50;s:4:"@6|1";i:51;}', +'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d); .*\) AppleWebKit/.* \(KHTML, like Gecko\) RockMelt/.* Chrome/.* Safari/.*$@'=>'a:3:{s:4:"@6|0";i:49;s:4:"@6|1";i:50;s:4:"@5|1";i:51;}', '@^Mozilla/5\.0 \(Macintosh.*Mac OS X 10_5.*\).*AppleWebKit/530\.17.*\(KHTML, like Gecko\).*Version/.*Safari/.*Skyfire/2\..*$@'=>52, '@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/528\.16\) .*Version/5\.10.* .*OmniWeb/v622\..*$@'=>53, '@^Mozilla/5\.0 \(Macintosh; U; .*Mac OS X.*; .*\) AppleWebKit/.* \(KHTML, like Gecko\) Flock/3\..* Chrome/.* Safari/.*$@'=>54, @@ -6106,247 +6106,247 @@ '@^Mozilla/5\.0 \(Linux.*Android 2\.3.*NOOK.*\).*AppleWebKit/533\.1.*\(.*KHTML, like Gecko.*\).*Version/4\..*Safari/533\.1.*$@'=>56, '@^Mozilla/5\.0 \(iPod.*CPU like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/3\.0.*Mobile/.*Safari/.*$@'=>57, '@^Mozilla/5\.0 \(compatible; MSIE 7\.0; MSIE 6\.0; ScanAlert; \+http\://www\.scanalert\.com/bot\.jsp\) Firefox/.*$@'=>58, -'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d); .*; rv\:1\.9\..*\) Gecko/20100403 Firefox/3\.6\..* \(Palemoon/3\.6\..*\)$@'=>'a:5:{s:4:"@5|2";i:59;s:4:"@5|1";i:60;s:4:"@5|0";i:61;s:4:"@6|1";i:62;s:4:"@6|0";i:63;}', +'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d); .*; rv\:1\.9\..*\) Gecko/20100403 Firefox/3\.6\..* \(Palemoon/3\.6\..*\)$@'=>'a:5:{s:4:"@6|1";i:59;s:4:"@6|0";i:60;s:4:"@5|2";i:61;s:4:"@5|1";i:62;s:4:"@5|0";i:63;}', '@^Mozilla/5\.0 \(compatible; Speedy Spider; http\://www\.entireweb\.com/about/search_tech/speedy_spider/\)$@'=>64, -'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d); .*\) AppleWebKit/.* \(KHTML, like Gecko\) Maxthon/3\.0 Safari/.*$@'=>'a:5:{s:4:"@5|2";i:65;s:4:"@6|0";i:66;s:4:"@6|1";i:67;s:4:"@5|1";i:68;s:4:"@5|0";i:69;}', -'@^SonyEricsson.*; Mozilla/5\.0 \(.*SymbianOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/3\..* .*Safari/.*$@'=>70, -'@^SonyEricsson.*/.* Mozilla/5\.0 \(SymbianOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/2\..* .*Safari/.*$@'=>71, +'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d); .*\) AppleWebKit/.* \(KHTML, like Gecko\) Maxthon/3\.0 Safari/.*$@'=>'a:5:{s:4:"@5|1";i:65;s:4:"@6|1";i:66;s:4:"@6|0";i:67;s:4:"@5|0";i:68;s:4:"@5|2";i:69;}', +'@^SonyEricsson.*/.* Mozilla/5\.0 \(SymbianOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/2\..* .*Safari/.*$@'=>70, +'@^SonyEricsson.*; Mozilla/5\.0 \(.*SymbianOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/3\..* .*Safari/.*$@'=>71, '@^Mozilla/5\.0 \(Linux.*Android 3\..*sdk.*\).*AppleWebKit/534\.13.*\(.*KHTML, like Gecko.*\).*Version/4\..*Safari/.*$@'=>72, '@^Runnk online rss reader \: http\://www\.runnk\.com/ \: RSS favorites \: RSS ranking \: RSS aggregator.*$@'=>73, -'@^Mozilla/5\.0 \(Linux.*Android (\d)\.(\d).*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/(\d)\.(\d).*Mobile Safari/.*$@'=>'a:18:{s:8:"@2|0|4|0";i:74;s:8:"@2|1|4|0";i:75;s:8:"@2|2|4|0";i:76;s:8:"@4|1|4|0";i:77;s:8:"@1|6|4|0";i:78;s:8:"@4|0|4|0";i:79;s:8:"@2|3|4|0";i:80;s:8:"@1|1|3|0";i:81;s:8:"@1|6|3|1";i:82;s:8:"@2|1|3|1";i:83;s:8:"@1|5|3|1";i:84;s:8:"@1|0|3|0";i:85;s:8:"@1|5|4|0";i:86;s:8:"@2|2|3|1";i:87;s:8:"@2|0|3|1";i:88;s:8:"@1|0|4|0";i:89;s:8:"@1|1|4|0";i:90;s:8:"@2|3|3|1";i:91;}', +'@^Mozilla/5\.0 \(Linux.*Android (\d)\.(\d).*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/(\d)\.(\d).*Mobile Safari/.*$@'=>'a:18:{s:8:"@2|0|4|0";i:74;s:8:"@1|0|3|0";i:75;s:8:"@4|0|4|0";i:76;s:8:"@1|1|3|0";i:77;s:8:"@2|1|4|0";i:78;s:8:"@2|3|4|0";i:79;s:8:"@2|2|4|0";i:80;s:8:"@1|5|3|1";i:81;s:8:"@1|6|4|0";i:82;s:8:"@1|5|4|0";i:83;s:8:"@1|1|4|0";i:84;s:8:"@1|0|4|0";i:85;s:8:"@2|3|3|1";i:86;s:8:"@2|2|3|1";i:87;s:8:"@2|1|3|1";i:88;s:8:"@4|1|4|0";i:89;s:8:"@2|0|3|1";i:90;s:8:"@1|6|3|1";i:91;}', '@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Version/5\.11.* .*OmniWeb/.*$@'=>92, '@^Mozilla/5\.0 \(Linux.*Android 3\..*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/(\d)\.(\d).*Mobile Safari/.*$@'=>'a:2:{s:4:"@4|0";i:93;s:4:"@3|1";i:94;}', '@^SaladSpoon/ShopSalad 1\..* \(Search Engine crawler for ShopSalad\.com; .*; crawler\@shopsalad\.com\)$@'=>95, -'@^Mozilla/4\.0 \(compatible; MSIE 8\.0; AOL 9\.6; AOLBuild.*; Windows NT (\d)\.(\d); WOW64; Trident/4\.0.*\).*$@'=>'a:3:{s:4:"@6|0";i:96;s:4:"@6|1";i:97;s:4:"@5|2";i:98;}', -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chromium/(\d)(\d)\..*Chrome/.*Safari/.*$@'=>'a:23:{s:4:"@1|6";i:99;s:4:"@3|0";i:100;s:4:"@3|1";i:101;s:4:"@1|5";i:102;s:4:"@1|4";i:103;s:4:"@2|9";i:104;s:4:"@3|2";i:105;s:4:"@1|9";i:106;s:4:"@2|0";i:107;s:4:"@2|1";i:108;s:4:"@2|2";i:109;s:4:"@2|3";i:110;s:4:"@2|4";i:111;s:4:"@2|5";i:112;s:4:"@2|7";i:113;s:4:"@1|8";i:114;s:4:"@2|6";i:115;s:4:"@2|8";i:116;s:4:"@1|7";i:117;s:4:"@1|0";i:118;s:4:"@1|3";i:119;s:4:"@1|1";i:120;s:4:"@1|2";i:121;}', -'@^Mozilla/5\.0 \(Linux.*Android (\d)\.(\d).*GT\-.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/4\.0.*Safari/.*$@'=>'a:3:{s:4:"@4|0";i:122;s:4:"@3|2";i:123;s:4:"@4|1";i:124;}', +'@^Mozilla/4\.0 \(compatible; MSIE 8\.0; AOL 9\.6; AOLBuild.*; Windows NT (\d)\.(\d); WOW64; Trident/4\.0.*\).*$@'=>'a:3:{s:4:"@6|1";i:96;s:4:"@5|2";i:97;s:4:"@6|0";i:98;}', +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chromium/(\d)(\d)\..*Chrome/.*Safari/.*$@'=>'a:23:{s:4:"@3|1";i:99;s:4:"@2|6";i:100;s:4:"@2|3";i:101;s:4:"@2|1";i:102;s:4:"@2|2";i:103;s:4:"@2|7";i:104;s:4:"@3|0";i:105;s:4:"@2|8";i:106;s:4:"@2|0";i:107;s:4:"@1|9";i:108;s:4:"@2|9";i:109;s:4:"@1|8";i:110;s:4:"@2|4";i:111;s:4:"@2|5";i:112;s:4:"@1|1";i:113;s:4:"@1|4";i:114;s:4:"@1|3";i:115;s:4:"@1|2";i:116;s:4:"@1|5";i:117;s:4:"@1|6";i:118;s:4:"@1|7";i:119;s:4:"@3|2";i:120;s:4:"@1|0";i:121;}', +'@^Mozilla/5\.0 \(Linux.*Android (\d)\.(\d).*GT\-.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Version/4\.0.*Safari/.*$@'=>'a:3:{s:4:"@4|0";i:122;s:4:"@4|1";i:123;s:4:"@3|2";i:124;}', '@^Mozilla/5\.0 \(iPhone.*CPU.*OS 5_1.* like Mac OS X.*\).*AppleWebKit.*\(.*KHTML, like Gecko.*\).*Mobile.*FB.*$@'=>125, -'@^Mozilla/5\.0 \(Windows; U; Windows NT .*; .*\) AppleWebKit/.* \(KHTML, like Gecko.*\) Lunascape/(\d)\.(\d).*$@'=>'a:3:{s:4:"@5|0";i:126;s:4:"@5|1";i:127;s:4:"@6|0";i:128;}', -'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/525\.20\) .*OmniWeb/v622\.3\..*$@'=>129, -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chromium/(\d)\..*Chrome/.*Safari/.*$@'=>'a:4:{s:2:"@6";i:130;s:2:"@7";i:131;s:2:"@8";i:132;s:2:"@9";i:133;}', -'@^Mozilla/5\.0 \(iPhone.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>'a:11:{s:4:"@5|0";i:134;s:4:"@6|0";i:135;s:4:"@6|1";i:136;s:4:"@3|2";i:137;s:4:"@4|0";i:138;s:4:"@4|1";i:139;s:4:"@3|1";i:140;s:4:"@5|1";i:141;s:4:"@4|3";i:142;s:4:"@4|2";i:143;s:4:"@3|0";i:144;}', +'@^Mozilla/5\.0 \(Windows; U; Windows NT .*; .*\) AppleWebKit/.* \(KHTML, like Gecko.*\) Lunascape/(\d)\.(\d).*$@'=>'a:3:{s:4:"@5|1";i:126;s:4:"@6|0";i:127;s:4:"@5|0";i:129;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/525\.20\) .*OmniWeb/v622\.3\..*$@'=>128, +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chromium/(\d)\..*Chrome/.*Safari/.*$@'=>'a:4:{s:2:"@6";i:130;s:2:"@9";i:131;s:2:"@8";i:132;s:2:"@7";i:133;}', +'@^Mozilla/5\.0 \(iPhone.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>'a:11:{s:4:"@6|0";i:134;s:4:"@4|0";i:135;s:4:"@6|1";i:136;s:4:"@4|1";i:137;s:4:"@3|2";i:138;s:4:"@3|0";i:139;s:4:"@4|2";i:140;s:4:"@5|0";i:141;s:4:"@4|3";i:142;s:4:"@3|1";i:143;s:4:"@5|1";i:144;}', '@^Mozilla/5\.0 \(compatible; Kyluka crawl; http\://www\.kyluka\.com/crawl\.html; crawl\@kyluka\.com\)$@'=>145, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:111:{s:8:"@6|1|1|2";i:146;s:8:"@6|1|1|3";i:147;s:8:"@6|0|1|3";i:150;s:8:"@5|2|1|3";i:151;s:8:"@5|1|1|3";i:152;s:8:"@5|1|2|9";i:153;s:8:"@6|0|1|1";i:154;s:8:"@5|2|1|0";i:155;s:8:"@6|0|1|0";i:156;s:8:"@5|1|1|0";i:157;s:8:"@6|0|2|4";i:158;s:8:"@6|0|2|9";i:159;s:8:"@6|1|1|0";i:160;s:8:"@5|2|2|9";i:161;s:8:"@5|1|1|2";i:162;s:8:"@5|2|1|2";i:163;s:8:"@6|1|1|1";i:164;s:8:"@5|2|1|1";i:165;s:8:"@5|1|1|1";i:166;s:8:"@6|0|1|2";i:167;s:8:"@6|1|1|4";i:168;s:8:"@6|2|1|5";i:169;s:8:"@5|1|1|6";i:170;s:8:"@6|1|1|5";i:171;s:8:"@6|0|1|5";i:172;s:8:"@6|2|2|6";i:173;s:8:"@5|2|1|6";i:174;s:8:"@6|0|1|6";i:175;s:8:"@5|2|1|7";i:176;s:8:"@6|0|1|7";i:177;s:8:"@5|1|1|7";i:178;s:8:"@6|2|1|6";i:179;s:8:"@6|1|1|6";i:180;s:8:"@5|2|1|5";i:181;s:8:"@6|1|2|6";i:182;s:8:"@5|2|1|4";i:183;s:8:"@5|1|2|6";i:184;s:8:"@5|1|1|4";i:185;s:8:"@5|1|2|4";i:186;s:8:"@6|1|2|3";i:187;s:8:"@5|2|2|6";i:188;s:8:"@6|0|1|4";i:189;s:8:"@5|1|1|5";i:190;s:8:"@6|2|2|3";i:191;s:8:"@6|0|2|6";i:192;s:8:"@6|2|1|4";i:193;s:8:"@5|2|2|4";i:194;s:8:"@6|2|3|0";i:198;s:8:"@6|1|3|0";i:200;s:8:"@6|2|2|5";i:202;s:8:"@5|2|2|5";i:203;s:8:"@6|0|2|5";i:205;s:8:"@6|1|2|5";i:206;s:8:"@5|2|3|0";i:209;s:8:"@5|1|3|0";i:213;s:8:"@6|1|1|7";i:215;s:8:"@6|0|3|0";i:216;s:8:"@5|1|2|5";i:220;s:8:"@6|1|3|2";i:222;s:8:"@6|0|3|2";i:224;s:8:"@5|2|3|2";i:226;s:8:"@6|2|3|2";i:227;s:8:"@6|2|2|2";i:228;s:8:"@6|1|2|9";i:229;s:8:"@6|2|2|4";i:230;s:8:"@6|0|2|3";i:231;s:8:"@6|2|2|9";i:232;s:8:"@5|2|2|3";i:233;s:8:"@6|0|3|1";i:236;s:8:"@5|2|3|1";i:237;s:8:"@5|1|3|1";i:238;s:8:"@6|1|3|1";i:239;s:8:"@6|2|3|1";i:240;s:8:"@5|1|3|2";i:241;s:8:"@5|1|2|3";i:243;s:8:"@6|1|2|4";i:245;s:8:"@6|1|1|8";i:247;s:8:"@6|1|2|8";i:248;s:8:"@6|2|1|8";i:249;s:8:"@6|0|2|8";i:250;s:8:"@5|2|2|8";i:251;s:8:"@6|1|2|0";i:252;s:8:"@6|0|1|8";i:253;s:8:"@6|1|2|7";i:254;s:8:"@5|1|1|8";i:255;s:8:"@6|2|2|7";i:256;s:8:"@5|2|1|8";i:257;s:8:"@6|2|2|0";i:258;s:8:"@6|2|2|8";i:259;s:8:"@5|2|2|1";i:260;s:8:"@6|0|2|1";i:261;s:8:"@5|1|2|1";i:262;s:8:"@5|2|1|9";i:263;s:8:"@5|1|1|9";i:264;s:8:"@6|1|2|1";i:265;s:8:"@6|2|2|1";i:266;s:8:"@5|1|2|8";i:267;s:8:"@6|2|1|9";i:268;s:8:"@6|1|1|9";i:269;s:8:"@6|0|1|9";i:270;s:8:"@6|0|2|7";i:271;s:8:"@6|0|2|0";i:272;s:8:"@5|2|2|0";i:273;s:8:"@5|1|2|0";i:274;s:8:"@5|2|2|7";i:275;s:8:"@6|0|2|2";i:276;s:8:"@5|1|2|2";i:277;s:8:"@6|1|2|2";i:278;s:8:"@6|2|1|7";i:279;s:8:"@5|2|2|2";i:280;s:8:"@5|1|2|7";i:281;}', -'@^Mozilla/5\.0 \(.*Windows NT 5\.2.*WOW64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/2(\d)\..* Safari/.*$@'=>'a:2:{s:2:"@4";i:148;s:2:"@3";i:149;}', -'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chromium/(\d)(\d)\..*Chrome/.*Safari/.*$@'=>'a:23:{s:4:"@3|1";i:195;s:4:"@2|2";i:196;s:4:"@2|3";i:197;s:4:"@2|1";i:199;s:4:"@2|4";i:201;s:4:"@2|5";i:204;s:4:"@1|0";i:207;s:4:"@2|0";i:208;s:4:"@1|6";i:210;s:4:"@1|3";i:211;s:4:"@1|5";i:212;s:4:"@1|7";i:214;s:4:"@1|1";i:217;s:4:"@1|8";i:218;s:4:"@1|2";i:219;s:4:"@2|6";i:221;s:4:"@3|2";i:223;s:4:"@1|4";i:225;s:4:"@3|0";i:234;s:4:"@2|7";i:235;s:4:"@2|9";i:242;s:4:"@2|8";i:244;s:4:"@1|9";i:246;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:111:{s:8:"@5|1|2|9";i:146;s:8:"@5|2|2|3";i:147;s:8:"@6|0|2|3";i:148;s:8:"@6|1|2|3";i:149;s:8:"@6|2|2|3";i:150;s:8:"@5|2|2|4";i:151;s:8:"@5|1|2|4";i:152;s:8:"@6|0|2|4";i:153;s:8:"@6|1|3|2";i:154;s:8:"@6|0|3|2";i:155;s:8:"@6|1|2|4";i:156;s:8:"@5|2|3|2";i:157;s:8:"@5|1|2|3";i:158;s:8:"@6|1|2|2";i:159;s:8:"@6|2|2|2";i:160;s:8:"@5|1|2|1";i:161;s:8:"@6|2|3|2";i:162;s:8:"@5|1|2|0";i:163;s:8:"@5|2|2|0";i:164;s:8:"@6|0|2|0";i:165;s:8:"@6|1|2|0";i:166;s:8:"@6|2|2|0";i:167;s:8:"@5|2|2|1";i:168;s:8:"@5|1|2|5";i:169;s:8:"@6|0|2|1";i:170;s:8:"@6|1|2|1";i:171;s:8:"@6|2|2|1";i:172;s:8:"@5|1|2|2";i:173;s:8:"@5|2|2|2";i:174;s:8:"@6|0|2|2";i:175;s:8:"@6|2|2|4";i:176;s:8:"@5|2|2|5";i:178;s:8:"@5|2|2|8";i:179;s:8:"@5|1|3|1";i:180;s:8:"@6|2|3|0";i:181;s:8:"@6|2|2|7";i:182;s:8:"@5|1|2|8";i:183;s:8:"@6|1|3|0";i:184;s:8:"@6|0|3|0";i:185;s:8:"@5|2|3|0";i:186;s:8:"@6|0|3|1";i:187;s:8:"@5|1|3|0";i:188;s:8:"@6|0|2|8";i:189;s:8:"@6|2|2|9";i:190;s:8:"@6|1|2|9";i:191;s:8:"@6|0|2|9";i:192;s:8:"@5|2|2|9";i:193;s:8:"@5|2|3|1";i:194;s:8:"@6|1|3|1";i:195;s:8:"@6|0|2|5";i:196;s:8:"@5|2|2|6";i:197;s:8:"@5|1|3|2";i:198;s:8:"@6|2|1|9";i:199;s:8:"@6|1|2|5";i:200;s:8:"@6|2|2|5";i:201;s:8:"@6|2|3|1";i:202;s:8:"@5|1|2|6";i:203;s:8:"@6|1|2|7";i:205;s:8:"@6|0|2|6";i:206;s:8:"@6|1|2|6";i:207;s:8:"@6|2|2|6";i:208;s:8:"@5|1|2|7";i:209;s:8:"@5|2|2|7";i:210;s:8:"@6|0|2|7";i:211;s:8:"@6|2|2|8";i:212;s:8:"@6|0|1|3";i:213;s:8:"@6|1|1|9";i:214;s:8:"@6|1|1|1";i:216;s:8:"@6|0|1|1";i:217;s:8:"@5|2|1|1";i:218;s:8:"@5|1|1|1";i:219;s:8:"@6|1|1|0";i:220;s:8:"@6|0|1|0";i:221;s:8:"@5|2|1|0";i:222;s:8:"@5|1|1|0";i:223;s:8:"@5|2|1|2";i:231;s:8:"@6|0|1|9";i:247;s:8:"@5|1|1|2";i:248;s:8:"@6|0|1|2";i:249;s:8:"@6|0|1|6";i:250;s:8:"@5|2|1|9";i:251;s:8:"@5|1|1|9";i:252;s:8:"@6|2|1|8";i:253;s:8:"@6|1|1|8";i:254;s:8:"@6|0|1|8";i:255;s:8:"@5|2|1|8";i:256;s:8:"@5|1|1|8";i:257;s:8:"@6|2|1|7";i:258;s:8:"@6|1|1|7";i:259;s:8:"@6|0|1|7";i:260;s:8:"@5|2|1|7";i:261;s:8:"@5|1|1|7";i:262;s:8:"@6|2|1|6";i:263;s:8:"@6|1|1|2";i:264;s:8:"@6|1|1|6";i:265;s:8:"@5|2|1|6";i:266;s:8:"@5|1|1|6";i:267;s:8:"@5|1|1|3";i:268;s:8:"@5|2|1|3";i:269;s:8:"@6|1|1|3";i:270;s:8:"@5|1|1|4";i:271;s:8:"@5|2|1|4";i:272;s:8:"@6|0|1|4";i:273;s:8:"@6|1|1|4";i:274;s:8:"@6|2|1|4";i:275;s:8:"@5|1|1|5";i:276;s:8:"@5|2|1|5";i:277;s:8:"@6|0|1|5";i:278;s:8:"@6|1|1|5";i:279;s:8:"@6|2|1|5";i:280;s:8:"@6|1|2|8";i:281;}', +'@^Mozilla/5\.0 \(.*Windows NT 5\.2.*WOW64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/2(\d)\..* Safari/.*$@'=>'a:2:{s:2:"@4";i:177;s:2:"@3";i:204;}', +'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chromium/(\d)(\d)\..*Chrome/.*Safari/.*$@'=>'a:23:{s:4:"@2|6";i:215;s:4:"@3|2";i:224;s:4:"@3|1";i:225;s:4:"@3|0";i:226;s:4:"@2|9";i:227;s:4:"@2|8";i:228;s:4:"@2|7";i:229;s:4:"@2|5";i:230;s:4:"@1|8";i:232;s:4:"@1|4";i:233;s:4:"@1|5";i:234;s:4:"@1|3";i:235;s:4:"@1|6";i:236;s:4:"@1|2";i:237;s:4:"@1|7";i:238;s:4:"@1|1";i:239;s:4:"@2|4";i:240;s:4:"@1|0";i:241;s:4:"@1|9";i:242;s:4:"@2|0";i:243;s:4:"@2|1";i:244;s:4:"@2|2";i:245;s:4:"@2|3";i:246;}', '@^Mozilla/5\.0 \(iPhone.*CPU.*OS 5_1.* like Mac OS X.*\).*GooglePlus/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>282, '@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT 6\.1; Win64; x64; Trident/4\.0; .*MSOffice 14\)$@'=>283, -'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/52(\d)\.(\d)0\) .*OmniWeb/v62(\d)\..*$@'=>'a:2:{s:6:"@3|1|1";i:284;s:6:"@5|2|2";i:285;}', -'@^Mozilla/5\.0 \(X11; U; Linux.*; .*\) AppleWebKit/.*\(KHTML, like Gecko\) Safari/.* Epiphany/2\.30\..*$@'=>286, -'@^Mozilla/5\.0 \(.*Windows NT 5\.2.*WOW64\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)(\d)\..* Safari/.*$@'=>'a:8:{s:4:"@2|6";i:287;s:4:"@2|5";i:288;s:4:"@3|2";i:289;s:4:"@3|1";i:290;s:4:"@2|7";i:291;s:4:"@2|8";i:292;s:4:"@2|9";i:293;s:4:"@3|0";i:294;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)\..*Safari/.*$@'=>'a:16:{s:6:"@6|0|6";i:295;s:6:"@5|1|6";i:297;s:6:"@5|2|6";i:298;s:6:"@6|1|6";i:299;s:6:"@6|1|9";i:300;s:6:"@6|0|8";i:302;s:6:"@6|1|8";i:304;s:6:"@5|1|9";i:306;s:6:"@5|2|9";i:307;s:6:"@5|2|8";i:308;s:6:"@6|0|9";i:310;s:6:"@5|2|7";i:311;s:6:"@6|0|7";i:312;s:6:"@5|1|8";i:313;s:6:"@6|1|7";i:314;s:6:"@5|1|7";i:315;}', -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chromium/.*Chrome/.*Safari/.*$@'=>296, -'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chromium/(\d)\..*Chrome/.*Safari/.*$@'=>'a:4:{s:2:"@7";i:301;s:2:"@9";i:303;s:2:"@8";i:305;s:2:"@6";i:309;}', -'@^Mozilla/5\.0 \(iPhone.*CPU.*OS 2_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(KHTML, like Gecko\).*Mobile/.*$@'=>'a:3:{s:2:"@1";i:316;s:2:"@2";i:317;s:2:"@0";i:318;}', -'@^Mozilla/5\.0 \(SAMSUNG.*SAMSUNG\-GT\-S.*Bada/(\d)\..*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Dolfin/(\d)\..*$@'=>'a:2:{s:4:"@1|2";i:319;s:4:"@2|3";i:320;}', -'@^Mozilla/5\.0 \(iPod.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>'a:13:{s:4:"@3|0";i:321;s:4:"@6|1";i:323;s:4:"@2|1";i:324;s:4:"@4|3";i:325;s:4:"@6|0";i:326;s:4:"@4|2";i:328;s:4:"@2|0";i:329;s:4:"@2|2";i:331;s:4:"@4|1";i:336;s:4:"@5|1";i:337;s:4:"@4|0";i:338;s:4:"@5|0";i:339;s:4:"@3|1";i:341;}', -'@^Mozilla/5\.0 \(iPhone.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>322, -'@^Mozilla/5\.0 \(iPad.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>'a:7:{s:4:"@5|0";i:327;s:4:"@5|1";i:330;s:4:"@3|2";i:332;s:4:"@6|1";i:333;s:4:"@6|0";i:334;s:4:"@4|3";i:335;s:4:"@4|2";i:340;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/52(\d)\.(\d)0\) .*OmniWeb/v62(\d)\..*$@'=>'a:2:{s:6:"@5|2|2";i:284;s:6:"@3|1|1";i:286;}', +'@^Mozilla/5\.0 \(X11; U; Linux.*; .*\) AppleWebKit/.*\(KHTML, like Gecko\) Safari/.* Epiphany/2\.30\..*$@'=>285, +'@^Mozilla/5\.0 \(.*Windows NT 5\.2.*WOW64\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)(\d)\..* Safari/.*$@'=>'a:8:{s:4:"@3|1";i:287;s:4:"@3|2";i:288;s:4:"@2|7";i:289;s:4:"@2|9";i:290;s:4:"@2|6";i:291;s:4:"@3|0";i:292;s:4:"@2|8";i:293;s:4:"@2|5";i:294;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)\..*Safari/.*$@'=>'a:16:{s:6:"@6|1|9";i:295;s:6:"@6|0|9";i:296;s:6:"@5|2|9";i:297;s:6:"@5|1|9";i:298;s:6:"@6|1|8";i:299;s:6:"@6|0|8";i:300;s:6:"@5|2|8";i:301;s:6:"@5|1|8";i:304;s:6:"@6|1|7";i:305;s:6:"@5|2|7";i:307;s:6:"@6|0|7";i:308;s:6:"@6|0|6";i:309;s:6:"@5|1|6";i:310;s:6:"@5|1|7";i:311;s:6:"@5|2|6";i:312;s:6:"@6|1|6";i:314;}', +'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chromium/(\d)\..*Chrome/.*Safari/.*$@'=>'a:4:{s:2:"@9";i:302;s:2:"@7";i:303;s:2:"@6";i:306;s:2:"@8";i:313;}', +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chromium/.*Chrome/.*Safari/.*$@'=>315, +'@^Mozilla/5\.0 \(iPhone.*CPU.*OS 2_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(KHTML, like Gecko\).*Mobile/.*$@'=>'a:3:{s:2:"@1";i:316;s:2:"@0";i:317;s:2:"@2";i:318;}', +'@^Mozilla/5\.0 \(SAMSUNG.*SAMSUNG\-GT\-S.*Bada/(\d)\..*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Dolfin/(\d)\..*$@'=>'a:2:{s:4:"@2|3";i:319;s:4:"@1|2";i:320;}', +'@^Mozilla/5\.0 \(iPod.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>'a:13:{s:4:"@4|3";i:321;s:4:"@4|2";i:325;s:4:"@5|0";i:326;s:4:"@2|0";i:327;s:4:"@6|1";i:328;s:4:"@5|1";i:330;s:4:"@4|1";i:331;s:4:"@4|0";i:333;s:4:"@3|1";i:334;s:4:"@3|0";i:335;s:4:"@6|0";i:336;s:4:"@2|2";i:339;s:4:"@2|1";i:340;}', +'@^Mozilla/5\.0 \(iPad.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>'a:7:{s:4:"@5|0";i:322;s:4:"@5|1";i:323;s:4:"@4|3";i:324;s:4:"@6|0";i:332;s:4:"@6|1";i:337;s:4:"@3|2";i:338;s:4:"@4|2";i:341;}', +'@^Mozilla/5\.0 \(iPhone.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>329, '@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/528\.16\) .*OmniWeb/622\..*$@'=>342, '@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/522\) .*OmniWeb/v61.\.0\..*$@'=>343, '@^Mozilla/5\.0 \(.*webOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/1\..* .*Safari/.* .*Pixi/(\d)\..*$@'=>'a:2:{s:2:"@2";i:344;s:2:"@1";i:345;}', '@^DomainCrawler/1\.0 \(info\@domaincrawler\.com; http\://www\.domaincrawler\.com/domains/view/.*\)$@'=>346, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:24:{s:8:"@6|0|5|1";i:347;s:8:"@5|0|6|0";i:348;s:8:"@6|2|6|1";i:350;s:8:"@6|0|6|1";i:353;s:8:"@6|1|6|1";i:354;s:8:"@6|2|7|0";i:356;s:8:"@6|1|7|0";i:357;s:8:"@6|0|7|0";i:358;s:8:"@5|0|7|0";i:359;s:8:"@5|2|6|1";i:360;s:8:"@5|2|5|1";i:362;s:8:"@5|1|7|0";i:363;s:8:"@5|2|7|0";i:365;s:8:"@5|0|5|1";i:368;s:8:"@6|2|6|0";i:369;s:8:"@5|2|6|0";i:370;s:8:"@6|0|6|0";i:371;s:8:"@5|1|5|1";i:372;s:8:"@6|1|6|0";i:373;s:8:"@5|1|6|0";i:374;s:8:"@5|0|6|1";i:375;s:8:"@5|1|6|1";i:376;s:8:"@6|2|5|1";i:379;s:8:"@6|1|5|1";i:380;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.1(\d).*$@'=>'a:10:{s:6:"@6|1|0";i:349;s:6:"@5|0|1";i:351;s:6:"@6|0|0";i:352;s:6:"@5|2|0";i:355;s:6:"@5|0|0";i:361;s:6:"@5|1|0";i:364;s:6:"@5|1|1";i:366;s:6:"@5|2|1";i:367;s:6:"@6|0|1";i:377;s:6:"@6|1|1";i:378;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/.*Safari/.*$@'=>'a:4:{s:4:"@5|1";i:381;s:4:"@6|0";i:382;s:4:"@6|1";i:383;s:4:"@5|2";i:385;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.1(\d).*$@'=>'a:10:{s:6:"@5|1|0";i:347;s:6:"@5|0|0";i:348;s:6:"@5|2|0";i:355;s:6:"@5|0|1";i:370;s:6:"@6|0|1";i:373;s:6:"@5|1|1";i:376;s:6:"@5|2|1";i:377;s:6:"@6|1|0";i:378;s:6:"@6|0|0";i:379;s:6:"@6|1|1";i:380;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:24:{s:8:"@6|2|5|1";i:349;s:8:"@5|0|5|1";i:350;s:8:"@5|1|5|1";i:351;s:8:"@5|2|5|1";i:352;s:8:"@6|0|5|1";i:353;s:8:"@6|1|5|1";i:354;s:8:"@6|2|6|0";i:356;s:8:"@6|0|7|0";i:357;s:8:"@6|2|6|1";i:358;s:8:"@6|1|6|1";i:359;s:8:"@6|0|6|1";i:360;s:8:"@5|2|6|1";i:361;s:8:"@5|1|6|1";i:362;s:8:"@5|0|6|1";i:363;s:8:"@5|2|7|0";i:364;s:8:"@6|1|6|0";i:365;s:8:"@6|0|6|0";i:366;s:8:"@5|2|6|0";i:367;s:8:"@5|1|6|0";i:368;s:8:"@5|0|6|0";i:369;s:8:"@5|0|7|0";i:371;s:8:"@5|1|7|0";i:372;s:8:"@6|2|7|0";i:374;s:8:"@6|1|7|0";i:375;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/.*Safari/.*$@'=>'a:4:{s:4:"@6|0";i:381;s:4:"@5|2";i:382;s:4:"@6|1";i:383;s:4:"@5|1";i:385;}', '@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chromium/.*Chrome/.*Safari/.*$@'=>384, -'@^Mozilla/5\.0 \(Linux.*Android (\d)\.(\d).*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:150:{s:8:"@1|0|2|8";i:386;s:8:"@1|6|2|2";i:387;s:8:"@2|0|2|2";i:388;s:8:"@1|0|2|0";i:389;s:8:"@2|0|2|0";i:390;s:8:"@2|3|2|2";i:391;s:8:"@1|5|2|2";i:392;s:8:"@1|5|2|0";i:393;s:8:"@1|6|2|0";i:394;s:8:"@1|1|2|0";i:395;s:8:"@2|2|2|2";i:396;s:8:"@2|0|2|5";i:397;s:8:"@4|0|2|2";i:398;s:8:"@1|6|2|5";i:399;s:8:"@4|1|2|2";i:400;s:8:"@2|1|2|0";i:401;s:8:"@2|1|2|2";i:402;s:8:"@2|2|3|0";i:403;s:8:"@1|5|3|2";i:404;s:8:"@1|1|3|2";i:405;s:8:"@2|0|2|4";i:406;s:8:"@1|6|3|2";i:407;s:8:"@2|0|3|2";i:408;s:8:"@2|3|3|2";i:409;s:8:"@2|2|3|2";i:410;s:8:"@2|1|3|2";i:411;s:8:"@1|0|3|2";i:412;s:8:"@4|0|2|8";i:413;s:8:"@2|3|2|4";i:414;s:8:"@4|0|2|4";i:415;s:8:"@4|1|3|1";i:416;s:8:"@2|2|2|4";i:417;s:8:"@4|0|2|1";i:418;s:8:"@2|1|2|4";i:419;s:8:"@4|1|2|1";i:420;s:8:"@4|0|3|2";i:421;s:8:"@4|1|3|2";i:422;s:8:"@2|2|2|3";i:423;s:8:"@2|1|2|3";i:424;s:8:"@2|0|2|3";i:425;s:8:"@2|3|2|3";i:426;s:8:"@4|0|2|3";i:427;s:8:"@2|2|2|8";i:428;s:8:"@4|1|2|3";i:429;s:8:"@1|6|2|3";i:430;s:8:"@1|5|2|3";i:431;s:8:"@1|1|2|4";i:432;s:8:"@1|5|2|4";i:433;s:8:"@1|6|2|4";i:434;s:8:"@1|0|2|4";i:435;s:8:"@1|1|2|8";i:436;s:8:"@1|1|2|3";i:437;s:8:"@1|0|2|3";i:438;s:8:"@4|1|2|4";i:439;s:8:"@4|0|3|1";i:440;s:8:"@1|0|2|5";i:441;s:8:"@2|3|2|8";i:442;s:8:"@1|5|3|0";i:443;s:8:"@1|5|2|1";i:445;s:8:"@2|0|3|0";i:446;s:8:"@1|6|3|0";i:447;s:8:"@1|1|3|0";i:448;s:8:"@1|1|2|1";i:449;s:8:"@4|1|2|0";i:450;s:8:"@4|0|2|0";i:451;s:8:"@2|3|2|0";i:452;s:8:"@4|1|2|8";i:453;s:8:"@1|0|2|1";i:454;s:8:"@1|0|3|0";i:455;s:8:"@1|5|2|5";i:456;s:8:"@1|6|2|1";i:457;s:8:"@2|0|2|1";i:458;s:8:"@1|6|3|1";i:459;s:8:"@2|1|2|8";i:460;s:8:"@1|5|3|1";i:461;s:8:"@2|0|3|1";i:462;s:8:"@2|1|3|1";i:463;s:8:"@2|3|3|1";i:464;s:8:"@2|2|3|1";i:465;s:8:"@1|1|3|1";i:466;s:8:"@1|0|3|1";i:467;s:8:"@2|3|3|0";i:468;s:8:"@2|1|2|1";i:469;s:8:"@2|1|3|0";i:470;s:8:"@4|0|3|0";i:471;s:8:"@4|1|3|0";i:472;s:8:"@2|3|2|1";i:473;s:8:"@2|2|2|1";i:474;s:8:"@2|2|2|0";i:475;s:8:"@1|1|2|5";i:476;s:8:"@2|3|2|7";i:477;s:8:"@1|1|1|9";i:478;s:8:"@1|5|1|9";i:479;s:8:"@2|2|2|9";i:480;s:8:"@4|0|2|7";i:481;s:8:"@4|1|2|7";i:482;s:8:"@1|0|2|2";i:483;s:8:"@2|0|1|8";i:484;s:8:"@1|6|1|8";i:485;s:8:"@1|0|1|8";i:486;s:8:"@1|1|2|9";i:487;s:8:"@2|1|1|9";i:488;s:8:"@1|1|1|8";i:489;s:8:"@1|5|1|8";i:490;s:8:"@1|6|1|9";i:491;s:8:"@2|3|2|9";i:492;s:8:"@1|5|2|8";i:493;s:8:"@2|1|2|5";i:494;s:8:"@4|1|1|8";i:495;s:8:"@4|0|1|8";i:496;s:8:"@1|6|2|9";i:497;s:8:"@2|3|2|5";i:498;s:8:"@1|5|2|9";i:499;s:8:"@1|0|2|9";i:500;s:8:"@4|0|2|5";i:501;s:8:"@2|3|1|8";i:502;s:8:"@2|0|2|9";i:503;s:8:"@2|0|2|8";i:504;s:8:"@2|1|2|9";i:505;s:8:"@1|0|1|9";i:506;s:8:"@2|1|1|8";i:507;s:8:"@2|2|1|8";i:508;s:8:"@4|1|2|5";i:509;s:8:"@2|2|2|5";i:510;s:8:"@2|2|1|9";i:511;s:8:"@2|0|1|9";i:512;s:8:"@1|1|2|6";i:513;s:8:"@1|5|2|6";i:514;s:8:"@1|6|2|6";i:515;s:8:"@1|0|2|6";i:516;s:8:"@1|0|2|7";i:517;s:8:"@2|2|2|7";i:518;s:8:"@1|1|2|7";i:519;s:8:"@2|0|2|6";i:520;s:8:"@4|1|1|9";i:521;s:8:"@4|1|2|6";i:522;s:8:"@1|6|2|8";i:523;s:8:"@4|0|2|6";i:524;s:8:"@2|3|2|6";i:525;s:8:"@2|1|2|6";i:526;s:8:"@2|2|2|6";i:527;s:8:"@4|0|1|9";i:528;s:8:"@1|5|2|7";i:529;s:8:"@2|0|2|7";i:530;s:8:"@1|6|2|7";i:531;s:8:"@4|1|2|9";i:532;s:8:"@2|3|1|9";i:533;s:8:"@1|1|2|2";i:534;s:8:"@2|1|2|7";i:535;s:8:"@4|0|2|9";i:536;}', -'@^Mozilla/5\.0 \(.*webOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/1\..* .*Safari/.* .*Pre/2\..*$@'=>444, +'@^Mozilla/5\.0 \(Linux.*Android (\d)\.(\d).*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:150:{s:8:"@1|0|2|1";i:386;s:8:"@1|1|2|1";i:387;s:8:"@1|5|2|1";i:388;s:8:"@1|6|2|2";i:389;s:8:"@4|1|2|6";i:390;s:8:"@4|1|2|1";i:391;s:8:"@1|0|2|2";i:392;s:8:"@2|0|2|2";i:393;s:8:"@1|1|2|2";i:394;s:8:"@1|5|2|2";i:395;s:8:"@2|1|2|7";i:396;s:8:"@1|6|2|1";i:397;s:8:"@1|5|2|7";i:398;s:8:"@2|2|2|7";i:399;s:8:"@2|3|2|7";i:400;s:8:"@4|0|2|7";i:401;s:8:"@4|1|2|7";i:402;s:8:"@2|2|2|6";i:403;s:8:"@1|6|2|7";i:404;s:8:"@1|1|2|7";i:405;s:8:"@2|0|2|1";i:406;s:8:"@1|0|2|7";i:407;s:8:"@2|2|2|1";i:408;s:8:"@2|3|2|1";i:409;s:8:"@2|0|2|7";i:410;s:8:"@4|0|2|1";i:411;s:8:"@2|1|2|1";i:412;s:8:"@2|3|2|6";i:413;s:8:"@4|0|2|6";i:414;s:8:"@2|1|2|6";i:415;s:8:"@4|1|2|3";i:416;s:8:"@2|0|2|5";i:417;s:8:"@1|5|2|5";i:418;s:8:"@1|1|2|5";i:419;s:8:"@1|0|2|5";i:420;s:8:"@2|2|2|3";i:421;s:8:"@2|3|2|3";i:422;s:8:"@4|0|2|3";i:423;s:8:"@4|1|2|4";i:424;s:8:"@2|2|2|5";i:425;s:8:"@4|0|2|4";i:426;s:8:"@2|3|2|4";i:427;s:8:"@2|2|2|4";i:428;s:8:"@2|1|2|4";i:429;s:8:"@2|0|2|4";i:430;s:8:"@1|6|2|4";i:431;s:8:"@1|5|2|4";i:432;s:8:"@2|1|2|5";i:433;s:8:"@2|3|2|5";i:434;s:8:"@2|0|2|6";i:435;s:8:"@4|0|2|2";i:436;s:8:"@1|6|2|6";i:437;s:8:"@1|5|2|6";i:438;s:8:"@2|1|2|2";i:439;s:8:"@1|1|2|6";i:440;s:8:"@1|0|2|6";i:441;s:8:"@2|2|2|2";i:442;s:8:"@2|3|2|2";i:443;s:8:"@4|1|2|2";i:444;s:8:"@4|0|2|5";i:445;s:8:"@1|0|2|3";i:446;s:8:"@1|1|2|3";i:447;s:8:"@1|5|2|3";i:448;s:8:"@1|6|2|3";i:449;s:8:"@2|0|2|3";i:450;s:8:"@4|1|2|5";i:451;s:8:"@2|1|2|3";i:452;s:8:"@1|6|2|5";i:453;s:8:"@2|2|1|9";i:454;s:8:"@4|1|2|0";i:455;s:8:"@1|0|3|1";i:456;s:8:"@2|3|3|1";i:457;s:8:"@2|2|3|1";i:458;s:8:"@2|1|3|1";i:459;s:8:"@2|0|3|1";i:460;s:8:"@1|6|3|1";i:461;s:8:"@1|5|3|1";i:462;s:8:"@1|1|3|1";i:463;s:8:"@4|1|3|0";i:464;s:8:"@4|1|3|1";i:465;s:8:"@4|0|3|0";i:466;s:8:"@2|3|3|0";i:467;s:8:"@2|2|3|0";i:468;s:8:"@2|1|3|0";i:469;s:8:"@2|0|3|0";i:470;s:8:"@1|6|3|0";i:471;s:8:"@1|5|3|0";i:472;s:8:"@4|0|2|0";i:473;s:8:"@4|0|3|1";i:474;s:8:"@4|1|1|8";i:475;s:8:"@1|0|1|9";i:476;s:8:"@4|0|1|8";i:477;s:8:"@1|0|1|8";i:478;s:8:"@1|1|1|8";i:479;s:8:"@1|5|1|8";i:480;s:8:"@1|6|1|8";i:481;s:8:"@2|0|1|8";i:482;s:8:"@2|1|1|8";i:483;s:8:"@2|2|1|8";i:484;s:8:"@2|3|1|8";i:485;s:8:"@4|1|3|2";i:486;s:8:"@1|0|3|2";i:487;s:8:"@4|0|3|2";i:488;s:8:"@2|3|3|2";i:489;s:8:"@2|2|3|2";i:490;s:8:"@2|1|3|2";i:491;s:8:"@2|0|3|2";i:492;s:8:"@1|6|3|2";i:493;s:8:"@1|5|3|2";i:494;s:8:"@1|1|3|2";i:495;s:8:"@1|0|3|0";i:496;s:8:"@1|1|3|0";i:497;s:8:"@4|0|2|8";i:499;s:8:"@1|1|2|0";i:500;s:8:"@1|5|2|0";i:501;s:8:"@1|6|2|0";i:502;s:8:"@2|0|2|0";i:503;s:8:"@2|1|2|0";i:504;s:8:"@2|2|2|0";i:505;s:8:"@4|1|2|8";i:506;s:8:"@2|3|2|8";i:507;s:8:"@4|0|1|9";i:508;s:8:"@2|2|2|8";i:509;s:8:"@2|1|2|8";i:510;s:8:"@2|0|2|8";i:511;s:8:"@1|6|2|8";i:512;s:8:"@1|5|2|8";i:513;s:8:"@1|1|2|8";i:514;s:8:"@1|0|2|8";i:515;s:8:"@2|3|2|0";i:516;s:8:"@1|0|2|0";i:517;s:8:"@4|1|1|9";i:518;s:8:"@2|3|1|9";i:519;s:8:"@1|0|2|9";i:520;s:8:"@1|1|1|9";i:521;s:8:"@1|5|1|9";i:522;s:8:"@1|6|1|9";i:523;s:8:"@2|0|1|9";i:524;s:8:"@2|1|1|9";i:525;s:8:"@1|0|2|4";i:526;s:8:"@4|1|2|9";i:527;s:8:"@4|0|2|9";i:528;s:8:"@2|3|2|9";i:529;s:8:"@2|2|2|9";i:530;s:8:"@2|1|2|9";i:531;s:8:"@2|0|2|9";i:532;s:8:"@1|6|2|9";i:533;s:8:"@1|5|2|9";i:534;s:8:"@1|1|2|9";i:535;s:8:"@1|1|2|4";i:536;}', +'@^Mozilla/5\.0 \(.*webOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/1\..* .*Safari/.* .*Pre/2\..*$@'=>498, '@^Mozilla/5\.0 \(iPad.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>537, '@^Mozilla/5\.0 \(iPod.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>538, '@^Mozilla/5\.0 \(compatible; Yahoo\! DE Slurp; http\://help\.yahoo\.com/help/us/ysearch/slurp\)$@'=>539, '@^Mozilla/5\.0 \(compatible; YoudaoBot/1\..*; http\://www\.youdao\.com/help/webmaster/spider/.*\)$@'=>540, '@^Mozilla/5\.0 \(X11; U; Linux; .*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) Arora/0\.8\..*$@'=>541, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.(\d).*$@'=>'a:10:{s:6:"@6|0|9";i:542;s:6:"@6|1|9";i:543;s:6:"@5|1|9";i:544;s:6:"@5|2|8";i:546;s:6:"@5|0|8";i:547;s:6:"@6|0|8";i:548;s:6:"@6|1|8";i:549;s:6:"@5|2|9";i:550;s:6:"@5|0|9";i:552;s:6:"@5|1|8";i:554;}', -'@^Mozilla/5\.0 \(Windows; U; Windows NT .*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\..* Lunascape/(\d)\.(\d).*$@'=>'a:3:{s:4:"@6|0";i:545;s:4:"@5|1";i:551;s:4:"@5|0";i:553;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:21:{s:6:"@5|0|2";i:555;s:6:"@5|2|3";i:556;s:6:"@5|2|2";i:557;s:6:"@5|1|5";i:558;s:6:"@5|0|5";i:559;s:6:"@5|1|4";i:560;s:6:"@6|1|3";i:561;s:6:"@6|0|3";i:562;s:6:"@5|1|2";i:563;s:6:"@5|0|4";i:564;s:6:"@6|2|5";i:565;s:6:"@6|1|2";i:566;s:6:"@6|1|4";i:567;s:6:"@6|1|5";i:568;s:6:"@6|0|5";i:569;s:6:"@5|2|5";i:570;s:6:"@6|0|4";i:571;s:6:"@5|2|4";i:572;s:6:"@5|1|3";i:573;s:6:"@5|0|3";i:574;s:6:"@6|0|2";i:575;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\...*$@'=>'a:5:{s:4:"@5|1";i:576;s:4:"@6|0";i:577;s:4:"@6|1";i:578;s:4:"@5|0";i:579;s:4:"@5|2";i:580;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:21:{s:6:"@6|0|5";i:542;s:6:"@6|2|5";i:543;s:6:"@6|1|5";i:544;s:6:"@5|2|4";i:547;s:6:"@5|1|3";i:548;s:6:"@6|0|3";i:550;s:6:"@6|1|3";i:551;s:6:"@5|0|4";i:552;s:6:"@5|1|4";i:553;s:6:"@6|0|4";i:554;s:6:"@5|0|3";i:555;s:6:"@6|1|4";i:556;s:6:"@5|2|3";i:564;s:6:"@6|1|2";i:566;s:6:"@6|0|2";i:567;s:6:"@5|2|2";i:569;s:6:"@5|1|2";i:571;s:6:"@5|0|2";i:572;s:6:"@5|0|5";i:573;s:6:"@5|1|5";i:574;s:6:"@5|2|5";i:575;}', +'@^Mozilla/5\.0 \(Windows; U; Windows NT .*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\..* Lunascape/(\d)\.(\d).*$@'=>'a:3:{s:4:"@5|1";i:545;s:4:"@5|0";i:568;s:4:"@6|0";i:570;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.(\d).*$@'=>'a:10:{s:6:"@5|0|9";i:546;s:6:"@5|2|8";i:549;s:6:"@6|0|8";i:557;s:6:"@6|1|8";i:558;s:6:"@6|1|9";i:559;s:6:"@6|0|9";i:560;s:6:"@5|2|9";i:561;s:6:"@5|1|9";i:562;s:6:"@5|1|8";i:563;s:6:"@5|0|8";i:565;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\...*$@'=>'a:5:{s:4:"@5|2";i:576;s:4:"@5|0";i:577;s:4:"@5|1";i:578;s:4:"@6|1";i:579;s:4:"@6|0";i:580;}', '@^Mozilla/5\.0 \(.*webOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/1\..* Safari/.* .*Pre/1\..*$@'=>581, '@^Mozilla/5\.0 \(Linux.*Android 4\.0.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*CrMo/16\.0.*Safari/.*$@'=>582, -'@^Metaspinner/0\.01 \(Metaspinner; http\://www\.meta\-spinner\.de/; support\@meta\-spinner\.de/\)$@'=>583, -'@^browscap updater; interval\:weekly; server\:rohan\.doppy\.nl; questions\:support\@doppy\.nl;$@'=>584, +'@^browscap updater; interval\:weekly; server\:rohan\.doppy\.nl; questions\:support\@doppy\.nl;$@'=>583, +'@^Metaspinner/0\.01 \(Metaspinner; http\://www\.meta\-spinner\.de/; support\@meta\-spinner\.de/\)$@'=>584, '@^Mozilla/(\d)\.0 \(compatible; MSIE (\d)\.0; Windows Phone OS 7\.(\d); Trident/(\d)\.(\d); IEMobile/(\d)\.0.*\).*$@'=>'a:2:{s:12:"@5|9|5|5|0|9";i:585;s:12:"@4|7|0|3|1|7";i:586;}', -'@^Mozilla/4\.0 \(compatible; MSIE 8\.0; AOL 9\.(\d); AOLBuild.*; Windows NT (\d)\.(\d); Trident/4\.0.*\).*$@'=>'a:7:{s:6:"@6|6|0";i:587;s:6:"@6|6|1";i:588;s:6:"@5|6|0";i:589;s:6:"@5|5|2";i:590;s:6:"@5|5|1";i:591;s:6:"@6|5|2";i:592;s:6:"@5|6|1";i:593;}', +'@^Mozilla/4\.0 \(compatible; MSIE 8\.0; AOL 9\.(\d); AOLBuild.*; Windows NT (\d)\.(\d); Trident/4\.0.*\).*$@'=>'a:7:{s:6:"@5|5|2";i:587;s:6:"@5|5|1";i:588;s:6:"@6|6|0";i:589;s:6:"@5|6|1";i:590;s:6:"@6|5|2";i:591;s:6:"@5|6|0";i:592;s:6:"@6|6|1";i:593;}', '@^Mozilla/5\.0 \(X11; U; Linux; .*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) Arora/0\.6.*$@'=>594, -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.1(\d).*$@'=>'a:2:{s:2:"@1";i:595;s:2:"@0";i:600;}', -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:4:{s:4:"@6|1";i:596;s:4:"@7|0";i:597;s:4:"@6|0";i:598;s:4:"@5|1";i:599;}', +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:4:{s:4:"@6|1";i:595;s:4:"@6|0";i:596;s:4:"@7|0";i:598;s:4:"@5|1";i:599;}', +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.1(\d).*$@'=>'a:2:{s:2:"@0";i:597;s:2:"@1";i:600;}', '@^Automated Browscap\.ini Updater\. To report issues contact us at\+http\://www\.skycomp\.ca$@'=>601, -'@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT 6\.1; WOW64; Trident/4\.0; .*MSOffice 12\)$@'=>602, -'@^Mozilla/5\.0 \(compatible; Scrubby/.*; \+http\://www\.scrubtheweb\.com/abs/meta\-check\.html\)$@'=>603, +'@^Mozilla/5\.0 \(compatible; Scrubby/.*; \+http\://www\.scrubtheweb\.com/abs/meta\-check\.html\)$@'=>602, +'@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT 6\.1; WOW64; Trident/4\.0; .*MSOffice 12\)$@'=>603, '@^Mozilla/5\.0 \(compatible; Yahoo\! Slurp.*;.*http\://help\.yahoo\.com/help/us/ysearch/slurp\)$@'=>604, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:157:{s:8:"@5|0|1|8";i:605;s:8:"@4|0|2|0";i:614;s:8:"@6|0|1|6";i:616;s:8:"@5|2|1|6";i:617;s:8:"@6|0|2|7";i:621;s:8:"@6|2|2|4";i:622;s:8:"@5|0|2|0";i:624;s:8:"@4|0|1|6";i:631;s:8:"@6|2|2|2";i:639;s:8:"@4|0|2|9";i:641;s:8:"@6|1|2|7";i:643;s:8:"@6|1|1|5";i:644;s:8:"@5|1|2|3";i:645;s:8:"@6|2|1|5";i:648;s:8:"@5|0|1|6";i:652;s:8:"@5|1|1|8";i:654;s:8:"@5|1|1|6";i:672;s:8:"@6|0|2|4";i:674;s:8:"@4|0|1|7";i:681;s:8:"@6|2|2|3";i:685;s:8:"@5|1|2|4";i:687;s:8:"@6|2|1|6";i:689;s:8:"@6|1|2|3";i:690;s:8:"@5|0|2|4";i:692;s:8:"@4|0|2|4";i:695;s:8:"@4|0|2|7";i:697;s:8:"@5|0|1|7";i:698;s:8:"@6|2|1|7";i:699;s:8:"@6|1|1|7";i:700;s:8:"@5|0|2|7";i:705;s:8:"@6|0|1|7";i:710;s:8:"@5|1|1|7";i:711;s:8:"@5|2|1|7";i:717;s:8:"@5|2|2|7";i:718;s:8:"@5|1|2|2";i:725;s:8:"@4|0|1|8";i:730;s:8:"@6|1|2|4";i:735;s:8:"@6|1|1|6";i:739;s:8:"@6|0|2|2";i:741;s:8:"@5|2|2|4";i:759;s:8:"@6|1|2|2";i:760;s:8:"@5|2|2|2";i:766;s:8:"@5|2|1|5";i:767;s:8:"@4|0|3|1";i:768;s:8:"@5|0|1|2";i:770;s:8:"@4|0|1|2";i:771;s:8:"@5|0|3|1";i:772;s:8:"@5|1|3|1";i:773;s:8:"@5|2|3|1";i:774;s:8:"@5|1|1|2";i:775;s:8:"@4|0|2|5";i:778;s:8:"@6|0|1|1";i:779;s:8:"@5|1|2|8";i:780;s:8:"@5|2|1|1";i:782;s:8:"@6|1|1|1";i:784;s:8:"@5|2|2|9";i:785;s:8:"@5|0|2|5";i:786;s:8:"@5|1|2|5";i:787;s:8:"@5|2|1|2";i:788;s:8:"@6|0|3|1";i:789;s:8:"@6|1|2|0";i:790;s:8:"@5|2|1|3";i:791;s:8:"@6|2|2|0";i:792;s:8:"@5|1|1|3";i:793;s:8:"@5|2|2|3";i:794;s:8:"@6|0|1|3";i:796;s:8:"@4|0|3|2";i:797;s:8:"@6|0|2|8";i:798;s:8:"@5|0|1|3";i:799;s:8:"@4|0|1|3";i:800;s:8:"@5|2|2|8";i:801;s:8:"@6|2|3|1";i:802;s:8:"@6|1|3|1";i:803;s:8:"@6|0|1|2";i:804;s:8:"@5|2|3|0";i:805;s:8:"@6|1|1|2";i:808;s:8:"@5|2|2|5";i:809;s:8:"@6|0|2|5";i:810;s:8:"@6|0|2|9";i:812;s:8:"@6|1|2|9";i:813;s:8:"@6|2|1|9";i:814;s:8:"@4|0|2|1";i:815;s:8:"@5|0|2|1";i:816;s:8:"@5|2|2|1";i:817;s:8:"@5|1|2|1";i:819;s:8:"@6|2|2|9";i:821;s:8:"@5|1|1|9";i:822;s:8:"@5|2|1|9";i:823;s:8:"@6|1|1|9";i:824;s:8:"@6|0|1|9";i:825;s:8:"@5|0|1|9";i:826;s:8:"@6|1|3|0";i:827;s:8:"@6|2|3|0";i:829;s:8:"@4|0|1|9";i:830;s:8:"@4|0|1|0";i:831;s:8:"@6|0|2|1";i:832;s:8:"@4|0|1|1";i:833;s:8:"@6|2|2|5";i:834;s:8:"@5|0|1|1";i:837;s:8:"@5|1|1|1";i:838;s:8:"@5|0|2|8";i:839;s:8:"@6|1|2|5";i:840;s:8:"@4|0|2|3";i:841;s:8:"@5|1|2|7";i:842;s:8:"@4|0|2|8";i:843;s:8:"@5|1|1|0";i:844;s:8:"@6|1|2|1";i:845;s:8:"@5|0|1|0";i:846;s:8:"@6|2|2|1";i:847;s:8:"@5|2|1|0";i:848;s:8:"@6|1|1|0";i:849;s:8:"@6|0|3|0";i:850;s:8:"@6|0|1|0";i:851;s:8:"@5|0|3|2";i:853;s:8:"@6|0|1|8";i:854;s:8:"@6|2|1|4";i:855;s:8:"@5|1|3|2";i:856;s:8:"@6|2|2|8";i:858;s:8:"@4|0|1|5";i:859;s:8:"@6|0|2|6";i:860;s:8:"@6|1|1|4";i:861;s:8:"@5|2|2|6";i:862;s:8:"@5|1|2|0";i:864;s:8:"@6|0|1|4";i:865;s:8:"@6|1|1|8";i:866;s:8:"@4|0|2|2";i:868;s:8:"@6|2|2|6";i:869;s:8:"@6|2|2|7";i:871;s:8:"@4|0|3|0";i:872;s:8:"@6|0|1|5";i:873;s:8:"@5|1|1|5";i:875;s:8:"@5|0|2|2";i:876;s:8:"@5|2|1|8";i:877;s:8:"@6|1|2|6";i:878;s:8:"@5|0|2|3";i:879;s:8:"@5|0|1|5";i:880;s:8:"@5|1|2|6";i:881;s:8:"@5|0|2|9";i:882;s:8:"@6|2|3|2";i:884;s:8:"@4|0|1|4";i:885;s:8:"@5|1|1|4";i:886;s:8:"@5|2|1|4";i:887;s:8:"@5|1|3|0";i:888;s:8:"@6|1|3|2";i:889;s:8:"@6|1|2|8";i:890;s:8:"@5|1|2|9";i:891;s:8:"@5|2|3|2";i:892;s:8:"@6|2|1|8";i:893;s:8:"@6|0|3|2";i:894;s:8:"@6|0|2|3";i:896;s:8:"@6|0|2|0";i:897;s:8:"@5|0|1|4";i:898;s:8:"@4|0|2|6";i:899;s:8:"@5|0|2|6";i:900;s:8:"@5|2|2|0";i:902;s:8:"@5|0|3|0";i:903;s:8:"@6|1|1|3";i:905;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)(\d)\..* Safari/.*$@'=>'a:92:{s:8:"@5|2|2|7";i:606;s:8:"@6|0|2|6";i:607;s:8:"@5|1|1|1";i:609;s:8:"@6|1|2|6";i:610;s:8:"@5|1|2|7";i:612;s:8:"@6|0|2|5";i:615;s:8:"@6|1|2|5";i:618;s:8:"@5|2|1|1";i:619;s:8:"@5|1|2|5";i:623;s:8:"@5|2|2|6";i:625;s:8:"@5|2|2|5";i:626;s:8:"@6|1|1|1";i:627;s:8:"@5|1|2|6";i:628;s:8:"@6|0|1|1";i:629;s:8:"@6|1|2|8";i:630;s:8:"@6|0|3|1";i:632;s:8:"@6|1|3|1";i:634;s:8:"@5|2|3|1";i:635;s:8:"@5|1|3|1";i:636;s:8:"@6|1|3|0";i:637;s:8:"@6|1|3|2";i:646;s:8:"@6|0|3|2";i:647;s:8:"@5|1|3|2";i:649;s:8:"@5|2|3|2";i:650;s:8:"@6|0|3|0";i:651;s:8:"@5|2|2|8";i:653;s:8:"@6|0|2|8";i:655;s:8:"@5|1|2|8";i:657;s:8:"@6|0|1|0";i:658;s:8:"@6|1|2|7";i:659;s:8:"@6|1|1|0";i:661;s:8:"@5|2|1|0";i:662;s:8:"@5|1|1|0";i:663;s:8:"@5|1|3|0";i:666;s:8:"@5|2|3|0";i:667;s:8:"@6|1|2|9";i:668;s:8:"@6|0|2|9";i:669;s:8:"@5|1|2|9";i:670;s:8:"@5|2|2|9";i:671;s:8:"@6|0|2|7";i:673;s:8:"@5|2|1|9";i:675;s:8:"@6|0|1|9";i:676;s:8:"@6|1|1|9";i:677;s:8:"@5|1|1|9";i:679;s:8:"@6|1|1|8";i:682;s:8:"@6|1|1|5";i:686;s:8:"@6|1|2|0";i:691;s:8:"@5|1|2|0";i:693;s:8:"@5|2|2|0";i:694;s:8:"@6|0|2|0";i:696;s:8:"@6|1|1|6";i:701;s:8:"@6|0|1|6";i:702;s:8:"@5|2|1|7";i:706;s:8:"@6|0|1|7";i:707;s:8:"@6|1|1|7";i:708;s:8:"@5|1|1|8";i:712;s:8:"@5|2|1|8";i:713;s:8:"@6|0|1|8";i:714;s:8:"@5|1|1|6";i:715;s:8:"@5|2|1|6";i:719;s:8:"@5|1|2|1";i:720;s:8:"@5|2|2|1";i:721;s:8:"@5|1|1|3";i:722;s:8:"@6|1|1|2";i:724;s:8:"@6|1|2|3";i:727;s:8:"@5|2|1|3";i:728;s:8:"@5|2|2|3";i:729;s:8:"@6|0|2|3";i:731;s:8:"@6|0|1|2";i:732;s:8:"@5|1|2|4";i:733;s:8:"@5|2|1|2";i:736;s:8:"@5|1|1|2";i:737;s:8:"@6|1|2|4";i:738;s:8:"@5|2|2|4";i:740;s:8:"@6|0|2|4";i:742;s:8:"@5|1|2|3";i:743;s:8:"@6|0|1|3";i:744;s:8:"@5|1|1|5";i:745;s:8:"@5|1|2|2";i:747;s:8:"@6|1|1|4";i:748;s:8:"@5|2|1|5";i:750;s:8:"@6|0|2|1";i:751;s:8:"@6|0|1|5";i:752;s:8:"@6|1|2|1";i:753;s:8:"@5|2|2|2";i:755;s:8:"@6|0|2|2";i:756;s:8:"@6|1|1|3";i:758;s:8:"@5|1|1|4";i:761;s:8:"@6|0|1|4";i:763;s:8:"@5|2|1|4";i:764;s:8:"@6|1|2|2";i:765;s:8:"@5|1|1|7";i:874;}', -'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)(\d)\..* Safari/.*$@'=>'a:23:{s:4:"@1|2";i:608;s:4:"@1|1";i:611;s:4:"@2|7";i:613;s:4:"@2|6";i:620;s:4:"@3|1";i:638;s:4:"@3|2";i:640;s:4:"@2|9";i:656;s:4:"@2|8";i:660;s:4:"@3|0";i:664;s:4:"@1|0";i:665;s:4:"@2|0";i:678;s:4:"@1|9";i:683;s:4:"@1|6";i:684;s:4:"@2|1";i:688;s:4:"@1|7";i:703;s:4:"@1|8";i:704;s:4:"@1|3";i:723;s:4:"@2|4";i:726;s:4:"@2|5";i:734;s:4:"@1|5";i:746;s:4:"@2|2";i:749;s:4:"@1|4";i:757;s:4:"@2|3";i:762;}', -'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:23:{s:4:"@1|6";i:633;s:4:"@2|0";i:642;s:4:"@1|7";i:680;s:4:"@1|8";i:709;s:4:"@2|4";i:716;s:4:"@2|7";i:754;s:4:"@3|1";i:769;s:4:"@2|5";i:776;s:4:"@1|2";i:777;s:4:"@2|8";i:783;s:4:"@3|2";i:795;s:4:"@1|3";i:806;s:4:"@2|6";i:807;s:4:"@2|1";i:811;s:4:"@1|0";i:818;s:4:"@2|9";i:820;s:4:"@1|9";i:828;s:4:"@1|1";i:835;s:4:"@2|3";i:836;s:4:"@1|5";i:857;s:4:"@2|2";i:867;s:4:"@1|4";i:883;s:4:"@3|0";i:895;}', -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@3";i:781;s:2:"@4";i:852;s:2:"@2";i:870;s:2:"@5";i:904;}', -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.(\d).*$@'=>'a:2:{s:2:"@8";i:863;s:2:"@9";i:901;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:157:{s:8:"@4|0|1|0";i:605;s:8:"@6|1|1|3";i:608;s:8:"@5|2|1|2";i:609;s:8:"@5|1|1|2";i:610;s:8:"@5|0|1|2";i:612;s:8:"@4|0|1|2";i:613;s:8:"@6|0|1|7";i:615;s:8:"@5|2|1|7";i:617;s:8:"@5|1|1|7";i:619;s:8:"@5|0|1|7";i:620;s:8:"@6|0|1|3";i:621;s:8:"@6|1|1|7";i:623;s:8:"@5|2|1|8";i:624;s:8:"@5|0|1|3";i:626;s:8:"@5|1|1|3";i:627;s:8:"@6|1|1|2";i:628;s:8:"@5|2|1|3";i:629;s:8:"@6|0|1|8";i:630;s:8:"@6|0|1|2";i:633;s:8:"@5|1|1|8";i:634;s:8:"@5|0|1|8";i:635;s:8:"@4|0|1|8";i:636;s:8:"@6|2|1|7";i:639;s:8:"@4|0|1|7";i:641;s:8:"@6|2|1|5";i:645;s:8:"@6|1|1|4";i:646;s:8:"@6|2|1|4";i:648;s:8:"@6|1|1|0";i:649;s:8:"@6|0|1|0";i:650;s:8:"@5|2|1|0";i:652;s:8:"@5|1|1|0";i:655;s:8:"@6|1|1|5";i:656;s:8:"@6|0|1|5";i:658;s:8:"@5|0|1|0";i:659;s:8:"@5|2|1|5";i:660;s:8:"@5|1|1|5";i:661;s:8:"@5|0|1|5";i:662;s:8:"@4|0|1|5";i:663;s:8:"@4|0|1|3";i:664;s:8:"@4|0|1|6";i:665;s:8:"@6|1|1|1";i:666;s:8:"@6|2|1|6";i:670;s:8:"@6|0|1|1";i:671;s:8:"@5|2|1|1";i:672;s:8:"@4|0|1|4";i:673;s:8:"@5|0|1|4";i:674;s:8:"@5|1|1|4";i:675;s:8:"@5|1|1|1";i:676;s:8:"@5|1|1|6";i:677;s:8:"@5|2|1|4";i:678;s:8:"@5|0|1|1";i:679;s:8:"@6|1|1|6";i:681;s:8:"@4|0|1|1";i:682;s:8:"@6|0|1|6";i:683;s:8:"@6|0|1|4";i:684;s:8:"@5|2|1|6";i:685;s:8:"@6|1|1|8";i:689;s:8:"@5|2|3|0";i:690;s:8:"@6|0|2|9";i:691;s:8:"@6|1|2|9";i:693;s:8:"@6|2|2|9";i:695;s:8:"@4|0|3|0";i:697;s:8:"@5|0|3|0";i:698;s:8:"@5|1|3|0";i:699;s:8:"@5|2|2|9";i:702;s:8:"@6|0|3|0";i:703;s:8:"@6|1|3|0";i:705;s:8:"@6|2|3|0";i:707;s:8:"@4|0|3|1";i:710;s:8:"@5|0|3|1";i:711;s:8:"@5|1|3|1";i:712;s:8:"@5|1|2|8";i:717;s:8:"@6|0|2|7";i:718;s:8:"@6|1|2|7";i:720;s:8:"@6|2|2|7";i:722;s:8:"@4|0|2|8";i:726;s:8:"@5|0|2|8";i:727;s:8:"@5|1|2|9";i:729;s:8:"@5|2|2|8";i:730;s:8:"@6|0|2|8";i:732;s:8:"@6|1|2|8";i:734;s:8:"@6|2|2|8";i:736;s:8:"@4|0|2|9";i:739;s:8:"@5|0|2|9";i:740;s:8:"@5|2|3|1";i:741;s:8:"@6|0|3|1";i:742;s:8:"@5|2|2|7";i:743;s:8:"@6|1|3|1";i:772;s:8:"@6|2|3|1";i:774;s:8:"@4|0|3|2";i:777;s:8:"@5|0|3|2";i:778;s:8:"@5|1|3|2";i:779;s:8:"@5|2|3|2";i:781;s:8:"@6|0|3|2";i:782;s:8:"@6|1|3|2";i:785;s:8:"@6|2|3|2";i:787;s:8:"@6|2|1|8";i:797;s:8:"@4|0|2|1";i:800;s:8:"@5|0|2|1";i:801;s:8:"@5|1|2|1";i:802;s:8:"@5|2|2|1";i:804;s:8:"@6|0|2|1";i:806;s:8:"@6|1|2|1";i:808;s:8:"@6|2|2|1";i:809;s:8:"@6|2|2|0";i:810;s:8:"@4|0|2|2";i:812;s:8:"@5|0|2|2";i:813;s:8:"@5|1|2|2";i:814;s:8:"@5|2|2|2";i:816;s:8:"@6|0|2|2";i:818;s:8:"@6|1|2|2";i:820;s:8:"@6|1|2|0";i:823;s:8:"@6|1|1|9";i:825;s:8:"@4|0|1|9";i:828;s:8:"@5|0|1|9";i:829;s:8:"@5|1|1|9";i:830;s:8:"@5|2|1|9";i:832;s:8:"@6|0|1|9";i:834;s:8:"@6|2|1|9";i:838;s:8:"@4|0|2|0";i:842;s:8:"@5|0|2|0";i:843;s:8:"@5|1|2|0";i:844;s:8:"@5|2|2|0";i:846;s:8:"@6|0|2|0";i:848;s:8:"@6|2|2|2";i:849;s:8:"@5|1|2|7";i:851;s:8:"@5|1|2|6";i:852;s:8:"@6|0|2|5";i:853;s:8:"@6|1|2|5";i:855;s:8:"@6|2|2|5";i:857;s:8:"@4|0|2|6";i:861;s:8:"@5|0|2|6";i:862;s:8:"@5|2|2|5";i:864;s:8:"@5|2|2|6";i:865;s:8:"@6|0|2|6";i:867;s:8:"@6|1|2|6";i:869;s:8:"@6|2|2|6";i:871;s:8:"@4|0|2|7";i:874;s:8:"@5|0|2|7";i:875;s:8:"@4|0|2|3";i:878;s:8:"@5|0|2|4";i:879;s:8:"@5|0|2|3";i:880;s:8:"@5|1|2|3";i:881;s:8:"@5|2|2|3";i:882;s:8:"@6|0|2|3";i:883;s:8:"@6|1|2|3";i:885;s:8:"@6|2|2|3";i:887;s:8:"@4|0|2|4";i:890;s:8:"@5|1|2|4";i:891;s:8:"@5|1|2|5";i:892;s:8:"@5|2|2|4";i:894;s:8:"@6|0|2|4";i:896;s:8:"@6|1|2|4";i:897;s:8:"@6|2|2|4";i:899;s:8:"@4|0|2|5";i:902;s:8:"@5|0|2|5";i:903;s:8:"@5|0|1|6";i:905;}', +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@2";i:606;s:2:"@3";i:642;s:2:"@5";i:644;s:2:"@4";i:667;}', +'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:23:{s:4:"@1|4";i:607;s:4:"@1|2";i:614;s:4:"@1|8";i:622;s:4:"@1|7";i:637;s:4:"@1|0";i:653;s:4:"@1|6";i:654;s:4:"@1|5";i:668;s:4:"@1|1";i:686;s:4:"@1|3";i:687;s:4:"@3|0";i:696;s:4:"@3|1";i:709;s:4:"@2|8";i:725;s:4:"@2|9";i:738;s:4:"@3|2";i:776;s:4:"@2|1";i:799;s:4:"@2|2";i:811;s:4:"@1|9";i:827;s:4:"@2|0";i:841;s:4:"@2|3";i:850;s:4:"@2|6";i:860;s:4:"@2|7";i:873;s:4:"@2|4";i:889;s:4:"@2|5";i:901;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)(\d)\..* Safari/.*$@'=>'a:92:{s:8:"@6|1|3|1";i:611;s:8:"@6|0|3|1";i:616;s:8:"@6|0|3|0";i:625;s:8:"@6|1|3|0";i:631;s:8:"@5|1|3|1";i:638;s:8:"@5|2|3|1";i:640;s:8:"@6|1|3|2";i:647;s:8:"@6|0|3|2";i:657;s:8:"@5|1|3|2";i:669;s:8:"@5|2|3|2";i:680;s:8:"@5|2|1|6";i:688;s:8:"@5|1|2|0";i:692;s:8:"@6|1|1|9";i:700;s:8:"@6|0|1|9";i:701;s:8:"@5|2|1|9";i:704;s:8:"@5|1|1|9";i:706;s:8:"@6|1|1|8";i:713;s:8:"@5|2|2|0";i:714;s:8:"@6|0|2|0";i:715;s:8:"@6|0|1|8";i:716;s:8:"@5|2|2|2";i:719;s:8:"@5|1|2|2";i:721;s:8:"@6|1|2|1";i:724;s:8:"@6|0|2|1";i:728;s:8:"@5|2|2|1";i:731;s:8:"@5|1|2|1";i:733;s:8:"@6|1|2|0";i:737;s:8:"@6|0|1|6";i:744;s:8:"@5|1|1|2";i:746;s:8:"@5|2|1|2";i:747;s:8:"@6|0|1|2";i:748;s:8:"@6|1|1|2";i:749;s:8:"@6|1|1|6";i:751;s:8:"@5|1|1|3";i:752;s:8:"@5|2|1|3";i:753;s:8:"@6|0|1|3";i:754;s:8:"@6|1|1|3";i:755;s:8:"@6|0|1|1";i:756;s:8:"@5|1|1|4";i:758;s:8:"@5|2|1|4";i:759;s:8:"@6|0|1|4";i:760;s:8:"@6|1|1|4";i:761;s:8:"@5|1|1|5";i:763;s:8:"@5|2|1|5";i:764;s:8:"@6|0|1|5";i:765;s:8:"@6|1|1|5";i:766;s:8:"@6|1|1|1";i:768;s:8:"@5|2|1|1";i:769;s:8:"@5|2|1|8";i:770;s:8:"@6|0|1|7";i:771;s:8:"@5|1|1|8";i:773;s:8:"@6|1|1|7";i:780;s:8:"@5|1|1|1";i:783;s:8:"@5|2|1|7";i:784;s:8:"@5|1|1|7";i:786;s:8:"@5|1|1|0";i:790;s:8:"@5|2|1|0";i:791;s:8:"@6|0|1|0";i:792;s:8:"@6|1|1|0";i:793;s:8:"@6|0|2|2";i:795;s:8:"@6|1|2|2";i:796;s:8:"@6|0|2|7";i:798;s:8:"@5|1|2|8";i:803;s:8:"@6|1|2|7";i:807;s:8:"@5|2|2|7";i:815;s:8:"@5|1|2|7";i:817;s:8:"@5|1|1|6";i:819;s:8:"@6|1|2|6";i:821;s:8:"@5|2|2|8";i:822;s:8:"@6|0|2|6";i:824;s:8:"@5|2|3|0";i:826;s:8:"@5|1|3|0";i:831;s:8:"@6|1|2|9";i:835;s:8:"@6|0|2|9";i:836;s:8:"@6|0|2|8";i:837;s:8:"@5|2|2|9";i:839;s:8:"@5|1|2|9";i:840;s:8:"@6|1|2|8";i:847;s:8:"@6|0|2|4";i:854;s:8:"@5|2|2|4";i:856;s:8:"@5|1|2|4";i:858;s:8:"@6|1|2|3";i:863;s:8:"@6|0|2|3";i:866;s:8:"@5|2|2|3";i:868;s:8:"@5|1|2|3";i:870;s:8:"@6|1|2|4";i:876;s:8:"@5|2|2|6";i:884;s:8:"@5|1|2|6";i:886;s:8:"@6|1|2|5";i:893;s:8:"@6|0|2|5";i:895;s:8:"@5|2|2|5";i:898;s:8:"@5|1|2|5";i:900;}', +'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)(\d)\..* Safari/.*$@'=>'a:23:{s:4:"@3|2";i:618;s:4:"@3|1";i:632;s:4:"@2|0";i:694;s:4:"@1|9";i:708;s:4:"@2|2";i:723;s:4:"@2|1";i:735;s:4:"@1|2";i:745;s:4:"@1|3";i:750;s:4:"@1|4";i:757;s:4:"@1|5";i:762;s:4:"@1|6";i:767;s:4:"@1|8";i:775;s:4:"@1|7";i:788;s:4:"@1|0";i:789;s:4:"@1|1";i:794;s:4:"@2|8";i:805;s:4:"@3|0";i:833;s:4:"@2|9";i:845;s:4:"@2|4";i:859;s:4:"@2|3";i:872;s:4:"@2|5";i:877;s:4:"@2|6";i:888;s:4:"@2|7";i:904;}', +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.(\d).*$@'=>'a:2:{s:2:"@8";i:643;s:2:"@9";i:651;}', '@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\...*$@'=>906, -'@^Mozilla/4\.0 \(compatible; http\://search\.thunderstone\.com/texis/websearch/about\.html\)$@'=>907, +'@^compatible; Mozilla 4\.0; MSIE 5\.5; \(SqwidgeBot v1\.01 \- http\://www\.sqwidge\.com/bot/\)$@'=>907, '@^Mozilla/5\.0 \(compatible; Baiduspider/2\.0; \+http\://www\.baidu\.com/search/spider\.html\)$@'=>908, -'@^compatible; Mozilla 4\.0; MSIE 5\.5; \(SqwidgeBot v1\.01 \- http\://www\.sqwidge\.com/bot/\)$@'=>909, +'@^Mozilla/4\.0 \(compatible; http\://search\.thunderstone\.com/texis/websearch/about\.html\)$@'=>909, '@^Mozilla/5\.0 \(compatible; KaloogaBot; http\://www\.kalooga\.com/info\.html.page\=crawler\)$@'=>910, -'@^Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows 98; PalmSource/.*; Blazer/4\.(\d)\) 16;320x(\d)(\d)(\d)$@'=>'a:5:{s:8:"@5|3|2|0";i:911;s:8:"@2|3|2|0";i:912;s:8:"@1|3|2|0";i:913;s:8:"@0|4|4|8";i:914;s:8:"@4|3|2|0";i:915;}', +'@^Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows 98; PalmSource/.*; Blazer/4\.(\d)\) 16;320x(\d)(\d)(\d)$@'=>'a:5:{s:8:"@4|3|2|0";i:911;s:8:"@2|3|2|0";i:912;s:8:"@1|3|2|0";i:913;s:8:"@0|4|4|8";i:914;s:8:"@5|3|2|0";i:915;}', '@^Mozilla/5\.0 \(Windows; U; .*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) Arora/0\.8\..*$@'=>916, '@^Mozilla/5\.0 \(X11; U; Linux; .*; rv\:1\.9\..*\) Gecko/.* Iceweasel/3\.6.* \(like Firefox/3\.6\).*$@'=>917, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)\..*Safari/.*$@'=>'a:24:{s:6:"@5|2|8";i:918;s:6:"@5|1|8";i:919;s:6:"@6|1|9";i:920;s:6:"@5|0|8";i:921;s:6:"@5|2|9";i:922;s:6:"@5|0|9";i:923;s:6:"@5|1|9";i:924;s:6:"@4|0|8";i:925;s:6:"@4|0|9";i:926;s:6:"@6|1|8";i:927;s:6:"@6|0|8";i:929;s:6:"@6|0|9";i:930;s:6:"@6|0|6";i:931;s:6:"@5|2|6";i:932;s:6:"@6|1|6";i:933;s:6:"@5|1|6";i:934;s:6:"@5|0|6";i:935;s:6:"@4|0|6";i:937;s:6:"@4|0|7";i:939;s:6:"@6|0|7";i:940;s:6:"@6|1|7";i:941;s:6:"@5|2|7";i:942;s:6:"@5|1|7";i:943;s:6:"@5|0|7";i:944;}', -'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)\..*Safari/.*$@'=>'a:4:{s:2:"@9";i:928;s:2:"@6";i:936;s:2:"@7";i:938;s:2:"@8";i:945;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)\..* Safari/.*$@'=>'a:16:{s:6:"@6|0|6";i:946;s:6:"@5|1|7";i:947;s:6:"@6|0|7";i:948;s:6:"@6|1|7";i:949;s:6:"@6|1|6";i:951;s:6:"@5|1|6";i:953;s:6:"@5|2|6";i:954;s:6:"@5|2|7";i:956;s:6:"@5|1|9";i:957;s:6:"@5|2|9";i:958;s:6:"@5|1|8";i:959;s:6:"@6|1|9";i:960;s:6:"@6|0|9";i:962;s:6:"@6|1|8";i:963;s:6:"@6|0|8";i:964;s:6:"@5|2|8";i:965;}', -'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@7";i:950;s:2:"@6";i:952;s:2:"@8";i:955;s:2:"@9";i:961;}', -'@^Mozilla/5\.0 \(iPhone.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>'a:10:{s:4:"@5|0";i:966;s:4:"@6|0";i:967;s:4:"@5|1";i:968;s:4:"@4|1";i:969;s:4:"@3|1";i:970;s:4:"@6|1";i:971;s:4:"@3|0";i:972;s:4:"@3|2";i:973;s:4:"@4|0";i:974;s:4:"@4|2";i:975;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)\..* Safari/.*$@'=>'a:16:{s:6:"@5|1|8";i:918;s:6:"@6|1|9";i:924;s:6:"@6|0|8";i:941;s:6:"@6|1|7";i:942;s:6:"@6|0|7";i:943;s:6:"@5|2|7";i:944;s:6:"@5|1|7";i:945;s:6:"@5|2|8";i:946;s:6:"@6|1|6";i:948;s:6:"@6|0|6";i:949;s:6:"@5|2|6";i:950;s:6:"@5|1|6";i:952;s:6:"@6|1|8";i:953;s:6:"@5|1|9";i:955;s:6:"@5|2|9";i:956;s:6:"@6|0|9";i:959;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)\..*Safari/.*$@'=>'a:24:{s:6:"@5|1|8";i:919;s:6:"@5|0|9";i:920;s:6:"@4|0|9";i:921;s:6:"@6|1|8";i:923;s:6:"@6|0|8";i:925;s:6:"@5|2|8";i:926;s:6:"@5|0|8";i:927;s:6:"@5|2|9";i:928;s:6:"@4|0|8";i:929;s:6:"@6|1|7";i:931;s:6:"@6|0|7";i:932;s:6:"@5|2|7";i:933;s:6:"@5|0|7";i:934;s:6:"@4|0|7";i:935;s:6:"@6|1|6";i:937;s:6:"@5|1|9";i:938;s:6:"@6|1|9";i:939;s:6:"@6|0|9";i:940;s:6:"@5|2|6";i:957;s:6:"@6|0|6";i:960;s:6:"@5|1|7";i:961;s:6:"@5|0|6";i:963;s:6:"@4|0|6";i:964;s:6:"@5|1|6";i:965;}', +'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)\..*Safari/.*$@'=>'a:4:{s:2:"@9";i:922;s:2:"@8";i:930;s:2:"@7";i:936;s:2:"@6";i:962;}', +'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@7";i:947;s:2:"@8";i:951;s:2:"@9";i:954;s:2:"@6";i:958;}', +'@^Mozilla/5\.0 \(iPhone.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>'a:10:{s:4:"@5|0";i:966;s:4:"@6|0";i:967;s:4:"@4|2";i:968;s:4:"@6|1";i:969;s:4:"@4|1";i:970;s:4:"@4|0";i:971;s:4:"@3|2";i:972;s:4:"@3|1";i:973;s:4:"@3|0";i:974;s:4:"@5|1";i:975;}', '@^Automated Browscap\.ini Updater\. Gary contact me at serge\@skycomp\.ca with problems\.$@'=>976, '@^Mozilla/5\.0 \(Windows; U; .*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) Arora/0\.6.*$@'=>977, -'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/420\) .*OmniWeb/v.*$@'=>978, -'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari\) .*OmniWeb/v563\..*$@'=>979, -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)(\d)\..* Safari/.*$@'=>'a:23:{s:4:"@2|5";i:980;s:4:"@1|2";i:981;s:4:"@2|6";i:982;s:4:"@2|4";i:985;s:4:"@1|3";i:986;s:4:"@1|4";i:987;s:4:"@2|2";i:988;s:4:"@1|7";i:991;s:4:"@1|1";i:992;s:4:"@2|7";i:993;s:4:"@3|1";i:995;s:4:"@3|2";i:997;s:4:"@3|0";i:1001;s:4:"@1|6";i:1004;s:4:"@2|8";i:1005;s:4:"@2|9";i:1006;s:4:"@1|0";i:1008;s:4:"@2|3";i:1010;s:4:"@1|9";i:1015;s:4:"@2|1";i:1017;s:4:"@1|5";i:1018;s:4:"@2|0";i:1019;s:4:"@1|8";i:1033;}', -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:23:{s:4:"@3|2";i:983;s:4:"@2|2";i:984;s:4:"@2|3";i:989;s:4:"@3|0";i:990;s:4:"@2|8";i:999;s:4:"@3|1";i:1002;s:4:"@2|1";i:1003;s:4:"@2|0";i:1007;s:4:"@2|5";i:1009;s:4:"@1|0";i:1011;s:4:"@1|1";i:1012;s:4:"@1|2";i:1013;s:4:"@1|3";i:1014;s:4:"@2|6";i:1020;s:4:"@1|4";i:1021;s:4:"@2|4";i:1022;s:4:"@1|8";i:1023;s:4:"@1|9";i:1024;s:4:"@2|7";i:1025;s:4:"@1|7";i:1026;s:4:"@1|5";i:1027;s:4:"@1|6";i:1028;s:4:"@2|9";i:1029;}', -'@^Mozilla/5\.0 \(.*SymbianOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:4:{s:4:"@6|1";i:994;s:4:"@7|0";i:996;s:4:"@6|0";i:998;s:4:"@5|1";i:1000;}', -'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d).*; .*; rv\:1\..*\) Gecko/.* Firefox/(\d)\..* Flock/(\d)\..*$@'=>'a:10:{s:8:"@5|0|2|1";i:1016;s:8:"@5|2|2|1";i:1030;s:8:"@5|1|2|1";i:1031;s:8:"@5|2|3|2";i:1032;s:8:"@6|1|3|2";i:1034;s:8:"@6|0|2|1";i:1035;s:8:"@5|1|3|2";i:1036;s:8:"@6|0|3|2";i:1037;s:8:"@6|1|2|1";i:1038;s:8:"@5|0|3|2";i:1039;}', -'@^Mozilla/5\.0 \(.*Mac OS X.*\) .*AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:4:{s:4:"@6|1";i:1040;s:4:"@7|0";i:1041;s:4:"@5|1";i:1042;s:4:"@6|0";i:1043;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari\) .*OmniWeb/v563\..*$@'=>978, +'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/420\) .*OmniWeb/v.*$@'=>979, +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:23:{s:4:"@1|4";i:980;s:4:"@1|8";i:989;s:4:"@1|3";i:994;s:4:"@1|6";i:1000;s:4:"@1|5";i:1004;s:4:"@1|7";i:1013;s:4:"@2|0";i:1018;s:4:"@1|0";i:1019;s:4:"@2|5";i:1020;s:4:"@2|9";i:1021;s:4:"@2|3";i:1022;s:4:"@1|1";i:1024;s:4:"@2|6";i:1025;s:4:"@1|9";i:1026;s:4:"@2|7";i:1027;s:4:"@2|4";i:1028;s:4:"@2|2";i:1030;s:4:"@3|2";i:1031;s:4:"@3|1";i:1032;s:4:"@2|1";i:1034;s:4:"@1|2";i:1035;s:4:"@3|0";i:1036;s:4:"@2|8";i:1038;}', +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)(\d)\..* Safari/.*$@'=>'a:23:{s:4:"@2|2";i:981;s:4:"@1|7";i:985;s:4:"@2|3";i:987;s:4:"@2|4";i:988;s:4:"@2|5";i:990;s:4:"@2|6";i:991;s:4:"@2|1";i:996;s:4:"@1|9";i:998;s:4:"@1|6";i:999;s:4:"@1|4";i:1001;s:4:"@1|3";i:1002;s:4:"@1|8";i:1003;s:4:"@1|2";i:1005;s:4:"@2|0";i:1006;s:4:"@1|1";i:1009;s:4:"@2|8";i:1011;s:4:"@1|0";i:1012;s:4:"@2|7";i:1015;s:4:"@1|5";i:1016;s:4:"@2|9";i:1017;s:4:"@3|0";i:1033;s:4:"@3|1";i:1037;s:4:"@3|2";i:1039;}', +'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d).*; .*; rv\:1\..*\) Gecko/.* Firefox/(\d)\..* Flock/(\d)\..*$@'=>'a:10:{s:8:"@5|0|3|2";i:982;s:8:"@6|1|2|1";i:983;s:8:"@6|0|2|1";i:984;s:8:"@5|2|2|1";i:986;s:8:"@5|1|2|1";i:992;s:8:"@5|0|2|1";i:993;s:8:"@5|1|3|2";i:995;s:8:"@5|2|3|2";i:997;s:8:"@6|0|3|2";i:1007;s:8:"@6|1|3|2";i:1014;}', +'@^Mozilla/5\.0 \(.*SymbianOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:4:{s:4:"@7|0";i:1008;s:4:"@6|1";i:1010;s:4:"@5|1";i:1023;s:4:"@6|0";i:1029;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\) .*AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:4:{s:4:"@6|1";i:1040;s:4:"@7|0";i:1041;s:4:"@6|0";i:1042;s:4:"@5|1";i:1043;}', '@^Mozilla/5\.0 \(iPhone.*CPU.*OS 4_3.* like Mac OS X.*\).*AppleWebKit/\(.*KHTML, like Gecko.*\).*$@'=>1044, -'@^Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows NT 5\.1; Windows Phone 6\.5 HTC_HD2/1\.0\)$@'=>1045, -'@^Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows 95; PalmSource; Blazer 3\.0\) 16;160x160$@'=>1046, +'@^Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows 95; PalmSource; Blazer 3\.0\) 16;160x160$@'=>1045, +'@^Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows NT 5\.1; Windows Phone 6\.5 HTC_HD2/1\.0\)$@'=>1046, '@^Mozilla/5\.0 \(compatible; Yahoo\!\-AdCrawler;.*http\://help\.yahoo\.com/yahoo_adcrawler\)$@'=>1047, '@^Mozilla/5\.0 \(compatible; Yahoo\! Slurp China.*;.*http\://misc\.yahoo\.com\.cn/help\.html\)$@'=>1048, '@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/420 \(KHTML, like Gecko, Safari\) .*OmniWeb/v.*$@'=>1049, -'@^Mozilla/5\.0 \(iPhone.*CPU like Mac OS X.*\).*AppleWebKit/.*\(KHTML, like Gecko\).*Mobile/.*$@'=>1050, -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@7";i:1051;s:2:"@9";i:1052;s:2:"@6";i:1059;s:2:"@8";i:1063;}', -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)\..*Safari/.*$@'=>'a:4:{s:2:"@6";i:1053;s:2:"@8";i:1054;s:2:"@7";i:1055;s:2:"@9";i:1062;}', -'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.1(\d).*$@'=>'a:2:{s:2:"@1";i:1056;s:2:"@0";i:1060;}', -'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/.* Safari/.*$@'=>1057, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/.* Safari/.*$@'=>'a:4:{s:4:"@5|2";i:1058;s:4:"@6|1";i:1061;s:4:"@5|1";i:1064;s:4:"@6|0";i:1069;}', -'@^Mozilla/5\.0 \(.*SymbianOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@4";i:1065;s:2:"@2";i:1070;s:2:"@3";i:1072;s:2:"@5";i:1073;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/.*Safari/.*$@'=>'a:6:{s:4:"@6|0";i:1066;s:4:"@5|2";i:1067;s:4:"@6|1";i:1068;s:4:"@5|1";i:1071;s:4:"@5|0";i:1074;s:4:"@4|0";i:1076;}', -'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/.*Safari/.*$@'=>1075, -'@^Mozilla/5\.0 \(.*Mac OS X.*\) .*AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@4";i:1077;s:2:"@3";i:1078;s:2:"@5";i:1079;s:2:"@2";i:1080;}', -'@^Mozilla/5\.0 \(iPhone.*CPU.*OS 2_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(KHTML, like Gecko\).*$@'=>'a:3:{s:2:"@0";i:1081;s:2:"@1";i:1082;s:2:"@2";i:1083;}', +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@9";i:1050;s:2:"@6";i:1065;s:2:"@7";i:1072;s:2:"@8";i:1074;}', +'@^Mozilla/5\.0 \(.*SymbianOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@2";i:1051;s:2:"@4";i:1053;s:2:"@3";i:1060;s:2:"@5";i:1071;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.1(\d).*$@'=>'a:2:{s:2:"@1";i:1052;s:2:"@0";i:1056;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/.* Safari/.*$@'=>'a:4:{s:4:"@6|1";i:1054;s:4:"@5|1";i:1057;s:4:"@5|2";i:1058;s:4:"@6|0";i:1059;}', +'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/.* Safari/.*$@'=>1055, +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)\..*Safari/.*$@'=>'a:4:{s:2:"@6";i:1061;s:2:"@7";i:1063;s:2:"@8";i:1073;s:2:"@9";i:1075;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/.*Safari/.*$@'=>'a:6:{s:4:"@4|0";i:1062;s:4:"@5|0";i:1064;s:4:"@5|1";i:1067;s:4:"@5|2";i:1068;s:4:"@6|0";i:1069;s:4:"@6|1";i:1070;}', +'@^Mozilla/5\.0 \(.*Intel Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/.*Safari/.*$@'=>1066, +'@^Mozilla/5\.0 \(iPhone.*CPU like Mac OS X.*\).*AppleWebKit/.*\(KHTML, like Gecko\).*Mobile/.*$@'=>1076, +'@^Mozilla/5\.0 \(.*Mac OS X.*\) .*AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@3";i:1077;s:2:"@4";i:1078;s:2:"@2";i:1079;s:2:"@5";i:1080;}', +'@^Mozilla/5\.0 \(iPhone.*CPU.*OS 2_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(KHTML, like Gecko\).*$@'=>'a:3:{s:2:"@2";i:1081;s:2:"@0";i:1082;s:2:"@1";i:1083;}', '@^Mozilla/5\.0 \(iPod.*CPU like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Mobile/.*$@'=>1084, -'@^Mozilla/5\.0 \(iPhone.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>1085, -'@^Mozilla/5\.0 \(iPad.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>'a:7:{s:4:"@5|1";i:1086;s:4:"@5|0";i:1087;s:4:"@6|1";i:1089;s:4:"@3|2";i:1095;s:4:"@4|3";i:1101;s:4:"@4|2";i:1102;s:4:"@6|0";i:1105;}', -'@^Mozilla/5\.0 \(iPod.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>'a:13:{s:4:"@5|0";i:1088;s:4:"@4|3";i:1090;s:4:"@6|1";i:1091;s:4:"@5|1";i:1092;s:4:"@6|0";i:1093;s:4:"@4|0";i:1094;s:4:"@2|2";i:1096;s:4:"@2|1";i:1097;s:4:"@2|0";i:1098;s:4:"@3|0";i:1099;s:4:"@3|1";i:1100;s:4:"@4|1";i:1103;s:4:"@4|2";i:1104;}', +'@^Mozilla/5\.0 \(iPod.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>'a:13:{s:4:"@3|0";i:1085;s:4:"@3|1";i:1086;s:4:"@4|0";i:1088;s:4:"@2|2";i:1089;s:4:"@4|1";i:1090;s:4:"@2|1";i:1093;s:4:"@2|0";i:1094;s:4:"@5|0";i:1095;s:4:"@6|1";i:1099;s:4:"@4|2";i:1100;s:4:"@5|1";i:1101;s:4:"@6|0";i:1102;s:4:"@4|3";i:1105;}', +'@^Mozilla/5\.0 \(iPad.*CPU.*OS (\d)_(\d).* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>'a:7:{s:4:"@3|2";i:1087;s:4:"@4|2";i:1091;s:4:"@4|3";i:1092;s:4:"@6|0";i:1096;s:4:"@5|1";i:1097;s:4:"@6|1";i:1098;s:4:"@5|0";i:1103;}', +'@^Mozilla/5\.0 \(iPhone.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>1104, '@^Mozilla/5\.0 \(.*Android.*Linux.*arm.*Mobile.*rv\:10\..*\).*Gecko/10\..*Firefox/10\..*Fennec/10\..*$@'=>1106, -'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)(\d)\..* Safari/.*$@'=>'a:23:{s:4:"@1|3";i:1107;s:4:"@2|3";i:1108;s:4:"@2|4";i:1109;s:4:"@2|5";i:1110;s:4:"@1|4";i:1111;s:4:"@2|2";i:1113;s:4:"@1|5";i:1114;s:4:"@1|7";i:1115;s:4:"@1|2";i:1116;s:4:"@2|6";i:1117;s:4:"@3|1";i:1118;s:4:"@3|2";i:1119;s:4:"@3|0";i:1122;s:4:"@1|0";i:1123;s:4:"@2|7";i:1124;s:4:"@1|1";i:1125;s:4:"@2|8";i:1126;s:4:"@2|9";i:1127;s:4:"@2|1";i:1128;s:4:"@2|0";i:1129;s:4:"@1|6";i:1135;s:4:"@1|8";i:1136;s:4:"@1|9";i:1151;}', -'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:23:{s:4:"@3|0";i:1112;s:4:"@3|1";i:1120;s:4:"@2|5";i:1121;s:4:"@2|8";i:1130;s:4:"@1|8";i:1131;s:4:"@2|9";i:1132;s:4:"@1|7";i:1133;s:4:"@1|9";i:1134;s:4:"@2|0";i:1137;s:4:"@2|4";i:1138;s:4:"@2|7";i:1139;s:4:"@2|1";i:1140;s:4:"@1|2";i:1141;s:4:"@2|2";i:1142;s:4:"@1|1";i:1143;s:4:"@1|0";i:1144;s:4:"@2|6";i:1145;s:4:"@1|3";i:1146;s:4:"@1|6";i:1147;s:4:"@1|5";i:1148;s:4:"@1|4";i:1149;s:4:"@3|2";i:1150;s:4:"@2|3";i:1152;}', -'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.(\d).*$@'=>'a:2:{s:2:"@9";i:1153;s:2:"@8";i:1154;}', +'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)(\d)\..* Safari/.*$@'=>'a:23:{s:4:"@2|2";i:1107;s:4:"@2|3";i:1112;s:4:"@2|4";i:1113;s:4:"@2|5";i:1114;s:4:"@2|6";i:1118;s:4:"@2|7";i:1123;s:4:"@2|8";i:1124;s:4:"@2|9";i:1125;s:4:"@3|0";i:1127;s:4:"@3|2";i:1130;s:4:"@1|0";i:1131;s:4:"@3|1";i:1133;s:4:"@1|8";i:1134;s:4:"@1|4";i:1137;s:4:"@2|1";i:1138;s:4:"@1|3";i:1139;s:4:"@1|9";i:1143;s:4:"@2|0";i:1144;s:4:"@1|7";i:1145;s:4:"@1|2";i:1147;s:4:"@1|6";i:1151;s:4:"@1|5";i:1152;s:4:"@1|1";i:1153;}', +'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)(\d)\..*Safari/.*$@'=>'a:23:{s:4:"@2|5";i:1108;s:4:"@1|1";i:1109;s:4:"@2|7";i:1110;s:4:"@1|4";i:1111;s:4:"@1|7";i:1115;s:4:"@2|6";i:1116;s:4:"@3|2";i:1117;s:4:"@1|9";i:1119;s:4:"@3|1";i:1120;s:4:"@1|3";i:1121;s:4:"@2|8";i:1122;s:4:"@2|9";i:1126;s:4:"@3|0";i:1128;s:4:"@1|2";i:1129;s:4:"@1|0";i:1132;s:4:"@1|8";i:1135;s:4:"@2|3";i:1136;s:4:"@1|5";i:1142;s:4:"@2|4";i:1146;s:4:"@1|6";i:1148;s:4:"@2|2";i:1149;s:4:"@2|1";i:1150;s:4:"@2|0";i:1154;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.(\d).*$@'=>'a:2:{s:2:"@9";i:1140;s:2:"@8";i:1141;}', '@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\...*$@'=>1155, '@^OOZBOT/0\.20 \( http\://www\.setooz\.com/oozbot\.html ; agentname at setooz dot_com \)$@'=>1156, -'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d) x64; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>'a:4:{s:4:"@5|2";i:1157;s:4:"@5|1";i:1158;s:4:"@6|1";i:1159;s:4:"@6|0";i:1160;}', +'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d) x64; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>'a:4:{s:4:"@6|0";i:1157;s:4:"@6|1";i:1158;s:4:"@5|1";i:1159;s:4:"@5|2";i:1160;}', '@^Mozilla/5\.0 \(Windows; U; Windows NT 5\.1;.* rv\:1\.9.*\) Gecko/.* Firefox/.* Fennec/4\..*$@'=>1161, -'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@7";i:1162;s:2:"@8";i:1170;s:2:"@9";i:1172;s:2:"@6";i:1173;}', -'@^Mozilla/5\.0 \(.*CentOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:4:{s:4:"@5|1";i:1163;s:4:"@6|0";i:1165;s:4:"@6|1";i:1169;s:4:"@7|0";i:1171;}', -'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)\..*Safari/.*$@'=>'a:4:{s:2:"@9";i:1164;s:2:"@6";i:1168;s:2:"@8";i:1174;s:2:"@7";i:1175;}', -'@^Mozilla/5\.0 \(X11; U; Linux.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/.* Maemo Browser 1\.7\..*$@'=>1166, -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/.* Safari/.*$@'=>1167, -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/.*Safari/.*$@'=>1176, -'@^Mozilla/5\.0 \(Macintosh; U; .*Mac OS X.*; .*; rv\:1\..*\) Gecko/.* Firefox/(\d)\..* Flock/(\d)\..*$@'=>'a:2:{s:4:"@2|1";i:1177;s:4:"@3|2";i:1178;}', +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/.* Safari/.*$@'=>1162, +'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/(\d)\..*Safari/.*$@'=>'a:4:{s:2:"@6";i:1163;s:2:"@7";i:1166;s:2:"@8";i:1168;s:2:"@9";i:1172;}', +'@^Mozilla/5\.0 \(.*CentOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:4:{s:4:"@6|0";i:1164;s:4:"@7|0";i:1171;s:4:"@6|1";i:1173;s:4:"@5|1";i:1176;}', +'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@6";i:1165;s:2:"@7";i:1167;s:2:"@8";i:1169;s:2:"@9";i:1170;}', +'@^Mozilla/5\.0 \(X11; U; Linux.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/.* Maemo Browser 1\.7\..*$@'=>1174, +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/.*Safari/.*$@'=>1175, +'@^Mozilla/5\.0 \(Macintosh; U; .*Mac OS X.*; .*; rv\:1\..*\) Gecko/.* Firefox/(\d)\..* Flock/(\d)\..*$@'=>'a:2:{s:4:"@3|2";i:1177;s:4:"@2|1";i:1178;}', '@^Mozilla/5\.0 \(iPad.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>1179, '@^Mozilla/5\.0 \(iPod.*CPU.*OS 7.* like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>1180, '@^Mozilla/5\.0 \(compatible; MSIE 6\.0; Podtech Network; crawler_admin\@podtech\.net\)$@'=>1181, -'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d) x64; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>'a:4:{s:4:"@6|1";i:1182;s:4:"@5|2";i:1183;s:4:"@6|0";i:1184;s:4:"@5|1";i:1185;}', -'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d);.*rv\:(\d)\.(\d).*\) Gecko/.* Firefox/.* Fennec/(\d)\..*$@'=>'a:18:{s:10:"@6|0|1|9|5";i:1186;s:10:"@6|1|1|9|6";i:1187;s:10:"@6|1|1|9|5";i:1188;s:10:"@5|2|1|9|4";i:1189;s:10:"@5|1|1|9|6";i:1190;s:10:"@5|2|1|9|6";i:1191;s:10:"@6|0|1|9|6";i:1194;s:10:"@6|2|1|9|6";i:1195;s:10:"@5|1|1|9|5";i:1196;s:10:"@6|1|2|1|4";i:1197;s:10:"@6|1|1|9|4";i:1198;s:10:"@5|2|1|9|5";i:1199;s:10:"@6|0|1|9|4";i:1200;s:10:"@6|1|1|9|7";i:1201;s:10:"@6|2|1|9|7";i:1202;s:10:"@5|2|1|9|7";i:1203;s:10:"@6|0|1|9|7";i:1204;s:10:"@5|1|1|9|7";i:1206;}', -'@^Mozilla/5\.0 \(Windows; U; Win 9x 4\.90; .*; rv\:1\..*\) Gecko/.* Firefox/(\d)\..* Flock/(\d)\..*$@'=>'a:2:{s:4:"@3|2";i:1192;s:4:"@2|1";i:1193;}', -'@^Mozilla/5\.0 \(Macintosh; Intel Mac OS X.*; rv\:2\.1.*\) Gecko/.* Firefox/.* Fennec/7\..*$@'=>1205, -'@^Mozilla/5\.0 \(.*CentOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@2";i:1207;s:2:"@5";i:1220;s:2:"@3";i:1221;s:2:"@4";i:1222;}', -'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT (\d)\.(\d); .*Win64; x64.*; Trident/4\.0.*\).*$@'=>'a:5:{s:4:"@6|1";i:1208;s:4:"@5|2";i:1213;s:4:"@5|1";i:1215;s:4:"@6|0";i:1217;s:4:"@5|0";i:1218;}', -'@^Mozilla/5\.0 \(.*Linux.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.1(\d).*$@'=>'a:2:{s:2:"@1";i:1209;s:2:"@0";i:1211;}', -'@^Mozilla/5\.0 \(.*Linux.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:4:{s:4:"@6|1";i:1210;s:4:"@6|0";i:1212;s:4:"@5|1";i:1214;s:4:"@7|0";i:1216;}', -'@^Mozilla/5\.0 \(Macintosh; .; PPC Mac OS X Mach\-O; .*; rv\:.*\) Gecko/.* Netscape.*/8\..*$@'=>1219, +'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d) x64; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>'a:4:{s:4:"@5|2";i:1182;s:4:"@6|1";i:1183;s:4:"@6|0";i:1184;s:4:"@5|1";i:1185;}', +'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d);.*rv\:(\d)\.(\d).*\) Gecko/.* Firefox/.* Fennec/(\d)\..*$@'=>'a:18:{s:10:"@6|0|1|9|5";i:1186;s:10:"@5|2|1|9|5";i:1188;s:10:"@6|2|1|9|7";i:1189;s:10:"@5|1|1|9|6";i:1190;s:10:"@6|1|2|1|4";i:1191;s:10:"@5|2|1|9|6";i:1192;s:10:"@6|0|1|9|6";i:1193;s:10:"@6|1|1|9|6";i:1194;s:10:"@6|2|1|9|6";i:1195;s:10:"@5|1|1|9|7";i:1197;s:10:"@6|1|1|9|7";i:1198;s:10:"@5|2|1|9|7";i:1199;s:10:"@6|0|1|9|7";i:1200;s:10:"@5|1|1|9|5";i:1201;s:10:"@6|1|1|9|5";i:1202;s:10:"@6|1|1|9|4";i:1203;s:10:"@5|2|1|9|4";i:1204;s:10:"@6|0|1|9|4";i:1205;}', +'@^Mozilla/5\.0 \(Windows; U; Win 9x 4\.90; .*; rv\:1\..*\) Gecko/.* Firefox/(\d)\..* Flock/(\d)\..*$@'=>'a:2:{s:4:"@3|2";i:1187;s:4:"@2|1";i:1206;}', +'@^Mozilla/5\.0 \(Macintosh; Intel Mac OS X.*; rv\:2\.1.*\) Gecko/.* Firefox/.* Fennec/7\..*$@'=>1196, +'@^Mozilla/5\.0 \(.*Linux.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\.(\d).* Safari/.*$@'=>'a:4:{s:4:"@6|0";i:1207;s:4:"@7|0";i:1215;s:4:"@5|1";i:1216;s:4:"@6|1";i:1220;}', +'@^Mozilla/5\.0 \(.*CentOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@2";i:1208;s:2:"@3";i:1214;s:2:"@4";i:1218;s:2:"@5";i:1219;}', +'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT (\d)\.(\d); .*Win64; x64.*; Trident/4\.0.*\).*$@'=>'a:5:{s:4:"@5|2";i:1209;s:4:"@6|0";i:1210;s:4:"@6|1";i:1211;s:4:"@5|1";i:1217;s:4:"@5|0";i:1221;}', +'@^Mozilla/5\.0 \(.*Linux.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.1(\d).*$@'=>'a:2:{s:2:"@0";i:1212;s:2:"@1";i:1213;}', +'@^Mozilla/5\.0 \(Macintosh; .; PPC Mac OS X Mach\-O; .*; rv\:.*\) Gecko/.* Netscape.*/8\..*$@'=>1222, '@^Opera/.*\(.*Android 4\..*Linux.*Opera Mobi/ADR\-1205181138.*\).*Presto/2\.10.*Version/12\..*$@'=>1223, -'@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT (\d)\.(\d); Trident/(\d)\.0; .*MSOffice 1(\d)\)$@'=>'a:6:{s:8:"@6|0|4|4";i:1224;s:8:"@5|2|4|2";i:1225;s:8:"@6|1|4|2";i:1226;s:8:"@6|1|4|4";i:1227;s:8:"@6|1|5|4";i:1228;s:8:"@6|1|5|2";i:1230;}', +'@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT (\d)\.(\d); Trident/(\d)\.0; .*MSOffice 1(\d)\)$@'=>'a:6:{s:8:"@6|1|5|2";i:1224;s:8:"@6|1|4|2";i:1225;s:8:"@6|1|5|4";i:1226;s:8:"@5|2|4|2";i:1227;s:8:"@6|0|4|4";i:1228;s:8:"@6|1|4|4";i:1230;}', '@^Mozilla/5\.0 \(compatible; FriendFeedBot/0\..*; \+Http\://friendfeed\.com/about/bot\)$@'=>1229, -'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d) x64; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:8:{s:6:"@5|1|0";i:1231;s:6:"@5|1|1";i:1232;s:6:"@6|0|0";i:1233;s:6:"@5|2|0";i:1234;s:6:"@6|1|1";i:1235;s:6:"@6|1|0";i:1236;s:6:"@5|2|1";i:1237;s:6:"@6|0|1";i:1238;}', +'@^Mozilla/5\.0 \(Windows; U; Windows NT (\d)\.(\d) x64; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:8:{s:6:"@6|1|0";i:1231;s:6:"@6|1|1";i:1232;s:6:"@6|0|1";i:1233;s:6:"@5|2|1";i:1234;s:6:"@5|1|1";i:1235;s:6:"@6|0|0";i:1236;s:6:"@5|1|0";i:1237;s:6:"@5|2|0";i:1238;}', '@^Mozilla/5\.0 \(Macintosh; Intel Mac OS X.*; rv\:2\..*\) Gecko/.* Firefox/.* Fennec/4\..*$@'=>1239, -'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/.* Safari/.*$@'=>1240, -'@^Mozilla/5\.0 \(.*Linux.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.(\d).*$@'=>'a:2:{s:2:"@8";i:1241;s:2:"@9";i:1243;}', -'@^Mozilla/5\.0 \(.*Linux.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@4";i:1242;s:2:"@2";i:1245;s:2:"@3";i:1246;s:2:"@5";i:1247;}', +'@^Mozilla/5\.0 \(.*Linux.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Version/(\d)\..* Safari/.*$@'=>'a:4:{s:2:"@5";i:1240;s:2:"@2";i:1241;s:2:"@4";i:1242;s:2:"@3";i:1245;}', +'@^Mozilla/5\.0 \(.*Linux.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\.(\d).*$@'=>'a:2:{s:2:"@9";i:1243;s:2:"@8";i:1247;}', '@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/.*Safari/.*$@'=>1244, +'@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/.* Safari/.*$@'=>1246, '@^Mozilla/5\.0 \(.*Linux.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) .*Arora/0\...*$@'=>1248, -'@^Mozilla/5\.0 \(.*CrOS.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Chrome/(\d)(\d)\.0\..*Safari/.*$@'=>'a:13:{s:4:"@2|5";i:1249;s:4:"@2|2";i:1250;s:4:"@2|4";i:1251;s:4:"@2|6";i:1252;s:4:"@2|8";i:1253;s:4:"@2|3";i:1254;s:4:"@3|0";i:1255;s:4:"@3|1";i:1256;s:4:"@2|7";i:1257;s:4:"@2|1";i:1258;s:4:"@3|2";i:1259;s:4:"@2|9";i:1260;s:4:"@2|0";i:1261;}', -'@^Mozilla/5\.0 \(compatible; SuchbaerBot/0\..*; \+http\://bot\.suchbaer\.de/info\.html\)$@'=>1262, -'@^Mozilla/5\.0 \(Yahoo\-MMCrawler/.*; mailto\:vertical\-crawl\-support\@yahoo\-inc\.com\)$@'=>1263, -'@^Microsoft Office/14\.0 \(Windows NT (\d)\.1; Microsoft Outlook 14\..*; .*MSOffice 14\)$@'=>'a:2:{s:2:"@6";i:1264;s:2:"@5";i:1265;}', +'@^Mozilla/5\.0 \(.*CrOS.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*Chrome/(\d)(\d)\.0\..*Safari/.*$@'=>'a:13:{s:4:"@2|7";i:1249;s:4:"@2|2";i:1250;s:4:"@3|0";i:1251;s:4:"@3|2";i:1252;s:4:"@2|8";i:1253;s:4:"@2|5";i:1254;s:4:"@2|6";i:1255;s:4:"@2|0";i:1256;s:4:"@2|9";i:1257;s:4:"@2|4";i:1258;s:4:"@2|1";i:1259;s:4:"@3|1";i:1260;s:4:"@2|3";i:1261;}', +'@^Mozilla/5\.0 \(Yahoo\-MMCrawler/.*; mailto\:vertical\-crawl\-support\@yahoo\-inc\.com\)$@'=>1262, +'@^Mozilla/5\.0 \(compatible; SuchbaerBot/0\..*; \+http\://bot\.suchbaer\.de/info\.html\)$@'=>1263, +'@^Microsoft Office/14\.0 \(Windows NT (\d)\.1; Microsoft Outlook 14\..*; .*MSOffice 14\)$@'=>'a:2:{s:2:"@5";i:1264;s:2:"@6";i:1265;}', '@^Mozilla/.* \(compatible; MSIE 9\.0; .*Windows NT 6\.(\d); Win64; x64; Trident/5\.0.*\).*$@'=>'a:2:{s:2:"@0";i:1266;s:2:"@1";i:1267;}', '@^Mozilla/5\.0 \(Macintosh; Intel Mac OS X.*rv\:2\.1.*\) Gecko/.* Firefox/.* Fennec/5\..*$@'=>1268, '@^Mozilla/5\.0 \(X11; U; Linux.*; .*; rv\:1\.(\d)\..*\) Gecko/.* Iceweasel/(\d)\.0.* \(Debian\-.*\).*$@'=>'a:2:{s:4:"@8|2";i:1269;s:4:"@9|3";i:1270;}', '@^Mozilla/5\.0 \(compatible; Chirp/1\.0; \+http\://www\.binarycanary\.com/chirp\.cfm\)$@'=>1271, -'@^facebookexternalhit/1\.(\d) \(\+http.*\://www\.facebook\.com/externalhit_uatext\.php\).*$@'=>'a:2:{s:2:"@1";i:1272;s:2:"@0";i:1273;}', +'@^facebookexternalhit/1\.(\d) \(\+http.*\://www\.facebook\.com/externalhit_uatext\.php\).*$@'=>'a:2:{s:2:"@0";i:1272;s:2:"@1";i:1273;}', '@^Mozilla/5\.0 \(Macintosh; Intel Mac OS X.*rv\:2\.1\) Gecko/.* Firefox/.* Fennec/6\..*$@'=>1274, -'@^Mozilla/5\.0 \(Windows; .; Windows NT (\d)\.(\d); .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:15:{s:10:"@5|0|8|1|0";i:1275;s:10:"@6|1|8|1|0";i:1277;s:10:"@6|0|8|1|0";i:1278;s:10:"@5|1|8|1|0";i:1279;s:10:"@5|2|8|1|0";i:1280;s:10:"@5|0|8|1|1";i:1281;s:10:"@5|1|8|1|1";i:1282;s:10:"@6|0|9|2|0";i:1283;s:10:"@5|2|9|2|0";i:1284;s:10:"@6|0|8|1|1";i:1285;s:10:"@6|1|9|2|0";i:1286;s:10:"@5|2|8|1|1";i:1287;s:10:"@5|0|9|2|0";i:1288;s:10:"@6|1|8|1|1";i:1289;s:10:"@5|1|9|2|0";i:1290;}', -'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>'a:5:{s:4:"@6|1";i:1276;s:4:"@5|0";i:1291;s:4:"@6|0";i:1293;s:4:"@5|1";i:1294;s:4:"@5|2";i:1295;}', -'@^Mozilla/5\.0 \(Macintosh; .; PPC Mac OS X;.*\) AppleWebKit/.* \(.*\) HistoryHound/.*$@'=>1292, +'@^Mozilla/5\.0 \(Windows; .; Windows NT (\d)\.(\d); .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:15:{s:10:"@5|1|8|1|0";i:1275;s:10:"@6|1|9|2|0";i:1276;s:10:"@5|2|9|2|0";i:1277;s:10:"@5|2|8|1|0";i:1278;s:10:"@6|0|8|1|0";i:1279;s:10:"@6|1|8|1|0";i:1280;s:10:"@5|1|9|2|0";i:1281;s:10:"@6|0|9|2|0";i:1282;s:10:"@5|0|9|2|0";i:1283;s:10:"@5|0|8|1|0";i:1289;s:10:"@6|1|8|1|1";i:1290;s:10:"@6|0|8|1|1";i:1291;s:10:"@5|2|8|1|1";i:1292;s:10:"@5|0|8|1|1";i:1293;s:10:"@5|1|8|1|1";i:1294;}', +'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>'a:5:{s:4:"@6|1";i:1284;s:4:"@5|0";i:1286;s:4:"@5|1";i:1287;s:4:"@5|2";i:1288;s:4:"@6|0";i:1295;}', +'@^Mozilla/5\.0 \(Macintosh; .; PPC Mac OS X;.*\) AppleWebKit/.* \(.*\) HistoryHound/.*$@'=>1285, '@^Mozilla/5\.0 \(X11; U; Linux.*; .*; rv\:1\.9\..*\) Gecko/.* Iceweasel/3\.5.* \(Debian\-.*\)$@'=>1296, '@^Cocoal\.icio\.us/1\.0 \(v43\) \(Mac OS X; http\://www\.scifihifi\.com/cocoalicious\)$@'=>1297, -'@^Mozilla/5\.0 \(compatible; Konqueror/4\.(\d).*; FreeBSD\) KHTML/4\.(\d).* \(like Gecko\).*$@'=>'a:4:{s:4:"@7|7";i:1298;s:4:"@8|8";i:1299;s:4:"@6|6";i:1301;s:4:"@5|5";i:1302;}', -'@^Mozilla/5\.0 \(compatible; del\.icio\.us\-thumbnails/.*; .*\) KHTML/.* \(like Gecko\)$@'=>1300, -'@^Mozilla/5\.0 \(compatible; Konqueror/4\.(\d).*; .*Linux.*\) KHTML/4\.(\d).* \(like Gecko\).*$@'=>'a:4:{s:4:"@6|6";i:1303;s:4:"@5|5";i:1304;s:4:"@7|7";i:1310;s:4:"@8|8";i:1318;}', -'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) ADM/.*$@'=>1305, -'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>'a:5:{s:4:"@6|1";i:1306;s:4:"@5|0";i:1313;s:4:"@5|1";i:1314;s:4:"@5|2";i:1315;s:4:"@6|0";i:1316;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Safari/.*$@'=>'a:5:{s:4:"@5|2";i:1307;s:4:"@5|1";i:1312;s:4:"@5|0";i:1317;s:4:"@6|0";i:1319;s:4:"@6|1";i:1320;}', -'@^Mozilla/5\.0 \(X11; U; Linux.*; .*; rv\:1\..*; aggregator\:NewsMonster; .*\) Gecko/.*$@'=>1308, -'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*OmniWeb/v558\..*$@'=>1309, -'@^Mozilla/5\.0 \(Java;.*samsung\-gt\-s5263\) UCBrowser8\.2.*UCWEB.*Mobile.*UNTRUSTED/.*$@'=>1311, +'@^Mozilla/5\.0 \(compatible; Konqueror/4\.(\d).*; FreeBSD\) KHTML/4\.(\d).* \(like Gecko\).*$@'=>'a:4:{s:4:"@6|6";i:1298;s:4:"@7|7";i:1300;s:4:"@8|8";i:1301;s:4:"@5|5";i:1302;}', +'@^Mozilla/5\.0 \(compatible; del\.icio\.us\-thumbnails/.*; .*\) KHTML/.* \(like Gecko\)$@'=>1299, +'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>'a:5:{s:4:"@5|2";i:1303;s:4:"@6|0";i:1305;s:4:"@5|0";i:1307;s:4:"@5|1";i:1310;s:4:"@6|1";i:1320;}', +'@^Mozilla/5\.0 \(compatible; Konqueror/4\.(\d).*; .*Linux.*\) KHTML/4\.(\d).* \(like Gecko\).*$@'=>'a:4:{s:4:"@6|6";i:1304;s:4:"@7|7";i:1313;s:4:"@8|8";i:1316;s:4:"@5|5";i:1318;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Safari/.*$@'=>'a:5:{s:4:"@6|0";i:1306;s:4:"@6|1";i:1311;s:4:"@5|0";i:1315;s:4:"@5|1";i:1317;s:4:"@5|2";i:1319;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko, Safari/.*\) ADM/.*$@'=>1308, +'@^Mozilla/5\.0 \(Java;.*samsung\-gt\-s5263\) UCBrowser8\.2.*UCWEB.*Mobile.*UNTRUSTED/.*$@'=>1309, +'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*OmniWeb/v558\..*$@'=>1312, +'@^Mozilla/5\.0 \(X11; U; Linux.*; .*; rv\:1\..*; aggregator\:NewsMonster; .*\) Gecko/.*$@'=>1314, '@^Mozilla/5\.0 \(Macintosh; .*Intel Mac OS X.*; .*; rv\:1\.9\..*\) Gecko/.* Camino/2\.0.*$@'=>1321, -'@^Mozilla/.* \(compatible; MSIE 7\.0.*; .*Windows NT 5\.2; .*WOW64.*; Trident/(\d)\.0.*\).*$@'=>'a:2:{s:2:"@5";i:1322;s:2:"@4";i:1323;}', +'@^Mozilla/.* \(compatible; MSIE 7\.0.*; .*Windows NT 5\.2; .*WOW64.*; Trident/(\d)\.0.*\).*$@'=>'a:2:{s:2:"@4";i:1322;s:2:"@5";i:1323;}', '@^Speedy Spider \(http\://www\.entireweb\.com/about/search_tech/speedy_spider/\)$@'=>1324, '@^Mozilla/5\.0 \(compatible; ActiveTouristBot.*; http\://www\.activetourist\.com\)$@'=>1325, -'@^Mozilla/5\.0 \(.*\) Gecko/.* Firefox/2\.0 OneRiot/1\.0 \(http\://www\.oneriot\.com\) $@'=>1326, -'@^Mozilla/4\.0 \(compatible; Linux.*\) NetFront/3\..* Kindle/(\d)\.0 \(screen 600x800\)$@'=>'a:2:{s:2:"@1";i:1327;s:2:"@2";i:1331;}', -'@^Simpy/.* \(Simpy; http\://www\.simpy\.com/.ref\=bot; feedback at simpy dot com\)$@'=>1328, -'@^Mozilla/5\.0 \(compatible; Konqueror/4\.(\d).*; Windows\) KHTML/4\.(\d).* \(like Gecko\)$@'=>'a:4:{s:4:"@7|7";i:1329;s:4:"@6|6";i:1330;s:4:"@8|8";i:1332;s:4:"@5|5";i:1333;}', -'@^Mozilla/4\.0 \(compatible; .*Vagabondo/.*; webcrawler at wise\-guys dot nl; .*\)$@'=>1334, -'@^Mozilla/5\.0 \(compatible; Konqueror/4\.(\d).*; NetBSD\) KHTML/4\.(\d).* \(like Gecko\).*$@'=>'a:4:{s:4:"@6|6";i:1335;s:4:"@5|5";i:1336;s:4:"@8|8";i:1339;s:4:"@7|7";i:1341;}', -'@^Mozilla/5\.0 \(compatible; Konqueror/4\.(\d).*; Debian\) KHTML/4\.(\d).* \(like Gecko\).*$@'=>'a:4:{s:4:"@7|7";i:1337;s:4:"@8|8";i:1338;s:4:"@5|5";i:1340;s:4:"@6|6";i:1342;}', -'@^Mozilla/5\.0 \(iPhone.*CPU like Mac OS X.*\).*AppleWebKit/.*\(KHTML, like Gecko\).*$@'=>1343, -'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:8:{s:6:"@6|1|1";i:1344;s:6:"@5|2|1";i:1357;s:6:"@6|0|0";i:1358;s:6:"@5|2|0";i:1359;s:6:"@5|1|0";i:1360;s:6:"@6|0|1";i:1361;s:6:"@5|1|1";i:1363;s:6:"@5|0|1";i:1364;}', -'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\..*\) Gecko/.* K\-Meleon/1\.(\d).*$@'=>'a:12:{s:6:"@5|1|0";i:1345;s:6:"@6|1|5";i:1346;s:6:"@5|1|6";i:1347;s:6:"@5|2|6";i:1348;s:6:"@6|0|6";i:1349;s:6:"@6|0|5";i:1350;s:6:"@5|2|5";i:1351;s:6:"@5|1|1";i:1352;s:6:"@5|2|1";i:1353;s:6:"@5|1|5";i:1354;s:6:"@6|1|6";i:1355;s:6:"@5|2|0";i:1356;}', -'@^Mozilla/5\.0 \(X11; U; Linux.*; .*; rv\:1\..*; aggregator\:FeedParser; .*\) Gecko/.*$@'=>1362, -'@^Mozilla/5\.0 \(Windows; .*; Windows NT 5\.0; .*; rv\:1\..*\) Gecko/.* K\-Meleon.1\.(\d).*$@'=>'a:4:{s:2:"@0";i:1365;s:2:"@1";i:1366;s:2:"@6";i:1368;s:2:"@5";i:1371;}', -'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT (\d)\.(\d); .*WOW64.*; Trident/4\.0.*\).*$@'=>'a:4:{s:4:"@5|2";i:1367;s:4:"@5|0";i:1369;s:4:"@6|1";i:1370;s:4:"@6|0";i:1372;}', -'@^Mozilla/.* \(compatible; MSIE 7\.0.*; Windows NT 6\.1; .*WOW64.*; Trident/4\.0.*\).*$@'=>1373, -'@^Mozilla/5\.0 \(Macintosh; .; .*Mac OS X.*; .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:3:{s:6:"@9|2|0";i:1374;s:6:"@8|1|0";i:1375;s:6:"@8|1|1";i:1378;}', +'@^Mozilla/5\.0 \(compatible; Konqueror/4\.(\d).*; Windows\) KHTML/4\.(\d).* \(like Gecko\)$@'=>'a:4:{s:4:"@6|6";i:1326;s:4:"@7|7";i:1329;s:4:"@8|8";i:1330;s:4:"@5|5";i:1332;}', +'@^Mozilla/4\.0 \(compatible; Linux.*\) NetFront/3\..* Kindle/(\d)\.0 \(screen 600x800\)$@'=>'a:2:{s:2:"@2";i:1327;s:2:"@1";i:1328;}', +'@^Mozilla/5\.0 \(.*\) Gecko/.* Firefox/2\.0 OneRiot/1\.0 \(http\://www\.oneriot\.com\) $@'=>1331, +'@^Simpy/.* \(Simpy; http\://www\.simpy\.com/.ref\=bot; feedback at simpy dot com\)$@'=>1333, +'@^Mozilla/5\.0 \(compatible; Konqueror/4\.(\d).*; NetBSD\) KHTML/4\.(\d).* \(like Gecko\).*$@'=>'a:4:{s:4:"@8|8";i:1334;s:4:"@7|7";i:1335;s:4:"@5|5";i:1339;s:4:"@6|6";i:1341;}', +'@^Mozilla/5\.0 \(compatible; Konqueror/4\.(\d).*; Debian\) KHTML/4\.(\d).* \(like Gecko\).*$@'=>'a:4:{s:4:"@8|8";i:1336;s:4:"@7|7";i:1337;s:4:"@5|5";i:1338;s:4:"@6|6";i:1342;}', +'@^Mozilla/4\.0 \(compatible; .*Vagabondo/.*; webcrawler at wise\-guys dot nl; .*\)$@'=>1340, +'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\..*\) Gecko/.* K\-Meleon/1\.(\d).*$@'=>'a:12:{s:6:"@5|1|0";i:1343;s:6:"@5|2|5";i:1353;s:6:"@5|2|6";i:1354;s:6:"@5|2|1";i:1355;s:6:"@5|1|1";i:1356;s:6:"@5|1|5";i:1357;s:6:"@6|1|5";i:1358;s:6:"@5|1|6";i:1359;s:6:"@6|0|5";i:1360;s:6:"@6|0|6";i:1361;s:6:"@5|2|0";i:1362;s:6:"@6|1|6";i:1364;}', +'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:8:{s:6:"@6|1|1";i:1344;s:6:"@6|0|0";i:1345;s:6:"@5|1|0";i:1346;s:6:"@6|0|1";i:1348;s:6:"@5|2|1";i:1349;s:6:"@5|0|1";i:1350;s:6:"@5|1|1";i:1351;s:6:"@5|2|0";i:1352;}', +'@^Mozilla/5\.0 \(X11; U; Linux.*; .*; rv\:1\..*; aggregator\:FeedParser; .*\) Gecko/.*$@'=>1347, +'@^Mozilla/5\.0 \(iPhone.*CPU like Mac OS X.*\).*AppleWebKit/.*\(KHTML, like Gecko\).*$@'=>1363, +'@^Mozilla/5\.0 \(Windows; .*; Windows NT 5\.0; .*; rv\:1\..*\) Gecko/.* K\-Meleon.1\.(\d).*$@'=>'a:4:{s:2:"@0";i:1365;s:2:"@5";i:1366;s:2:"@1";i:1368;s:2:"@6";i:1373;}', +'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT (\d)\.(\d); .*WOW64.*; Trident/4\.0.*\).*$@'=>'a:4:{s:4:"@5|0";i:1367;s:4:"@6|1";i:1370;s:4:"@5|2";i:1371;s:4:"@6|0";i:1372;}', +'@^Mozilla/.* \(compatible; MSIE 7\.0.*; Windows NT 6\.1; .*WOW64.*; Trident/4\.0.*\).*$@'=>1369, +'@^Mozilla/5\.0 \(Macintosh; .; .*Mac OS X.*; .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:3:{s:6:"@8|1|0";i:1374;s:6:"@9|2|0";i:1375;s:6:"@8|1|1";i:1377;}', '@^Mozilla/5\.0 \(Macintosh; .*; .*Mac OS X.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1376, -'@^Mozilla/5\.0 \(iPod.*CPU like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>1377, +'@^Mozilla/5\.0 \(iPod.*CPU like Mac OS X.*\).*AppleWebKit/.*\(.*KHTML, like Gecko.*\).*$@'=>1378, '@^Mozilla/5\.0 \(compatible; TweetedTimes Bot/1\.0; \+http\://tweetedtimes\.com\)$@'=>1379, -'@^Mozilla/5\.0 \(Windows; .; Win 9x 4\.90; .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:3:{s:6:"@8|1|0";i:1380;s:6:"@8|1|1";i:1382;s:6:"@9|2|0";i:1386;}', -'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\..*\) Gecko/.* Firefox/3\.0.*$@'=>'a:2:{s:4:"@5|0";i:1381;s:4:"@6|1";i:1385;}', -'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>'a:4:{s:4:"@5|2";i:1383;s:4:"@6|1";i:1384;s:4:"@6|0";i:1387;s:4:"@5|1";i:1388;}', -'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Safari/.*$@'=>1389, -'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT 5\.1; WOW64.*; Trident/4\.0.*\).*$@'=>1390, -'@^Mozilla/5\.0 \(Windows; .*; Windows NT 6\.0.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1391, -'@^Mozilla/5\.0 \(Windows; U; Windows .*; .*; rv\:.*\) Gecko/.* Firefox/.* webaroo/.*$@'=>1392, -'@^Mozilla/.* \(SymbianOS/.*; .; .*\) AppleWebKit/.* \(KHTML, like Gecko\) Safari/.*$@'=>1393, +'@^Mozilla/5\.0 \(Windows; .; Win 9x 4\.90; .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:3:{s:6:"@8|1|0";i:1380;s:6:"@9|2|0";i:1382;s:6:"@8|1|1";i:1387;}', +'@^Mozilla/5\.0 \(.*Linux x86_64.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Safari/.*$@'=>1381, +'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\..*\) Gecko/.* Firefox/3\.0.*$@'=>'a:2:{s:4:"@6|1";i:1383;s:4:"@5|0";i:1384;}', +'@^Mozilla/5\.0 \(Windows; .*; Windows NT (\d)\.(\d); .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>'a:4:{s:4:"@5|2";i:1385;s:4:"@6|0";i:1388;s:4:"@6|1";i:1389;s:4:"@5|1";i:1390;}', +'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT 5\.1; WOW64.*; Trident/4\.0.*\).*$@'=>1386, +'@^Mozilla/5\.0 \(Windows; U; Windows .*; .*; rv\:.*\) Gecko/.* Firefox/.* webaroo/.*$@'=>1391, +'@^Mozilla/.* \(SymbianOS/.*; .; .*\) AppleWebKit/.* \(KHTML, like Gecko\) Safari/.*$@'=>1392, +'@^Mozilla/5\.0 \(Windows; .*; Windows NT 6\.0.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1393, '@^Mozilla/5\.0 \(Macintosh; .*; .*Mac OS X.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>1394, -'@^Tumblr/.* RSS syndication \( http\://www\.tumblr\.com/\) \(support\@tumblr\.com\)$@'=>1395, +'@^Mozilla/5\.0 \(compatible; Plukkie/1\..; http\://www\.botje\.com/plukkie\.htm\)$@'=>1395, '@^Mozilla/5\.0 \(compatible; Webscan v0\..*; \+http\://otc\.dyndns\.org/webscan/\)$@'=>1396, -'@^Mozilla/5\.0 \(compatible; LegalAnalysisAgent/1\..*; http\://www\.legalx\.net\)$@'=>1397, -'@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT 6\.0; WOW64; .*MSOffice 12\)$@'=>1398, -'@^Mozilla/5\.0 \(compatible; Plukkie/1\..; http\://www\.botje\.com/plukkie\.htm\)$@'=>1399, -'@^Mozilla/5\.0 \(compatible; .*; http\://www\.80legs\.com/spider\.html;\) Gecko/.*$@'=>1400, -'@^Mozilla/5\.0 \(compatible; Konqueror/4\..*; FreeBSD\) KHTML/4\..* \(like Gecko\)$@'=>1401, -'@^Mozilla/5\.0 \(compatible; Konqueror/4\.0.*; Debian\) KHTML/4\..* \(like Gecko\)$@'=>1402, -'@^Mozilla/5\.0 \(Windows NT (\d)\.(\d); rv\:2\..*\) Gecko/.* Firefox/4\..* SeaMonkey/2\.(\d).*$@'=>'a:15:{s:6:"@6|0|1";i:1403;s:6:"@5|1|1";i:1405;s:6:"@6|0|2";i:1407;s:6:"@5|1|4";i:1408;s:6:"@6|1|3";i:1409;s:6:"@5|1|5";i:1410;s:6:"@6|1|4";i:1411;s:6:"@6|0|4";i:1412;s:6:"@6|0|3";i:1413;s:6:"@5|1|3";i:1414;s:6:"@6|1|5";i:1416;s:6:"@6|0|5";i:1417;s:6:"@5|1|2";i:1418;s:6:"@6|1|2";i:1419;s:6:"@6|1|1";i:1420;}', -'@^Mozilla/4\.0 \(compatible; MSIE (\d)\.(\d); .*AOL 9\.(\d).*; .*Windows 98; Win 9x 4\.90.*$@'=>'a:6:{s:6:"@8|0|1";i:1404;s:6:"@6|0|0";i:1422;s:6:"@7|0|0";i:1423;s:6:"@7|0|1";i:1424;s:6:"@8|0|0";i:1425;s:6:"@5|5|0";i:1426;}', -'@^Mozilla/.* \(compatible; MSIE 9\.0; .*Windows NT 6\.(\d); WOW64; Trident/5\.0.*\).*$@'=>'a:3:{s:2:"@1";i:1406;s:2:"@2";i:1415;s:2:"@0";i:1421;}', -'@^Mozilla/5\.0 \(Windows; .*; Windows NT 5\.(\d); .*; rv\:1\..*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:4:"@0|1";i:1427;s:4:"@2|1";i:1428;s:4:"@1|1";i:1429;s:4:"@0|2";i:1430;}', +'@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT 6\.0; WOW64; .*MSOffice 12\)$@'=>1397, +'@^Mozilla/5\.0 \(compatible; LegalAnalysisAgent/1\..*; http\://www\.legalx\.net\)$@'=>1398, +'@^Tumblr/.* RSS syndication \( http\://www\.tumblr\.com/\) \(support\@tumblr\.com\)$@'=>1399, +'@^Mozilla/5\.0 \(compatible; Konqueror/4\.0.*; Debian\) KHTML/4\..* \(like Gecko\)$@'=>1400, +'@^Mozilla/5\.0 \(compatible; .*; http\://www\.80legs\.com/spider\.html;\) Gecko/.*$@'=>1401, +'@^Mozilla/5\.0 \(compatible; Konqueror/4\..*; FreeBSD\) KHTML/4\..* \(like Gecko\)$@'=>1402, +'@^Mozilla/5\.0 \(Windows NT (\d)\.(\d); rv\:2\..*\) Gecko/.* Firefox/4\..* SeaMonkey/2\.(\d).*$@'=>'a:15:{s:6:"@6|1|1";i:1403;s:6:"@5|1|5";i:1404;s:6:"@6|1|4";i:1405;s:6:"@6|0|4";i:1406;s:6:"@6|1|3";i:1408;s:6:"@5|1|4";i:1409;s:6:"@5|1|2";i:1410;s:6:"@5|1|1";i:1411;s:6:"@6|0|3";i:1412;s:6:"@5|1|3";i:1413;s:6:"@6|1|2";i:1414;s:6:"@6|0|1";i:1415;s:6:"@6|0|5";i:1416;s:6:"@6|0|2";i:1417;s:6:"@6|1|5";i:1418;}', +'@^Mozilla/.* \(compatible; MSIE 9\.0; .*Windows NT 6\.(\d); WOW64; Trident/5\.0.*\).*$@'=>'a:3:{s:2:"@2";i:1407;s:2:"@1";i:1422;s:2:"@0";i:1425;}', +'@^Mozilla/4\.0 \(compatible; MSIE (\d)\.(\d); .*AOL 9\.(\d).*; .*Windows 98; Win 9x 4\.90.*$@'=>'a:6:{s:6:"@7|0|0";i:1419;s:6:"@5|5|0";i:1420;s:6:"@7|0|1";i:1421;s:6:"@6|0|0";i:1423;s:6:"@8|0|1";i:1424;s:6:"@8|0|0";i:1426;}', +'@^Mozilla/5\.0 \(Windows; .*; Windows NT 5\.(\d); .*; rv\:1\..*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:4:"@1|1";i:1427;s:4:"@2|1";i:1428;s:4:"@0|1";i:1429;s:4:"@0|2";i:1430;}', '@^Mozilla/5\.0 \(Macintosh; .*; .*Mac OS X.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@1";i:1431;s:2:"@0";i:1432;}', '@^Mozilla/5\.0 \(.*Android.*Mobile.*rv\:10\..*\).*Gecko/10\..*Firefox/10\..*Fennec/10\..*$@'=>1433, '@^Mozilla/5\.0 \(compatible; UptimeRobot/1\.0; http\://www\.uptimerobot\.com/\)$@'=>1434, -'@^Mozilla/5\.0 \(compatible; Konqueror/4\..*; NetBSD\) KHTML/4\..* \(like Gecko\)$@'=>1435, -'@^Mozilla/5\.0 \(compatible; Newz Crawler .*; http\://www\.newzcrawler\.com/.\)$@'=>1436, -'@^Mozilla/5\.0 \(compatible; Konqueror/4\..*; .*Linux\) KHTML/4\..* \(like Gecko\)$@'=>1437, -'@^Mozilla/.* \(compatible; MSIE 8\.0; Windows NT 6\.2; WOW64; Trident/4\.0.*\).*$@'=>1438, +'@^Mozilla/5\.0 \(compatible; Newz Crawler .*; http\://www\.newzcrawler\.com/.\)$@'=>1435, +'@^Mozilla/5\.0 \(compatible; Konqueror/4\..*; NetBSD\) KHTML/4\..* \(like Gecko\)$@'=>1436, +'@^Mozilla/.* \(compatible; MSIE 8\.0; Windows NT 6\.2; WOW64; Trident/4\.0.*\).*$@'=>1437, +'@^Mozilla/5\.0 \(compatible; Konqueror/4\..*; .*Linux\) KHTML/4\..* \(like Gecko\)$@'=>1438, '@^Mozilla/5\.0 \(X11; .; Linux.*; .*; rv\:1\.(\d).*\) Gecko/20060221 SeaMonkey/(\d)\.0.*$@'=>'a:2:{s:4:"@8|1";i:1439;s:4:"@9|2";i:1440;}', '@^Mozilla/5\.0 \(Macintosh; U; .*Mac OS X; .*\) AppleWebKit/.* \(.*\) Pandora/2\..*$@'=>1441, '@^Mozilla/5\.0 \(Macintosh; .*; .*Mac OS X.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1442, '@^Mozilla/5\.0 \(compatible; Lipperhey Spider; http\://www\.lipperhey\.com/\)$@'=>1443, '@^Microsoft Data Access Internet Publishing Provider Protocol Discovery$@'=>1444, -'@^Mozilla/5\.0 \(compatible; NetcraftSurveyAgent/1\.0; .*info\@netcraft\.com\)$@'=>1445, -'@^Outlook\-Express/7\.0 \(MSIE 7\.0; Windows NT 6\.1; WOW64; Trident/4\.0; .*\)$@'=>1446, -'@^Mozilla/5\.0 \(compatible; MojeekBot/.*; http\://www\.mojeek\.com/bot\.html\)$@'=>1447, +'@^Mozilla/5\.0 \(compatible; MojeekBot/.*; http\://www\.mojeek\.com/bot\.html\)$@'=>1445, +'@^Mozilla/5\.0 \(compatible; NetcraftSurveyAgent/1\.0; .*info\@netcraft\.com\)$@'=>1446, +'@^Outlook\-Express/7\.0 \(MSIE 7\.0; Windows NT 6\.1; WOW64; Trident/4\.0; .*\)$@'=>1447, '@^Mozilla/5\.0 \(compatible; JadynAveBot; .*http\://www\.jadynave\.com/robot.*$@'=>1448, -'@^.*\-.*/1\.0 BREW/(\d)\.(\d).* Browser/1\.0 Profile/MIDP\-2\.0 Configuration/CLDC\-1\.1$@'=>'a:4:{s:4:"@3|1";i:1449;s:4:"@3|0";i:1450;s:4:"@2|0";i:1451;s:4:"@2|1";i:1452;}', -'@^Mozilla/5\.0 \(.*SymbianOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Safari/.*$@'=>1453, -'@^Mozilla/5\.0 \(Windows; .*; Win 9x 4\.90; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1454, -'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*OmniWeb/.*$@'=>1455, +'@^.*\-.*/1\.0 BREW/(\d)\.(\d).* Browser/1\.0 Profile/MIDP\-2\.0 Configuration/CLDC\-1\.1$@'=>'a:4:{s:4:"@2|0";i:1449;s:4:"@2|1";i:1450;s:4:"@3|1";i:1451;s:4:"@3|0";i:1452;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*OmniWeb/.*$@'=>1453, +'@^Mozilla/5\.0 \(.*SymbianOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Safari/.*$@'=>1454, +'@^Mozilla/5\.0 \(Windows; .*; Win 9x 4\.90; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1455, '@^Mozilla/5\.0 \(Windows; .*; Win 9x 4\.90.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1456, '@^Mozilla/5\.0 \(.*Mac OS X.*\) .*AppleWebKit/.* \(KHTML, like Gecko\) .*Safari/.*$@'=>1457, '@^Mozilla/5\.0 \(Macintosh; .*; .*Mac OS X.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1458, @@ -6358,1724 +6358,1724 @@ '@^CC Metadata Scaper http\://wiki\.creativecommons\.org/Metadata_Scraper$@'=>1464, '@^Mozilla/5\.0 \(compatible; DBLBot/1\.0; .http\://www\.dontbuylists\.com/\)$@'=>1465, '@^Mozilla/5\.0 \(.*; Rojo .*; http\://www\.rojo\.com/corporate/help/agg; .*\).*$@'=>1466, -'@^Mozilla/5\.0 \(Android; Linux.*; rv\:2\..*\) Gecko/.* Firefox/.* Fennec/(\d)\.0.*$@'=>'a:2:{s:2:"@7";i:1467;s:2:"@6";i:1471;}', -'@^Mozilla/5\.0 \(Windows; .*; WinNT4\.0; .*; rv\:1\..*\) Gecko/.* K\-Meleon/1\.(\d).*$@'=>'a:3:{s:2:"@1";i:1468;s:2:"@5";i:1469;s:2:"@0";i:1472;}', -'@^Mozilla/5\.0 \(X11; U; Linux.*; .*; rv\:1\..*; aggregator\:Rojo; .*\) Gecko/.*$@'=>1470, -'@^Mozilla/5\.0 \(Macintosh; .*Mac OS X.*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1473, +'@^Mozilla/5\.0 \(Windows; .*; WinNT4\.0; .*; rv\:1\..*\) Gecko/.* K\-Meleon/1\.(\d).*$@'=>'a:3:{s:2:"@1";i:1467;s:2:"@5";i:1468;s:2:"@0";i:1469;}', +'@^Mozilla/5\.0 \(Macintosh; .*Mac OS X.*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1470, +'@^Mozilla/5\.0 \(X11; U; Linux.*; .*; rv\:1\..*; aggregator\:Rojo; .*\) Gecko/.*$@'=>1471, +'@^Mozilla/5\.0 \(Android; Linux.*; rv\:2\..*\) Gecko/.* Firefox/.* Fennec/(\d)\.0.*$@'=>'a:2:{s:2:"@7";i:1472;s:2:"@6";i:1473;}', '@^Mozilla/5\.0 \(Macintosh; U; .*Mac OS X.*; .*; rv\:1\..*\) Gecko/.* Chimera/.*$@'=>1474, '@^Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows 98\) Web Link Validator.*$@'=>1475, '@^rssImagesBot/0\.1 \(.*http\://herbert\.groot\.jebbink\.nl/.app\=rssImages\)$@'=>1476, -'@^Mozilla/5\.0 \(.*CentOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Safari/.*$@'=>1477, -'@^Mozilla/5\.0 \(Windows; .; Win98; .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:3:{s:6:"@8|1|1";i:1478;s:6:"@8|1|0";i:1480;s:6:"@9|2|0";i:1482;}', -'@^Mozilla/5\.0 \(.*Windows NT 6\.1 WOW64.*rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1479, -'@^Mozilla/5\.0 \(Windows; .*; WinNT4\.0; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1481, -'@^Mozilla/5\.0 \(Android; Linux.*; rv\:2\..*\) Gecko/.* Firefox/.* Fennec/4\..*$@'=>1483, -'@^Mozilla/5\.0 \(Java;.*samsung.*\) UCBrowser8\.2.*UCWEB.*Mobile.*UNTRUSTED/.*$@'=>1484, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>'a:3:{s:4:"@6|0";i:1485;s:4:"@5|2";i:1486;s:4:"@5|1";i:1487;}', +'@^Mozilla/5\.0 \(Windows; .; Win98; .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:3:{s:6:"@8|1|0";i:1477;s:6:"@8|1|1";i:1478;s:6:"@9|2|0";i:1480;}', +'@^Mozilla/5\.0 \(Android; Linux.*; rv\:2\..*\) Gecko/.* Firefox/.* Fennec/4\..*$@'=>1479, +'@^Mozilla/5\.0 \(.*Windows NT 6\.1 WOW64.*rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1481, +'@^Mozilla/5\.0 \(.*CentOS.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Safari/.*$@'=>1482, +'@^Mozilla/5\.0 \(Windows; .*; WinNT4\.0; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1483, +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>'a:3:{s:4:"@5|1";i:1484;s:4:"@5|2";i:1485;s:4:"@6|0";i:1487;}', +'@^Mozilla/5\.0 \(Java;.*samsung.*\) UCBrowser8\.2.*UCWEB.*Mobile.*UNTRUSTED/.*$@'=>1486, '@^Opera/.*\(Android 4\.0.*Linux.*Opera Mobi/.*\).*Presto/2\.10.*Version/12\.00.*$@'=>1488, '@^Mozilla/4\.0 PowerTV/1\.5 \(Compatible; Spyglass DM 3\.2\.1, EXPLORER\)$@'=>1489, '@^Mozilla/5\.0 \(compatible; DotBot/.*; http\://www\.dotnetdotcom\.org/.*\)$@'=>1490, '@^Mozilla/5\.0 \(compatible; Konqueror/4\.(\d).*\) KHTML/4\.(\d).* \(like Gecko\).*$@'=>'a:4:{s:4:"@8|8";i:1491;s:4:"@7|7";i:1492;s:4:"@6|6";i:1493;s:4:"@5|5";i:1494;}', -'@^Mozilla/5\.0 \(Windows; .; Windows NT (\d)\.(\d); .*\) Gecko/.* Netscape6/6\..*$@'=>'a:6:{s:4:"@6|1";i:1495;s:4:"@5|2";i:1496;s:4:"@6|0";i:1497;s:4:"@5|1";i:1498;s:4:"@5|0";i:1499;s:4:"@4|0";i:1500;}', -'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT (\d)\.(\d).*; Trident/4\.0.*\).*$@'=>'a:3:{s:4:"@6|1";i:1501;s:4:"@5|2";i:1505;s:4:"@5|1";i:1506;}', -'@^Mozilla/5\.0 \(Android; Linux.*rv\:2\..*\) Gecko/.* Firefox/.* Fennec/5\.0.*$@'=>1502, -'@^Mozilla/5\.0 \(Windows; .; Windows NT (\d)\.(\d); .*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:18:{s:6:"@6|0|9";i:1503;s:6:"@6|1|9";i:1507;s:6:"@5|2|9";i:1509;s:6:"@5|0|8";i:1510;s:6:"@5|1|8";i:1511;s:6:"@6|1|7";i:1512;s:6:"@6|0|7";i:1513;s:6:"@4|0|7";i:1514;s:6:"@5|0|7";i:1515;s:6:"@5|1|7";i:1516;s:6:"@5|2|7";i:1517;s:6:"@5|2|8";i:1518;s:6:"@4|0|8";i:1519;s:6:"@5|0|9";i:1520;s:6:"@5|1|9";i:1521;s:6:"@6|1|8";i:1522;s:6:"@4|0|9";i:1523;s:6:"@6|0|8";i:1524;}', -'@^Mozilla/5\.0 \(Windows; .*; WinNT4\.0; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1504, -'@^Mozilla/5\.0 \(.*Linux.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Safari/.*$@'=>1508, -'@^Mozilla/5\.0 \(X11; .*; FreeBSD.*; .*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1525, -'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1526, -'@^Mozilla/5\.0 \(X11; .; FreeBSD.*; .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:3:{s:6:"@9|2|0";i:1527;s:6:"@8|1|1";i:1530;s:6:"@8|1|0";i:1531;}', -'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1528, -'@^Mozilla/5\.0 \(X11; .*; FreeBSD.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1529, +'@^Mozilla/5\.0 \(Windows; .; Windows NT (\d)\.(\d); .*\) Gecko/.* Netscape6/6\..*$@'=>'a:6:{s:4:"@6|0";i:1495;s:4:"@6|1";i:1496;s:4:"@4|0";i:1497;s:4:"@5|0";i:1498;s:4:"@5|2";i:1499;s:4:"@5|1";i:1500;}', +'@^Mozilla/5\.0 \(Windows; .; Windows NT (\d)\.(\d); .*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:18:{s:6:"@5|2|8";i:1501;s:6:"@5|2|7";i:1502;s:6:"@6|1|9";i:1503;s:6:"@6|0|9";i:1504;s:6:"@5|2|9";i:1505;s:6:"@5|1|9";i:1506;s:6:"@5|0|9";i:1507;s:6:"@4|0|9";i:1508;s:6:"@6|1|7";i:1514;s:6:"@6|1|8";i:1515;s:6:"@6|0|7";i:1516;s:6:"@4|0|8";i:1517;s:6:"@5|0|8";i:1518;s:6:"@5|1|8";i:1519;s:6:"@4|0|7";i:1520;s:6:"@5|0|7";i:1521;s:6:"@5|1|7";i:1522;s:6:"@6|0|8";i:1524;}', +'@^Mozilla/5\.0 \(Android; Linux.*rv\:2\..*\) Gecko/.* Firefox/.* Fennec/5\.0.*$@'=>1509, +'@^Mozilla/5\.0 \(Windows; .*; WinNT4\.0; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1510, +'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT (\d)\.(\d).*; Trident/4\.0.*\).*$@'=>'a:3:{s:4:"@5|1";i:1511;s:4:"@5|2";i:1512;s:4:"@6|1";i:1513;}', +'@^Mozilla/5\.0 \(.*Linux.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Safari/.*$@'=>1523, +'@^Mozilla/5\.0 \(X11; .; FreeBSD.*; .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:3:{s:6:"@9|2|0";i:1525;s:6:"@8|1|1";i:1526;s:6:"@8|1|0";i:1527;}', +'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1528, +'@^Mozilla/5\.0 \(X11; .*; FreeBSD.*; .*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1529, +'@^Mozilla/5\.0 \(X11; .*; FreeBSD.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1530, +'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1531, '@^Microsoft Data Access Internet Publishing Provider Cache Manager$@'=>1532, '@^Mozilla/5\.0 \(compatible; Twingly Recon; http\://www\.twingly\.com/\)$@'=>1533, -'@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT (\d)\.(\d); .*MSOffice 12\)$@'=>'a:2:{s:4:"@6|0";i:1534;s:4:"@5|1";i:1535;}', -'@^Mozilla/5\.0 \(compatible; AhrefsBot/.*; \+http\://ahrefs\.com/robot/\)$@'=>1536, -'@^Knight/0\.. \(Zook Knight; http\://knight\.zook\.in/; knight\@zook\.in\)$@'=>1537, -'@^Mozilla/4\.0 \(compatible; MSIE .\.0; Windows NT (\d)\.(\d).*\) Sleipnir/2\..*$@'=>'a:5:{s:4:"@5|1";i:1538;s:4:"@5|2";i:1539;s:4:"@5|0";i:1540;s:4:"@6|0";i:1541;s:4:"@6|1";i:1542;}', -'@^Mozilla/.* \(compatible; MSIE 9\.0; .*Windows NT (\d)\.(\d); Trident/5\.0.*\).*$@'=>'a:5:{s:4:"@6|2";i:1543;s:4:"@5|1";i:1547;s:4:"@5|2";i:1548;s:4:"@6|0";i:1549;s:4:"@6|1";i:1550;}', -'@^Mozilla/.* \(compatible; MSIE 7\.0.*; Windows NT (\d)\.(\d); Trident/4\.0.*\).*$@'=>'a:3:{s:4:"@5|1";i:1544;s:4:"@5|2";i:1545;s:4:"@6|0";i:1546;}', -'@^Mozilla/5\.0 \(Macintosh; .*Mac OS X.*; rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1551, -'@^Mozilla/5\.0 \(Windows; .*; Win9(\d); .*; rv\:1\..*\) Gecko/.* K\-Meleon/1\.(\d).*$@'=>'a:6:{s:4:"@5|5";i:1552;s:4:"@8|5";i:1553;s:4:"@5|1";i:1554;s:4:"@8|0";i:1555;s:4:"@5|0";i:1557;s:4:"@8|1";i:1559;}', -'@^Mozilla/5\.0 \(Macintosh; .; PPC Mac OS X;.*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:2:{s:2:"@8";i:1556;s:2:"@7";i:1558;}', -'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT (\d)\.0;.*Trident/4\.0.*\).*$@'=>'a:2:{s:2:"@6";i:1560;s:2:"@5";i:1561;}', -'@^Mozilla/5\.0 \(.*Windows NT 6\.1 WOW64.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>1562, +'@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT (\d)\.(\d); .*MSOffice 12\)$@'=>'a:2:{s:4:"@6|0";i:1534;s:4:"@5|1";i:1537;}', +'@^Mozilla/5\.0 \(compatible; AhrefsBot/.*; \+http\://ahrefs\.com/robot/\)$@'=>1535, +'@^Knight/0\.. \(Zook Knight; http\://knight\.zook\.in/; knight\@zook\.in\)$@'=>1536, +'@^Mozilla/4\.0 \(compatible; MSIE .\.0; Windows NT (\d)\.(\d).*\) Sleipnir/2\..*$@'=>'a:5:{s:4:"@5|2";i:1538;s:4:"@6|0";i:1539;s:4:"@5|1";i:1540;s:4:"@5|0";i:1541;s:4:"@6|1";i:1542;}', +'@^Mozilla/.* \(compatible; MSIE 9\.0; .*Windows NT (\d)\.(\d); Trident/5\.0.*\).*$@'=>'a:5:{s:4:"@5|1";i:1543;s:4:"@5|2";i:1544;s:4:"@6|2";i:1545;s:4:"@6|1";i:1548;s:4:"@6|0";i:1550;}', +'@^Mozilla/.* \(compatible; MSIE 7\.0.*; Windows NT (\d)\.(\d); Trident/4\.0.*\).*$@'=>'a:3:{s:4:"@5|2";i:1546;s:4:"@5|1";i:1547;s:4:"@6|0";i:1549;}', +'@^Mozilla/5\.0 \(Windows; .*; Win9(\d); .*; rv\:1\..*\) Gecko/.* K\-Meleon/1\.(\d).*$@'=>'a:6:{s:4:"@5|5";i:1551;s:4:"@8|5";i:1552;s:4:"@8|0";i:1558;s:4:"@5|0";i:1560;s:4:"@5|1";i:1561;s:4:"@8|1";i:1562;}', +'@^Mozilla/5\.0 \(Macintosh; .; PPC Mac OS X;.*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:2:{s:2:"@7";i:1553;s:2:"@8";i:1557;}', +'@^Mozilla/5\.0 \(.*Windows NT 6\.1 WOW64.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>1554, +'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT (\d)\.0;.*Trident/4\.0.*\).*$@'=>'a:2:{s:2:"@6";i:1555;s:2:"@5";i:1559;}', +'@^Mozilla/5\.0 \(Macintosh; .*Mac OS X.*; rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1556, '@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1563, -'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>1564, +'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1564, '@^Mozilla/5\.0 \(X11; .*; FreeBSD.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>1565, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>'a:3:{s:4:"@6|0";i:1566;s:4:"@5|2";i:1568;s:4:"@5|1";i:1569;}', -'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1567, -'@^Mozilla/5\.0 \(X11; .*; .*Linux.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1570, -'@^Mozilla/5\.0 \(.*Android.*Tablet.*\).*Gecko/10\..*Firefox/10\..*Fennec/10\..*$@'=>1571, +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>'a:3:{s:4:"@6|0";i:1566;s:4:"@5|2";i:1567;s:4:"@5|1";i:1568;}', +'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>1569, +'@^Mozilla/5\.0 \(.*Android.*Tablet.*\).*Gecko/10\..*Firefox/10\..*Fennec/10\..*$@'=>1570, +'@^Mozilla/5\.0 \(X11; .*; .*Linux.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1571, '@^Mozilla/4\.0 \(compatible; Link Utility; http\://net\-promoter\.com\)$@'=>1572, -'@^rogerbot/.* \(http\://www\.seomoz\.org, rogerbot\-crawler\@seomoz\.org\)$@'=>1573, +'@^Mozilla/5\.0 \(compatible; MSIE 7\.0 .http\://www\.europarchive\.org\)$@'=>1573, '@^roboobot/1\..* \(roboo; http\://wap\.roboo\.com; winter\.pi\@roboo\.com\)$@'=>1574, -'@^Mozilla/5\.0 \(compatible; MSIE 7\.0 .http\://www\.europarchive\.org\)$@'=>1575, +'@^rogerbot/.* \(http\://www\.seomoz\.org, rogerbot\-crawler\@seomoz\.org\)$@'=>1575, '@^Mozilla/5\.0 \(compatible; Konqueror/4\.0.*\) KHTML/4\..* \(like Gecko\)$@'=>1576, '@^Mozilla/5\.0 \(compatible; unwrapbot/2\..*; \+http\://www\.unwrap\.jp.*\)$@'=>1577, '@^Mozilla/5\.0 \(compatible.*spbot/.*http\://www\.seoprofiler\.com/bot.*\)$@'=>1578, '@^Mozilla/.* \(compatible; MSIE 8\.0; Windows NT 6\.2; Trident/4\.0.*\).*$@'=>1579, -'@^Mozilla/4\.0 \(compatible; MSIE .\.0; Windows NT .*Lunascape (\d)\.(\d).*\).*$@'=>'a:3:{s:4:"@5|0";i:1580;s:4:"@6|0";i:1582;s:4:"@5|1";i:1583;}', -'@^Mozilla/.* \(compatible; linktiger/.*; .*http\://www\.linktiger\.com.*\)$@'=>1581, -'@^Mozilla/5\.0 \(Windows; .*; Win9(\d); .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>'a:2:{s:2:"@8";i:1584;s:2:"@5";i:1585;}', -'@^Mozilla/5\.0 \(X11; .*; DragonFly.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1586, -'@^Mozilla/5\.0 \(X11; .; Linux.*; .*; rv\:1\.8.*\) Gecko/.* SeaMonkey/1\.1.*$@'=>1587, -'@^Mozilla/5\.0 \(X11; .; SunOS.*; .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:3:{s:6:"@8|1|0";i:1588;s:6:"@8|1|1";i:1589;s:6:"@9|2|0";i:1590;}', -'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1591, -'@^Mozilla/5\.0 \(X11; .*; FreeBSD.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@1";i:1592;s:2:"@0";i:1594;}', -'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1593, -'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@0";i:1595;s:2:"@1";i:1603;}', -'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1596, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>'a:4:{s:4:"@6|0";i:1597;s:4:"@6|1";i:1599;s:4:"@5|1";i:1600;s:4:"@5|2";i:1601;}', -'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1598, -'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>1602, +'@^Mozilla/.* \(compatible; linktiger/.*; .*http\://www\.linktiger\.com.*\)$@'=>1580, +'@^Mozilla/4\.0 \(compatible; MSIE .\.0; Windows NT .*Lunascape (\d)\.(\d).*\).*$@'=>'a:3:{s:4:"@5|0";i:1581;s:4:"@5|1";i:1582;s:4:"@6|0";i:1583;}', +'@^Mozilla/5\.0 \(Windows; .*; Win9(\d); .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>'a:2:{s:2:"@5";i:1584;s:2:"@8";i:1585;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>'a:4:{s:4:"@6|0";i:1586;s:4:"@6|1";i:1587;s:4:"@5|2";i:1592;s:4:"@5|1";i:1603;}', +'@^Mozilla/5\.0 \(X11; .*; DragonFly.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1588, +'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>1589, +'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1590, +'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1591, +'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1593, +'@^Mozilla/5\.0 \(X11; .; SunOS.*; .*; rv\:1\.(\d).*\) Gecko/.* SeaMonkey/(\d)\.(\d).*$@'=>'a:3:{s:6:"@8|1|1";i:1594;s:6:"@9|2|0";i:1595;s:6:"@8|1|0";i:1597;}', +'@^Mozilla/5\.0 \(X11; .*; FreeBSD.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@0";i:1596;s:2:"@1";i:1601;}', +'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@0";i:1598;s:2:"@1";i:1602;}', +'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:1\.9\.2.*\) Gecko/.* Firefox/3\.6.*$@'=>1599, +'@^Mozilla/5\.0 \(X11; .; Linux.*; .*; rv\:1\.8.*\) Gecko/.* SeaMonkey/1\.1.*$@'=>1600, '@^Mozilla/5\.0 \(X11; .*; .*Linux.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>1604, -'@^mozilla/5\.0 \(compatible; genevabot \+http\://www\.healthdash\.com\)$@'=>1605, +'@^Mozilla/5\.0 \(compatible; ClixSense; http\://www\.clixsense\.com/\)$@'=>1605, '@^Mozilla/5\.0 \(compatible; Diffbot/0\.1; \+http\://www\.diffbot\.com\)$@'=>1606, -'@^Mozilla/5\.0 \(compatible; ClixSense; http\://www\.clixsense\.com/\)$@'=>1607, +'@^mozilla/5\.0 \(compatible; genevabot \+http\://www\.healthdash\.com\)$@'=>1607, '@^Outlook\-Express/7\.0 \(MSIE 7\.0; Windows NT (\d)\.1; Trident/4\.0; .*\)$@'=>'a:2:{s:2:"@5";i:1608;s:2:"@6";i:1610;}', '@^Mozilla/5\.0 \(compatible; SEODat/0\..* http\://crawler\.seodat\.com\)$@'=>1609, -'@^Mozilla/4\.0 \(compatible; MSIE .\.0; GomezAgent .\.0; Windows NT\)$@'=>1611, -'@^Mozilla/.* \(compatible; MSIE 7\.0.*; Windows NT 6\.1; Trident/5\.0\)$@'=>1612, -'@^Mozilla/5\.0 \(.*aggregator\:TailRank; http\://tailrank\.com/robot\).*$@'=>1613, -'@^Mozilla/4\.0 \(compatible; MSIE (\d)\.(\d); .*AOL 9\.(\d).*; .*Windows NT (\d)\.(\d).*$@'=>'a:31:{s:10:"@6|0|0|5|1";i:1614;s:10:"@6|0|0|5|0";i:1615;s:10:"@7|0|0|5|0";i:1616;s:10:"@6|0|0|4|0";i:1617;s:10:"@5|5|0|5|0";i:1618;s:10:"@5|5|0|6|0";i:1619;s:10:"@6|0|0|6|0";i:1620;s:10:"@5|5|0|5|1";i:1621;s:10:"@6|0|0|6|1";i:1622;s:10:"@7|0|0|4|0";i:1623;s:10:"@5|5|0|4|0";i:1624;s:10:"@8|0|0|4|0";i:1625;s:10:"@8|0|1|6|0";i:1626;s:10:"@8|0|1|6|1";i:1627;s:10:"@8|0|1|5|2";i:1628;s:10:"@8|0|1|5|1";i:1629;s:10:"@8|0|1|5|0";i:1630;s:10:"@8|0|1|4|0";i:1637;s:10:"@7|0|1|6|1";i:1638;s:10:"@8|0|0|5|1";i:1639;s:10:"@8|0|0|6|0";i:1640;s:10:"@8|0|0|5|0";i:1641;s:10:"@7|0|0|6|1";i:1642;s:10:"@7|0|0|6|0";i:1643;s:10:"@8|0|0|6|1";i:1644;s:10:"@7|0|1|4|0";i:1645;s:10:"@7|0|1|6|0";i:1646;s:10:"@7|0|1|5|2";i:1647;s:10:"@7|0|1|5|1";i:1648;s:10:"@7|0|1|5|0";i:1649;s:10:"@7|0|0|5|1";i:1650;}', -'@^Mozilla/4\.0 \(compatible; MSIE .\.0; Windows NT (\d)\.(\d); .*Maxthon.*\).*$@'=>'a:5:{s:4:"@5|0";i:1631;s:4:"@5|1";i:1632;s:4:"@6|1";i:1634;s:4:"@6|0";i:1635;s:4:"@5|2";i:1636;}', -'@^WebImages .* \(.http\://herbert\.groot\.jebbink\.nl/.app\=WebImages.\)$@'=>1633, -'@^Mozilla/5\.0 \(Windows; .; Win 9x 4\.90; .*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:2:{s:2:"@8";i:1651;s:2:"@9";i:1654;}', -'@^Mozilla/5\.0 \(Windows; .*; Win9(\d); .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>'a:2:{s:2:"@8";i:1652;s:2:"@5";i:1653;}', -'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>1655, -'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1656, -'@^Mozilla/5\.0 \(X11; .*; FreeBSD.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1657, -'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>1658, +'@^Mozilla/.* \(compatible; MSIE 7\.0.*; Windows NT 6\.1; Trident/5\.0\)$@'=>1611, +'@^Mozilla/5\.0 \(.*aggregator\:TailRank; http\://tailrank\.com/robot\).*$@'=>1612, +'@^Mozilla/4\.0 \(compatible; MSIE .\.0; GomezAgent .\.0; Windows NT\)$@'=>1613, +'@^Mozilla/4\.0 \(compatible; MSIE .\.0; Windows NT (\d)\.(\d); .*Maxthon.*\).*$@'=>'a:5:{s:4:"@5|0";i:1614;s:4:"@5|1";i:1630;s:4:"@5|2";i:1648;s:4:"@6|1";i:1649;s:4:"@6|0";i:1650;}', +'@^Mozilla/4\.0 \(compatible; MSIE (\d)\.(\d); .*AOL 9\.(\d).*; .*Windows NT (\d)\.(\d).*$@'=>'a:31:{s:10:"@6|0|0|5|1";i:1615;s:10:"@7|0|0|5|0";i:1616;s:10:"@7|0|0|4|0";i:1617;s:10:"@6|0|0|6|1";i:1618;s:10:"@6|0|0|6|0";i:1619;s:10:"@6|0|0|4|0";i:1620;s:10:"@6|0|0|5|0";i:1621;s:10:"@7|0|0|6|1";i:1622;s:10:"@5|5|0|6|0";i:1623;s:10:"@5|5|0|5|1";i:1624;s:10:"@5|5|0|5|0";i:1625;s:10:"@5|5|0|4|0";i:1626;s:10:"@7|0|0|6|0";i:1627;s:10:"@8|0|0|4|0";i:1628;s:10:"@8|0|1|6|1";i:1631;s:10:"@8|0|1|6|0";i:1632;s:10:"@8|0|1|5|2";i:1633;s:10:"@8|0|1|5|1";i:1634;s:10:"@8|0|1|5|0";i:1635;s:10:"@7|0|1|6|1";i:1636;s:10:"@7|0|1|6|0";i:1637;s:10:"@8|0|0|5|0";i:1638;s:10:"@7|0|1|5|2";i:1639;s:10:"@7|0|1|5|1";i:1640;s:10:"@7|0|1|5|0";i:1641;s:10:"@7|0|1|4|0";i:1642;s:10:"@8|0|0|6|1";i:1643;s:10:"@8|0|0|6|0";i:1644;s:10:"@8|0|0|5|1";i:1645;s:10:"@8|0|1|4|0";i:1646;s:10:"@7|0|0|5|1";i:1647;}', +'@^WebImages .* \(.http\://herbert\.groot\.jebbink\.nl/.app\=WebImages.\)$@'=>1629, +'@^Mozilla/5\.0 \(Windows; .; Win 9x 4\.90; .*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:2:{s:2:"@9";i:1651;s:2:"@8";i:1652;}', +'@^Mozilla/5\.0 \(Windows; .*; Win9(\d); .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>'a:2:{s:2:"@8";i:1653;s:2:"@5";i:1654;}', +'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>1655, +'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@0";i:1656;s:2:"@1";i:1662;}', +'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1657, +'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/3\.5.*$@'=>1658, '@^Mozilla/5\.0 \(Windows; .; Win.*9x 4\.90; .*\) Gecko/.* Netscape.*/7\..*$@'=>1659, -'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@1";i:1660;s:2:"@0";i:1661;}', -'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1662, +'@^Mozilla/5\.0 \(X11; .*; FreeBSD.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1660, +'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1661, '@^Mozilla/5\.0 \(X11; .*; .*Linux.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@1";i:1663;s:2:"@0";i:1664;}', -'@^Mozilla/5\.0 \(compatible; ScoutJet; \+http\://www\.scoutjet\.com/\)$@'=>1665, -'@^e\-SocietyRobot\(http\://www\.yama\.info\.waseda\.ac\.jp/~yamana/es/\)$@'=>1666, +'@^e\-SocietyRobot\(http\://www\.yama\.info\.waseda\.ac\.jp/~yamana/es/\)$@'=>1665, +'@^Mozilla/5\.0 \(compatible; ScoutJet; \+http\://www\.scoutjet\.com/\)$@'=>1666, '@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Windows NT 6\.0; Webaroo/.*\)$@'=>1667, '@^Mozilla/4\.0 \(compatible; BOTW Feed Grabber; .*http\://botw\.org\)$@'=>1668, -'@^Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows CE; IEMobile (\d)\..*\).*$@'=>'a:3:{s:2:"@8";i:1669;s:2:"@6";i:1670;s:2:"@7";i:1671;}', -'@^Mozilla/5\.0 \(compatible; aiHitBot.*/.*; \+http\://www\.aihit\.com/\)$@'=>1672, +'@^Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows CE; IEMobile (\d)\..*\).*$@'=>'a:3:{s:2:"@6";i:1669;s:2:"@7";i:1671;s:2:"@8";i:1672;}', +'@^Mozilla/5\.0 \(compatible; aiHitBot.*/.*; \+http\://www\.aihit\.com/\)$@'=>1670, '@^Mozilla/5\.0 \(Windows; .; Win9x 4\.90; .*\) Gecko/.* Netscape6/6\..*$@'=>1673, '@^Mozilla/5\.0 \(Windows; .; Win9x 4\.90; .*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:2:{s:2:"@8";i:1674;s:2:"@9";i:1675;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*rv\:.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:20:{s:6:"@6|2|3";i:1676;s:6:"@5|2|2";i:1677;s:6:"@6|1|3";i:1678;s:6:"@5|1|3";i:1679;s:6:"@6|1|2";i:1680;s:6:"@6|0|2";i:1681;s:6:"@6|2|2";i:1682;s:6:"@6|0|3";i:1683;s:6:"@5|1|1";i:1684;s:6:"@5|2|0";i:1685;s:6:"@6|0|0";i:1686;s:6:"@5|1|0";i:1687;s:6:"@6|1|0";i:1690;s:6:"@6|2|0";i:1691;s:6:"@6|2|1";i:1692;s:6:"@6|1|1";i:1693;s:6:"@6|0|1";i:1694;s:6:"@5|2|1";i:1695;s:6:"@5|1|2";i:1696;s:6:"@5|2|3";i:1697;}', -'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1688, -'@^Mozilla/5\.0 \(X11; .*; FreeBSD.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1689, -'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@1";i:1698;s:2:"@0";i:1700;}', -'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@0";i:1699;s:2:"@1";i:1703;}', -'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1701, -'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1702, +'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1676, +'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@0";i:1677;s:2:"@1";i:1690;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*rv\:.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:20:{s:6:"@6|2|3";i:1678;s:6:"@6|2|1";i:1679;s:6:"@6|0|3";i:1684;s:6:"@5|2|3";i:1685;s:6:"@5|1|2";i:1686;s:6:"@5|1|3";i:1687;s:6:"@5|2|2";i:1688;s:6:"@6|1|2";i:1691;s:6:"@6|2|2";i:1692;s:6:"@6|0|2";i:1693;s:6:"@6|1|3";i:1694;s:6:"@6|1|0";i:1695;s:6:"@6|1|1";i:1696;s:6:"@6|2|0";i:1697;s:6:"@5|1|0";i:1698;s:6:"@6|0|0";i:1699;s:6:"@5|2|1";i:1700;s:6:"@5|1|1";i:1701;s:6:"@5|2|0";i:1702;s:6:"@6|0|1";i:1703;}', +'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:1\.9.*\) Gecko/.* Firefox/3\.(\d).*$@'=>'a:2:{s:2:"@0";i:1680;s:2:"@1";i:1689;}', +'@^Mozilla/5\.0 \(X11; .*; OpenBSD.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1681, +'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1682, +'@^Mozilla/5\.0 \(X11; .*; FreeBSD.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1683, '@^Mozilla/5\.0 \(X11; .*; .*Linux.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1704, -'@^\(HTML Validator http\://www\.searchengineworld\.com/validator/\)$@'=>1705, -'@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Win32\) Link Commander 3\.0$@'=>1706, +'@^Mozilla/4\.0 \(compatible; MSIE 7\.0; Win32\) Link Commander 3\.0$@'=>1705, +'@^\(HTML Validator http\://www\.searchengineworld\.com/validator/\)$@'=>1706, '@^FeedOnFeeds/0\.1\..* \( http\://minutillo\.com/steve/feedonfeeds/\)$@'=>1707, '@^Mozilla/5\.0 \(compatible; Crawly/1\..*; \+http\://.*/crawler\.html\)$@'=>1708, '@^Mozilla/4\.0 \(compatible; MSIE 7\.0.*; Windows NT 6\.2; WOW64.*\).*$@'=>1709, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>'a:5:{s:4:"@5|0";i:1710;s:4:"@5|2";i:1711;s:4:"@6|0";i:1712;s:4:"@6|1";i:1713;s:4:"@5|1";i:1714;}', -'@^Mozilla/5\.0 \(OS/2; .*; Warp.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1715, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*rv\:.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:20:{s:6:"@5|1|7";i:1716;s:6:"@6|2|6";i:1719;s:6:"@6|1|6";i:1720;s:6:"@6|2|8";i:1721;s:6:"@5|1|6";i:1722;s:6:"@5|2|6";i:1723;s:6:"@5|2|8";i:1726;s:6:"@6|0|8";i:1727;s:6:"@6|1|8";i:1729;s:6:"@5|1|8";i:1730;s:6:"@6|2|7";i:1731;s:6:"@5|2|7";i:1732;s:6:"@6|0|7";i:1733;s:6:"@6|1|7";i:1734;s:6:"@6|0|6";i:1736;s:6:"@6|1|9";i:1737;s:6:"@6|2|9";i:1738;s:6:"@5|2|9";i:1741;s:6:"@6|0|9";i:1742;s:6:"@5|1|9";i:1743;}', -'@^Mozilla/5\.0 \(Linux; .*; PPC.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1717, -'@^Mozilla/.* \(compatible; MSIE 7\.0.*; .*Windows NT 5\.2; .*WOW64.*\).*$@'=>1718, -'@^Mozilla/5\.0 \(Macintosh; .; .*Mac OS X.*\) Gecko/.* Netscape.*/9\..*$@'=>1724, -'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1725, -'@^Mozilla/.* \(compatible; MSIE 7\.0.*; .*Windows NT 5\.2; .*Win64.*\).*$@'=>1728, -'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1735, -'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1739, -'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1740, +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>'a:5:{s:4:"@6|0";i:1710;s:4:"@5|2";i:1711;s:4:"@5|0";i:1712;s:4:"@6|1";i:1713;s:4:"@5|1";i:1714;}', +'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1715, +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*rv\:.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:20:{s:6:"@6|0|7";i:1716;s:6:"@6|1|8";i:1718;s:6:"@6|0|6";i:1719;s:6:"@5|1|7";i:1720;s:6:"@6|0|8";i:1722;s:6:"@5|2|7";i:1723;s:6:"@5|1|6";i:1725;s:6:"@6|1|6";i:1726;s:6:"@5|2|6";i:1727;s:6:"@6|2|6";i:1728;s:6:"@6|2|7";i:1730;s:6:"@6|2|9";i:1732;s:6:"@5|1|9";i:1733;s:6:"@6|2|8";i:1735;s:6:"@6|0|9";i:1736;s:6:"@6|1|9";i:1737;s:6:"@5|2|9";i:1739;s:6:"@5|2|8";i:1741;s:6:"@6|1|7";i:1742;s:6:"@5|1|8";i:1743;}', +'@^Mozilla/5\.0 \(OS/2; .*; Warp.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1717, +'@^Mozilla/5\.0 \(Macintosh; .; .*Mac OS X.*\) Gecko/.* Netscape.*/9\..*$@'=>1721, +'@^Mozilla/5\.0 \(Linux; .*; PPC.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1724, +'@^Mozilla/.* \(compatible; MSIE 7\.0.*; .*Windows NT 5\.2; .*Win64.*\).*$@'=>1729, +'@^Mozilla/5\.0 \(X11; .*; IRIX64.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1731, +'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1734, +'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:1\.8.*\) Gecko/.* Firefox/2\..*$@'=>1738, +'@^Mozilla/.* \(compatible; MSIE 7\.0.*; .*Windows NT 5\.2; .*WOW64.*\).*$@'=>1740, '@^Mozilla/5\.0 \(X11; .*; .*Linux.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1744, '@^TwengaBot\-Discover \(http\://www\.twenga\.fr/bot\-discover\.html\)$@'=>1745, '@^OpenTaggerBot \(http\://www\.opentagger\.com/opentaggerbot\.htm\)$@'=>1746, '@^Mozilla/5\.0 \(compatible; Seznam screenshot\-generator 2\.0;.*\)$@'=>1747, '@^Mozilla/.* \(compatible; OffByOne; Windows.*\) Webster Pro V3\..*$@'=>1748, -'@^Mozilla/5\.0 \(Windows; .; WinNT(\d)\.(\d); .*\) Gecko/.* Netscape6/6\..*$@'=>'a:6:{s:4:"@5|1";i:1749;s:4:"@5|0";i:1750;s:4:"@5|2";i:1752;s:4:"@4|0";i:1754;s:4:"@6|1";i:1758;s:4:"@6|0";i:1760;}', -'@^Mozilla/4\.0 \(compatible; MSIE (\d)\.(\d); .*AOL 9\.(\d).*; .*Win 9x 4\.90.*$@'=>'a:6:{s:6:"@5|5|0";i:1751;s:6:"@7|0|0";i:1753;s:6:"@7|0|1";i:1755;s:6:"@8|0|0";i:1756;s:6:"@8|0|1";i:1757;s:6:"@6|0|0";i:1759;}', -'@^Mozilla/5\.0 \(Windows; .; WinNT(\d)\.(\d); .*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:18:{s:6:"@5|1|8";i:1761;s:6:"@6|1|9";i:1762;s:6:"@6|1|8";i:1763;s:6:"@5|2|9";i:1764;s:6:"@5|0|8";i:1765;s:6:"@5|0|9";i:1766;s:6:"@5|1|9";i:1767;s:6:"@6|0|9";i:1768;s:6:"@6|0|8";i:1769;s:6:"@4|0|9";i:1770;s:6:"@5|2|8";i:1771;s:6:"@5|2|7";i:1772;s:6:"@6|0|7";i:1773;s:6:"@5|1|7";i:1774;s:6:"@4|0|7";i:1775;s:6:"@6|1|7";i:1776;s:6:"@5|0|7";i:1777;s:6:"@4|0|8";i:1778;}', -'@^Mozilla/.* \(compatible; iCab 2\.8.*; Macintosh; .; .*Mac OS X.*\)$@'=>1779, -'@^Mozilla/.* \(compatible; MSIE 6\..*; .*Windows NT 5\.2; .*Win64.*\).*$@'=>1780, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:(\d)\..*\).*Gecko/.*Thunderbird/5\..*$@'=>'a:12:{s:6:"@6|1|5";i:1781;s:6:"@6|1|2";i:1782;s:6:"@6|2|2";i:1783;s:6:"@6|2|5";i:1784;s:6:"@6|0|5";i:1785;s:6:"@5|1|5";i:1789;s:6:"@5|0|5";i:1790;s:6:"@5|0|2";i:1791;s:6:"@6|0|2";i:1793;s:6:"@5|1|2";i:1794;s:6:"@5|2|5";i:1795;s:6:"@5|2|2";i:1796;}', -'@^Mozilla/5\.0 \(OS/2; .*; Warp.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1786, -'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1787, -'@^Mozilla/5\.0 \(Linux; .*; PPC.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1788, -'@^Mozilla/.* \(compatible; MSIE 6\..*; .*Windows NT 5\.2; .*WOW64.*\).*$@'=>1792, -'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1797, -'@^Mozilla/5\.0 \(compatible; Twitturls; \+http\://twitturls\.com\)$@'=>1798, -'@^Mozilla/5\.0 \(compatible; RSSMicro\.com RSS/Atom Feed Robot\)$@'=>1799, -'@^onCHECK Linkchecker von www\.scientec\.de fuer www\.onsinn\.de$@'=>1800, -'@^Mozilla/5\.0 \(compatible; Ezooms/1\.0; ezooms\.bot\@gmail\.com\)$@'=>1801, +'@^Mozilla/5\.0 \(Windows; .; WinNT(\d)\.(\d); .*\) Gecko/.* Netscape6/6\..*$@'=>'a:6:{s:4:"@5|2";i:1749;s:4:"@6|0";i:1752;s:4:"@6|1";i:1755;s:4:"@5|1";i:1757;s:4:"@4|0";i:1758;s:4:"@5|0";i:1760;}', +'@^Mozilla/4\.0 \(compatible; MSIE (\d)\.(\d); .*AOL 9\.(\d).*; .*Win 9x 4\.90.*$@'=>'a:6:{s:6:"@6|0|0";i:1750;s:6:"@7|0|1";i:1751;s:6:"@8|0|1";i:1753;s:6:"@8|0|0";i:1754;s:6:"@7|0|0";i:1756;s:6:"@5|5|0";i:1759;}', +'@^Mozilla/5\.0 \(Windows; .; WinNT(\d)\.(\d); .*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:18:{s:6:"@4|0|9";i:1761;s:6:"@5|1|9";i:1762;s:6:"@5|0|7";i:1763;s:6:"@5|2|7";i:1764;s:6:"@4|0|7";i:1765;s:6:"@6|0|9";i:1766;s:6:"@6|1|7";i:1767;s:6:"@6|1|8";i:1768;s:6:"@5|0|8";i:1769;s:6:"@5|2|9";i:1770;s:6:"@6|1|9";i:1771;s:6:"@5|0|9";i:1772;s:6:"@4|0|8";i:1773;s:6:"@6|0|7";i:1775;s:6:"@6|0|8";i:1776;s:6:"@5|1|8";i:1777;s:6:"@5|2|8";i:1778;s:6:"@5|1|7";i:1779;}', +'@^Mozilla/.* \(compatible; iCab 2\.8.*; Macintosh; .; .*Mac OS X.*\)$@'=>1774, +'@^Mozilla/.* \(compatible; MSIE 6\..*; .*Windows NT 5\.2; .*WOW64.*\).*$@'=>1780, +'@^Mozilla/5\.0 \(OS/2; .*; Warp.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1781, +'@^Mozilla/.* \(compatible; MSIE 6\..*; .*Windows NT 5\.2; .*Win64.*\).*$@'=>1782, +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:(\d)\..*\).*Gecko/.*Thunderbird/5\..*$@'=>'a:12:{s:6:"@5|0|2";i:1783;s:6:"@5|1|5";i:1785;s:6:"@5|0|5";i:1786;s:6:"@5|2|5";i:1787;s:6:"@6|2|5";i:1790;s:6:"@5|1|2";i:1791;s:6:"@6|1|5";i:1792;s:6:"@6|1|2";i:1793;s:6:"@6|0|5";i:1794;s:6:"@6|0|2";i:1795;s:6:"@6|2|2";i:1796;s:6:"@5|2|2";i:1797;}', +'@^Mozilla/5\.0 \(Linux; .*; PPC.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1784, +'@^Mozilla/5\.0 \(X11; .*; SunOS.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1788, +'@^Mozilla/5\.0 \(X11; .*; HP\-UX.*; .*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1789, +'@^onCHECK Linkchecker von www\.scientec\.de fuer www\.onsinn\.de$@'=>1798, +'@^Mozilla/5\.0 \(compatible; Ezooms/1\.0; ezooms\.bot\@gmail\.com\)$@'=>1799, +'@^Mozilla/5\.0 \(compatible; RSSMicro\.com RSS/Atom Feed Robot\)$@'=>1800, +'@^Mozilla/5\.0 \(compatible; Twitturls; \+http\://twitturls\.com\)$@'=>1801, '@^InfociousBot \(.http\://corp\.infocious\.com/tech_crawler\.php\)$@'=>1802, -'@^Mozilla/4\.0 \(compatible; MSIE (\d)\.(\d); .*AOL 9\.(\d).*; .*Windows 9(\d).*$@'=>'a:12:{s:8:"@7|0|1|5";i:1803;s:8:"@7|0|0|8";i:1808;s:8:"@8|0|0|8";i:1809;s:8:"@7|0|1|8";i:1810;s:8:"@8|0|1|8";i:1811;s:8:"@8|0|1|5";i:1819;s:8:"@8|0|0|5";i:1820;s:8:"@6|0|0|5";i:1825;s:8:"@6|0|0|8";i:1826;s:8:"@5|5|0|8";i:1827;s:8:"@7|0|0|5";i:1828;s:8:"@5|5|0|5";i:1829;}', -'@^Mozilla/5\.0 \(Windows; .; Windows NT 5\.(\d); .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:15:{s:4:"@0|7";i:1804;s:4:"@1|7";i:1805;s:4:"@2|7";i:1806;s:4:"@0|8";i:1807;s:4:"@0|5";i:1812;s:4:"@0|4";i:1813;s:4:"@1|4";i:1814;s:4:"@1|5";i:1815;s:4:"@0|6";i:1816;s:4:"@1|8";i:1817;s:4:"@1|6";i:1818;s:4:"@0|9";i:1821;s:4:"@1|9";i:1822;s:4:"@2|9";i:1823;s:4:"@2|8";i:1824;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>'a:5:{s:4:"@5|1";i:1830;s:4:"@6|1";i:1831;s:4:"@6|0";i:1832;s:4:"@5|2";i:1833;s:4:"@5|0";i:1834;}', -'@^Mozilla/5\.0 \(X11; .*Linux.*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1835, +'@^Mozilla/5\.0 \(Windows; .; Windows NT 5\.(\d); .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:15:{s:4:"@1|4";i:1803;s:4:"@0|4";i:1805;s:4:"@0|6";i:1808;s:4:"@0|5";i:1809;s:4:"@1|5";i:1812;s:4:"@1|7";i:1816;s:4:"@0|7";i:1818;s:4:"@0|9";i:1821;s:4:"@2|9";i:1822;s:4:"@2|7";i:1823;s:4:"@1|9";i:1824;s:4:"@1|6";i:1825;s:4:"@2|8";i:1826;s:4:"@0|8";i:1827;s:4:"@1|8";i:1828;}', +'@^Mozilla/4\.0 \(compatible; MSIE (\d)\.(\d); .*AOL 9\.(\d).*; .*Windows 9(\d).*$@'=>'a:12:{s:8:"@8|0|1|5";i:1804;s:8:"@6|0|0|8";i:1806;s:8:"@6|0|0|5";i:1807;s:8:"@7|0|0|5";i:1810;s:8:"@7|0|0|8";i:1811;s:8:"@5|5|0|5";i:1813;s:8:"@8|0|1|8";i:1814;s:8:"@5|5|0|8";i:1815;s:8:"@8|0|0|8";i:1817;s:8:"@8|0|0|5";i:1819;s:8:"@7|0|1|8";i:1820;s:8:"@7|0|1|5";i:1829;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>'a:5:{s:4:"@5|0";i:1830;s:4:"@6|0";i:1831;s:4:"@5|2";i:1833;s:4:"@6|1";i:1834;s:4:"@5|1";i:1835;}', +'@^Mozilla/5\.0 \(X11; .*Linux.*; rv\:2\.2a.*\) Gecko/.* Firefox/4\.2a.*$@'=>1832, '@^Vodafone.* Mozilla/.* \(compatible; MSIE .*\..*; Windows CE; .*\).*$@'=>1836, '@^Linguee Bot \(http\://www\.linguee\.com/bot; bot\@linguee\.com\)$@'=>1837, '@^Healthbot/Health_and_Longevity_Project_\(HealthHaven\.com\) $@'=>1838, -'@^Mozilla/4\.0 \(compatible; smartBot/1\..*; checking links; .*\)$@'=>1839, -'@^livedoor FeedFetcher/0\.0.* \(http\://reader\.livedoor\.com/;.*\)$@'=>1840, +'@^livedoor FeedFetcher/0\.0.* \(http\://reader\.livedoor\.com/;.*\)$@'=>1839, +'@^Mozilla/4\.0 \(compatible; smartBot/1\..*; checking links; .*\)$@'=>1840, '@^MOT\-MP.*/.* Mozilla/4\.0 \(compatible; MSIE .*; Windows CE; .*\)$@'=>1841, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>'a:5:{s:4:"@5|1";i:1842;s:4:"@5|2";i:1843;s:4:"@5|0";i:1844;s:4:"@6|1";i:1845;s:4:"@6|0";i:1847;}', -'@^T\-Mobile.* Mozilla/.* \(compatible; MSIE .*\..*; Windows CE; .*\)$@'=>1846, +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>'a:5:{s:4:"@6|0";i:1842;s:4:"@5|2";i:1843;s:4:"@5|1";i:1845;s:4:"@5|0";i:1846;s:4:"@6|1";i:1847;}', +'@^T\-Mobile.* Mozilla/.* \(compatible; MSIE .*\..*; Windows CE; .*\)$@'=>1844, '@^Mozilla/5\.0 \(X11; .*; HP\-UX.*;.*rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1848, '@^Mozilla/5\.0 \(X11; .*; .*Linux.*; rv\:1\..*\) Gecko/.* Firefox/1\..*$@'=>1849, '@^Mozilla/5\.0 \(.*Linux i686.* .*Desktop/LX Amethyst.*\) .*Gecko/.*$@'=>1850, '@^Mozilla/4\.0 \(compatible; Lotus\-Notes/5\.0; Macintosh PPC\)$@'=>1851, '@^msnbot\-NewsBlogs/2\..* \(\+http\://search\.msn\.com/msnbot\.htm\)$@'=>1852, '@^msnbot\-webmaster/1\.0 \(.*http\://search\.msn\.com/msnbot\.htm\)$@'=>1853, -'@^Mozilla/4\.0 \(compatible; MSIE .\.0; Microsoft ZuneHD 4\..*\)$@'=>1854, -'@^DuckDuckBot/.*; \(.http\://duckduckgo\.com/duckduckbot\.html\)$@'=>1855, -'@^Mozilla/.*\(compatible; MSIE (\d)\..*Windows 98; Win 9x 4\.90.*\).*$@'=>'a:2:{s:2:"@5";i:1856;s:2:"@4";i:1857;}', -'@^Mozilla/.* \(compatible; iCab (\d)\.(\d).*; Macintosh; .*Mac OS X.*\)$@'=>'a:4:{s:4:"@4|8";i:1858;s:4:"@4|2";i:1859;s:4:"@3|0";i:1860;s:4:"@2|9";i:1862;}', +'@^DuckDuckBot/.*; \(.http\://duckduckgo\.com/duckduckbot\.html\)$@'=>1854, +'@^Mozilla/4\.0 \(compatible; MSIE .\.0; Microsoft ZuneHD 4\..*\)$@'=>1855, +'@^Mozilla/.* \(compatible; iCab (\d)\.(\d).*; Macintosh; .*Mac OS X.*\)$@'=>'a:4:{s:4:"@4|8";i:1856;s:4:"@4|2";i:1857;s:4:"@3|0";i:1858;s:4:"@2|9";i:1860;}', +'@^Mozilla/.*\(compatible; MSIE (\d)\..*Windows 98; Win 9x 4\.90.*\).*$@'=>'a:2:{s:2:"@5";i:1859;s:2:"@4";i:1862;}', '@^Mozilla/5\.0 \(Windows; .; Win98; .*\) Gecko/.* Netscape6/6\..*$@'=>1861, -'@^Mozilla/5\.0 \(Windows; .; Win98; .*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:3:{s:2:"@7";i:1863;s:2:"@8";i:1864;s:2:"@9";i:1865;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:55:{s:8:"@6|0|1|5";i:1866;s:8:"@6|1|1|8";i:1867;s:8:"@6|2|1|4";i:1868;s:8:"@6|0|2|3";i:1869;s:8:"@5|2|1|8";i:1871;s:8:"@6|1|2|3";i:1872;s:8:"@6|2|2|3";i:1873;s:8:"@6|0|1|6";i:1874;s:8:"@6|0|1|8";i:1875;s:8:"@5|1|1|6";i:1876;s:8:"@5|1|1|9";i:1877;s:8:"@5|2|1|9";i:1878;s:8:"@6|0|1|9";i:1879;s:8:"@6|1|1|9";i:1880;s:8:"@5|2|1|6";i:1881;s:8:"@5|1|1|4";i:1882;s:8:"@6|0|1|4";i:1883;s:8:"@5|2|1|4";i:1884;s:8:"@5|1|1|5";i:1885;s:8:"@6|2|1|9";i:1886;s:8:"@6|2|2|4";i:1887;s:8:"@5|1|2|3";i:1888;s:8:"@6|1|2|1";i:1889;s:8:"@6|2|1|8";i:1890;s:8:"@5|1|2|4";i:1891;s:8:"@5|2|2|4";i:1892;s:8:"@6|1|2|4";i:1893;s:8:"@5|2|1|5";i:1894;s:8:"@6|0|2|4";i:1895;s:8:"@6|1|1|4";i:1896;s:8:"@5|2|2|3";i:1897;s:8:"@5|1|2|2";i:1899;s:8:"@6|1|2|0";i:1900;s:8:"@5|2|2|2";i:1901;s:8:"@6|0|2|0";i:1902;s:8:"@6|1|2|2";i:1903;s:8:"@5|2|2|0";i:1904;s:8:"@6|1|1|5";i:1905;s:8:"@6|2|2|0";i:1906;s:8:"@6|2|2|1";i:1909;s:8:"@6|0|2|1";i:1910;s:8:"@5|2|2|1";i:1912;s:8:"@5|1|2|1";i:1914;s:8:"@5|1|2|0";i:1915;s:8:"@6|0|2|2";i:1916;s:8:"@6|1|1|7";i:1917;s:8:"@6|1|1|6";i:1918;s:8:"@6|0|1|7";i:1919;s:8:"@6|2|1|6";i:1920;s:8:"@6|2|1|5";i:1921;s:8:"@5|2|1|7";i:1922;s:8:"@6|2|1|7";i:1923;s:8:"@6|2|2|2";i:1924;s:8:"@5|1|1|7";i:1925;s:8:"@5|1|1|8";i:1927;}', -'@^Mozilla/5\.0 \(X11;.*FreeBSD.*;.*rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1870, -'@^Mozilla/5\.0 \(Macintosh; .; .*Mac OS X.*; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@8";i:1898;s:2:"@7";i:1907;s:2:"@5";i:1908;s:2:"@4";i:1911;s:2:"@6";i:1913;s:2:"@9";i:1926;}', -'@^Microsoft Data Access Internet Publishing Provider DAV.*$@'=>1928, -'@^Mozilla/4\.0 \(compatible; BOTW Spider; .*http\://botw\.org\)$@'=>1929, -'@^Mozilla/5\.0 \(Windows; .; Win 9x 4\.90; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@7";i:1930;s:2:"@5";i:1931;s:2:"@4";i:1933;s:2:"@6";i:1934;s:2:"@9";i:1938;s:2:"@8";i:1945;}', -'@^Mozilla/5\.0 \(Macintosh; .*Mac OS X.*\) Gecko/.* Camino/(\d)\.(\d).*$@'=>'a:9:{s:4:"@0|7";i:1932;s:4:"@1|5";i:1935;s:4:"@0|9";i:1936;s:4:"@1|6";i:1937;s:4:"@0|8";i:1939;s:4:"@1|2";i:1941;s:4:"@1|0";i:1942;s:4:"@1|4";i:1943;s:4:"@1|3";i:1946;}', -'@^Mozilla/5\.0 \(Macintosh; .; PPC;.*\) Gecko/.* Netscape6/6\..*$@'=>1940, -'@^Mozilla/5\.0 \(Windows; .; Win95;.*\) Gecko/.* Netscape6/6\..*$@'=>1944, -'@^Mozilla/5\.0 \(X11; .*Linux.*; rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1947, -'@^Mozilla/5\.0 \(Windows; .; Win95;.*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:3:{s:2:"@7";i:1948;s:2:"@9";i:1964;s:2:"@8";i:1979;}', -'@^Mozilla/5\.0 \(Macintosh; .; PPC;.*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:3:{s:2:"@7";i:1949;s:2:"@8";i:1950;s:2:"@9";i:1957;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:24:{s:6:"@6|0|3";i:1951;s:6:"@5|1|1";i:1952;s:6:"@5|0|1";i:1953;s:6:"@5|2|1";i:1954;s:6:"@6|0|1";i:1955;s:6:"@6|2|0";i:1958;s:6:"@6|1|0";i:1959;s:6:"@5|1|0";i:1960;s:6:"@5|0|0";i:1961;s:6:"@5|2|0";i:1962;s:6:"@6|0|0";i:1963;s:6:"@6|1|1";i:1965;s:6:"@6|2|1";i:1966;s:6:"@5|2|3";i:1967;s:6:"@5|1|3";i:1968;s:6:"@6|1|3";i:1969;s:6:"@6|2|3";i:1970;s:6:"@5|0|3";i:1972;s:6:"@6|2|2";i:1973;s:6:"@5|1|2";i:1974;s:6:"@5|0|2";i:1975;s:6:"@5|2|2";i:1976;s:6:"@6|0|2";i:1977;s:6:"@6|1|2";i:1978;}', -'@^MOT\-MP.*/.* Mozilla/.* \(compatible; MSIE .*; Windows CE; .*\)$@'=>1956, -'@^Mobitype .* \(compatible; Mozilla/.*; MSIE .*\..*; Windows .*\)$@'=>1971, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:1\.9.*\).*Gecko/.*Fennec/1\..*$@'=>'a:4:{s:4:"@6|1";i:1980;s:4:"@6|0";i:1981;s:4:"@5|2";i:1982;s:4:"@5|1";i:1983;}', +'@^Mozilla/5\.0 \(Windows; .; Win98; .*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:3:{s:2:"@8";i:1863;s:2:"@7";i:1864;s:2:"@9";i:1865;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*WOW64.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:55:{s:8:"@5|1|1|7";i:1866;s:8:"@5|1|1|8";i:1867;s:8:"@5|2|1|8";i:1868;s:8:"@6|0|1|8";i:1869;s:8:"@5|2|1|4";i:1870;s:8:"@6|2|2|1";i:1871;s:8:"@5|1|2|0";i:1872;s:8:"@5|2|1|7";i:1873;s:8:"@6|0|2|0";i:1874;s:8:"@6|0|1|4";i:1875;s:8:"@6|1|1|8";i:1876;s:8:"@6|2|1|8";i:1877;s:8:"@6|2|1|7";i:1878;s:8:"@6|0|2|4";i:1879;s:8:"@6|1|1|7";i:1880;s:8:"@6|0|1|7";i:1881;s:8:"@5|2|2|0";i:1882;s:8:"@6|2|2|2";i:1883;s:8:"@5|2|2|4";i:1884;s:8:"@6|0|1|6";i:1885;s:8:"@5|2|2|3";i:1886;s:8:"@5|1|1|9";i:1887;s:8:"@5|1|2|1";i:1888;s:8:"@5|1|1|6";i:1889;s:8:"@5|2|1|9";i:1890;s:8:"@5|2|1|6";i:1891;s:8:"@6|0|2|2";i:1892;s:8:"@6|0|1|9";i:1893;s:8:"@6|1|1|9";i:1894;s:8:"@6|0|2|3";i:1895;s:8:"@6|2|1|9";i:1896;s:8:"@5|1|2|3";i:1897;s:8:"@6|1|2|1";i:1898;s:8:"@6|1|1|6";i:1900;s:8:"@6|2|1|6";i:1901;s:8:"@5|2|2|1";i:1902;s:8:"@6|1|2|3";i:1903;s:8:"@6|2|2|3";i:1904;s:8:"@6|1|2|2";i:1905;s:8:"@5|1|2|2";i:1906;s:8:"@6|2|2|0";i:1907;s:8:"@6|0|2|1";i:1908;s:8:"@5|1|2|4";i:1909;s:8:"@5|1|1|4";i:1910;s:8:"@5|2|2|2";i:1911;s:8:"@6|1|1|4";i:1913;s:8:"@6|2|1|4";i:1914;s:8:"@6|0|1|5";i:1915;s:8:"@6|1|1|5";i:1916;s:8:"@5|2|1|5";i:1917;s:8:"@5|1|1|5";i:1918;s:8:"@6|2|1|5";i:1924;s:8:"@6|2|2|4";i:1925;s:8:"@6|1|2|0";i:1926;s:8:"@6|1|2|4";i:1927;}', +'@^Mozilla/5\.0 \(X11;.*FreeBSD.*;.*rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1899, +'@^Mozilla/5\.0 \(Macintosh; .; .*Mac OS X.*; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@9";i:1912;s:2:"@4";i:1919;s:2:"@5";i:1920;s:2:"@6";i:1921;s:2:"@7";i:1922;s:2:"@8";i:1923;}', +'@^Mozilla/4\.0 \(compatible; BOTW Spider; .*http\://botw\.org\)$@'=>1928, +'@^Microsoft Data Access Internet Publishing Provider DAV.*$@'=>1929, +'@^Mozilla/5\.0 \(Macintosh; .*Mac OS X.*\) Gecko/.* Camino/(\d)\.(\d).*$@'=>'a:9:{s:4:"@1|2";i:1930;s:4:"@1|0";i:1931;s:4:"@1|3";i:1932;s:4:"@0|8";i:1933;s:4:"@1|6";i:1935;s:4:"@0|7";i:1936;s:4:"@1|5";i:1942;s:4:"@1|4";i:1945;s:4:"@0|9";i:1946;}', +'@^Mozilla/5\.0 \(Windows; .; Win 9x 4\.90; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@9";i:1934;s:2:"@5";i:1937;s:2:"@8";i:1938;s:2:"@4";i:1940;s:2:"@6";i:1941;s:2:"@7";i:1944;}', +'@^Mozilla/5\.0 \(Macintosh; .; PPC;.*\) Gecko/.* Netscape6/6\..*$@'=>1939, +'@^Mozilla/5\.0 \(Windows; .; Win95;.*\) Gecko/.* Netscape6/6\..*$@'=>1943, +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:24:{s:6:"@6|0|1";i:1947;s:6:"@6|2|2";i:1948;s:6:"@5|2|1";i:1949;s:6:"@5|1|1";i:1950;s:6:"@5|0|0";i:1951;s:6:"@5|1|0";i:1952;s:6:"@5|0|1";i:1953;s:6:"@5|2|0";i:1954;s:6:"@6|0|0";i:1956;s:6:"@6|2|1";i:1960;s:6:"@6|1|1";i:1961;s:6:"@6|0|3";i:1963;s:6:"@5|2|3";i:1964;s:6:"@5|1|3";i:1966;s:6:"@5|0|3";i:1967;s:6:"@6|1|3";i:1968;s:6:"@6|1|2";i:1971;s:6:"@6|1|0";i:1972;s:6:"@6|0|2";i:1973;s:6:"@6|2|3";i:1974;s:6:"@5|2|2";i:1975;s:6:"@5|1|2";i:1976;s:6:"@5|0|2";i:1978;s:6:"@6|2|0";i:1979;}', +'@^Mozilla/5\.0 \(Macintosh; .; PPC;.*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:3:{s:2:"@9";i:1955;s:2:"@7";i:1965;s:2:"@8";i:1970;}', +'@^Mozilla/5\.0 \(Windows; .; Win95;.*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:3:{s:2:"@9";i:1957;s:2:"@7";i:1959;s:2:"@8";i:1962;}', +'@^MOT\-MP.*/.* Mozilla/.* \(compatible; MSIE .*; Windows CE; .*\)$@'=>1958, +'@^Mozilla/5\.0 \(X11; .*Linux.*; rv\:5\..*\) Gecko/.* Firefox/5\.0.*$@'=>1969, +'@^Mobitype .* \(compatible; Mozilla/.*; MSIE .*\..*; Windows .*\)$@'=>1977, +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:1\.9.*\).*Gecko/.*Fennec/1\..*$@'=>'a:4:{s:4:"@5|1";i:1980;s:4:"@5|2";i:1981;s:4:"@6|0";i:1982;s:4:"@6|1";i:1983;}', '@^Mozilla/5\.0 \(compatible; Nigma\.ru/.*; crawler\@nigma\.ru\)$@'=>1984, '@^Mozilla/5\.0 \(compatible; YandexBot/.*; MirrorDetector.*\)$@'=>1985, '@^Mozilla/.*\(.*redditbot/.*http\://www\.reddit\.com/feedback.*\)$@'=>1986, -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\).*Gecko/.*Thunderbird/1(\d)\..*$@'=>'a:30:{s:6:"@6|2|2";i:1987;s:6:"@6|1|2";i:1988;s:6:"@6|0|2";i:1989;s:6:"@5|0|3";i:1990;s:6:"@6|1|4";i:1991;s:6:"@5|1|3";i:1992;s:6:"@5|2|2";i:1994;s:6:"@5|1|2";i:1995;s:6:"@6|2|1";i:1997;s:6:"@6|2|4";i:1999;s:6:"@5|0|2";i:2000;s:6:"@5|2|3";i:2002;s:6:"@6|0|3";i:2003;s:6:"@5|1|4";i:2006;s:6:"@5|2|4";i:2007;s:6:"@5|0|4";i:2011;s:6:"@6|1|3";i:2015;s:6:"@6|2|3";i:2016;s:6:"@6|1|1";i:2019;s:6:"@6|0|1";i:2020;s:6:"@6|1|0";i:2038;s:6:"@6|0|0";i:2039;s:6:"@6|2|0";i:2040;s:6:"@5|0|1";i:2041;s:6:"@5|2|1";i:2042;s:6:"@5|1|1";i:2043;s:6:"@5|0|0";i:2046;s:6:"@5|1|0";i:2048;s:6:"@5|2|0";i:2050;s:6:"@6|0|4";i:2052;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\).*Gecko/.*Thunderbird/(\d)\.(\d).*$@'=>'a:12:{s:8:"@6|2|3|1";i:1993;s:8:"@5|1|1|5";i:2021;s:8:"@5|0|1|5";i:2022;s:8:"@5|0|3|1";i:2023;s:8:"@5|2|1|5";i:2025;s:8:"@6|0|1|5";i:2026;s:8:"@5|1|3|1";i:2029;s:8:"@6|1|3|1";i:2032;s:8:"@5|2|3|1";i:2034;s:8:"@6|0|3|1";i:2035;s:8:"@6|1|1|5";i:2036;s:8:"@6|2|1|5";i:2037;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:24:{s:6:"@5|0|7";i:1996;s:6:"@6|2|6";i:1998;s:6:"@6|1|6";i:2001;s:6:"@5|2|6";i:2004;s:6:"@5|2|8";i:2005;s:6:"@5|1|8";i:2008;s:6:"@5|0|8";i:2009;s:6:"@6|0|6";i:2010;s:6:"@6|0|8";i:2012;s:6:"@6|1|8";i:2013;s:6:"@6|2|8";i:2014;s:6:"@5|1|6";i:2017;s:6:"@5|0|6";i:2018;s:6:"@6|2|9";i:2024;s:6:"@6|1|9";i:2027;s:6:"@5|2|7";i:2028;s:6:"@6|2|7";i:2030;s:6:"@6|1|7";i:2031;s:6:"@6|0|7";i:2033;s:6:"@5|0|9";i:2044;s:6:"@5|1|9";i:2045;s:6:"@6|0|9";i:2047;s:6:"@5|1|7";i:2049;s:6:"@5|2|9";i:2051;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*rv\:.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:24:{s:6:"@5|2|9";i:1987;s:6:"@5|1|7";i:1992;s:6:"@6|1|8";i:1995;s:6:"@5|2|8";i:1996;s:6:"@5|2|6";i:2010;s:6:"@6|0|8";i:2011;s:6:"@5|1|6";i:2013;s:6:"@6|1|6";i:2014;s:6:"@5|0|6";i:2015;s:6:"@6|2|6";i:2016;s:6:"@5|0|7";i:2020;s:6:"@5|1|8";i:2026;s:6:"@5|0|8";i:2027;s:6:"@6|0|6";i:2032;s:6:"@5|0|9";i:2035;s:6:"@6|0|7";i:2036;s:6:"@5|1|9";i:2037;s:6:"@6|1|7";i:2038;s:6:"@5|2|7";i:2039;s:6:"@6|2|9";i:2042;s:6:"@6|2|8";i:2044;s:6:"@6|1|9";i:2046;s:6:"@6|0|9";i:2048;s:6:"@6|2|7";i:2049;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\).*Gecko/.*Thunderbird/1(\d)\..*$@'=>'a:30:{s:6:"@6|0|3";i:1988;s:6:"@6|2|3";i:1990;s:6:"@6|1|2";i:1991;s:6:"@6|2|1";i:1993;s:6:"@6|1|3";i:1994;s:6:"@6|2|4";i:2001;s:6:"@6|0|1";i:2003;s:6:"@5|0|0";i:2004;s:6:"@5|1|0";i:2005;s:6:"@5|2|2";i:2006;s:6:"@5|2|0";i:2008;s:6:"@5|1|2";i:2012;s:6:"@5|0|2";i:2017;s:6:"@5|0|4";i:2019;s:6:"@6|0|2";i:2021;s:6:"@5|1|4";i:2023;s:6:"@5|2|4";i:2024;s:6:"@6|0|4";i:2025;s:6:"@6|1|4";i:2028;s:6:"@5|2|3";i:2031;s:6:"@6|0|0";i:2033;s:6:"@5|1|1";i:2034;s:6:"@5|0|1";i:2040;s:6:"@5|1|3";i:2041;s:6:"@5|0|3";i:2043;s:6:"@6|1|1";i:2045;s:6:"@5|2|1";i:2047;s:6:"@6|2|2";i:2050;s:6:"@6|1|0";i:2051;s:6:"@6|2|0";i:2052;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\).*Gecko/.*Thunderbird/(\d)\.(\d).*$@'=>'a:12:{s:8:"@6|2|3|1";i:1989;s:8:"@5|2|1|5";i:1997;s:8:"@5|1|1|5";i:1998;s:8:"@6|0|1|5";i:1999;s:8:"@6|1|1|5";i:2000;s:8:"@6|2|1|5";i:2002;s:8:"@6|1|3|1";i:2007;s:8:"@5|1|3|1";i:2009;s:8:"@5|0|3|1";i:2018;s:8:"@5|2|3|1";i:2022;s:8:"@6|0|3|1";i:2029;s:8:"@5|0|1|5";i:2030;}', '@^HTC\-.*/.* Mozilla/.* \(compatible; MSIE .*\..*; Windows CE.*\).*$@'=>2053, -'@^FAST MetaWeb Crawler \(helpdesk at fastsearch dot com\)$@'=>2054, +'@^Mozilla/4\.0 \(compatible; Lotus\-Notes/(\d)\.0; Windows\-NT\)$@'=>'a:2:{s:2:"@5";i:2054;s:2:"@6";i:2058;}', '@^1st ZipCommander \(Net\) \- http\://www\.zipcommander\.com/$@'=>2055, -'@^voyager/2\.0 \(http\://www\.kosmix\.com/html/crawler\.html\)$@'=>2056, -'@^Mozilla/4\.0 \(compatible; Lotus\-Notes/(\d)\.0; Windows\-NT\)$@'=>'a:2:{s:2:"@6";i:2057;s:2:"@5";i:2058;}', +'@^FAST MetaWeb Crawler \(helpdesk at fastsearch dot com\)$@'=>2056, +'@^voyager/2\.0 \(http\://www\.kosmix\.com/html/crawler\.html\)$@'=>2057, '@^eStyleSearch .* \(compatible; MSIE 6\.0; Windows NT 5\.0\)$@'=>2059, -'@^Mozilla/.* \(compatible; iCab 2\.7.*; Macintosh; .; 68K.*\)$@'=>2060, -'@^Mozilla/.* \(compatible; iCab (\d)\.(\d).*; Macintosh; .; PPC.*\)$@'=>'a:3:{s:4:"@3|0";i:2061;s:4:"@2|7";i:2062;s:4:"@2|9";i:2063;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\).*Gecko/.*Thunderbird/(\d)\..*$@'=>'a:42:{s:6:"@6|1|1";i:2064;s:6:"@6|2|1";i:2065;s:6:"@5|0|1";i:2066;s:6:"@5|1|1";i:2067;s:6:"@5|2|1";i:2068;s:6:"@6|0|1";i:2069;s:6:"@6|0|3";i:2070;s:6:"@6|0|2";i:2071;s:6:"@5|2|2";i:2072;s:6:"@5|1|2";i:2073;s:6:"@5|0|2";i:2074;s:6:"@6|1|2";i:2075;s:6:"@6|2|2";i:2076;s:6:"@6|1|3";i:2077;s:6:"@5|2|3";i:2078;s:6:"@5|1|3";i:2079;s:6:"@5|0|3";i:2080;s:6:"@6|2|3";i:2081;s:6:"@5|1|6";i:2082;s:6:"@5|0|8";i:2083;s:6:"@5|1|8";i:2084;s:6:"@6|2|7";i:2085;s:6:"@6|1|7";i:2086;s:6:"@6|1|9";i:2087;s:6:"@5|2|8";i:2088;s:6:"@6|0|8";i:2089;s:6:"@6|2|9";i:2090;s:6:"@5|0|9";i:2091;s:6:"@6|2|8";i:2092;s:6:"@6|1|8";i:2093;s:6:"@6|0|7";i:2094;s:6:"@5|2|9";i:2095;s:6:"@5|2|6";i:2096;s:6:"@5|0|6";i:2098;s:6:"@6|0|9";i:2099;s:6:"@6|0|6";i:2100;s:6:"@6|1|6";i:2101;s:6:"@5|2|7";i:2102;s:6:"@5|1|7";i:2103;s:6:"@5|0|7";i:2104;s:6:"@6|2|6";i:2105;s:6:"@5|1|9";i:2106;}', -'@^Mozilla/.* \(compatible; MSIE 7\.0.*; .*Windows NT 5\.01.*\).*$@'=>2097, -'@^Mozilla/5\.0 \(.*Mac OS X 10\..*rv\:1\.9.*\).*Gecko/.*Fennec/1\..*$@'=>2107, -'@^Mozilla/5\.0 \(.*Mac OS X.*rv\:(\d)\..*\).*Gecko/.*Thunderbird/5\..*$@'=>'a:2:{s:2:"@5";i:2108;s:2:"@2";i:2109;}', +'@^Mozilla/.* \(compatible; iCab (\d)\.(\d).*; Macintosh; .; PPC.*\)$@'=>'a:3:{s:4:"@3|0";i:2060;s:4:"@2|7";i:2062;s:4:"@2|9";i:2063;}', +'@^Mozilla/.* \(compatible; iCab 2\.7.*; Macintosh; .; 68K.*\)$@'=>2061, +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\).*Gecko/.*Thunderbird/(\d)\..*$@'=>'a:42:{s:6:"@6|2|8";i:2064;s:6:"@5|1|2";i:2065;s:6:"@6|1|8";i:2066;s:6:"@5|1|3";i:2067;s:6:"@6|2|3";i:2068;s:6:"@6|1|3";i:2069;s:6:"@5|1|6";i:2070;s:6:"@6|0|8";i:2071;s:6:"@6|2|1";i:2072;s:6:"@6|1|1";i:2073;s:6:"@6|0|2";i:2074;s:6:"@5|2|8";i:2075;s:6:"@5|2|6";i:2076;s:6:"@5|1|8";i:2077;s:6:"@5|2|2";i:2078;s:6:"@5|0|8";i:2079;s:6:"@6|2|9";i:2080;s:6:"@6|1|2";i:2082;s:6:"@5|0|2";i:2083;s:6:"@5|1|7";i:2084;s:6:"@6|2|2";i:2085;s:6:"@5|0|9";i:2086;s:6:"@5|0|6";i:2087;s:6:"@5|1|9";i:2088;s:6:"@6|1|6";i:2089;s:6:"@6|2|6";i:2090;s:6:"@5|0|7";i:2091;s:6:"@5|2|7";i:2092;s:6:"@5|0|3";i:2093;s:6:"@6|1|9";i:2094;s:6:"@6|1|7";i:2095;s:6:"@5|2|3";i:2096;s:6:"@6|2|7";i:2097;s:6:"@5|2|9";i:2098;s:6:"@6|0|6";i:2099;s:6:"@6|0|9";i:2100;s:6:"@6|0|7";i:2101;s:6:"@6|0|3";i:2102;s:6:"@6|0|1";i:2103;s:6:"@5|2|1";i:2104;s:6:"@5|1|1";i:2105;s:6:"@5|0|1";i:2106;}', +'@^Mozilla/.* \(compatible; MSIE 7\.0.*; .*Windows NT 5\.01.*\).*$@'=>2081, +'@^Mozilla/5\.0 \(.*Mac OS X.*rv\:(\d)\..*\).*Gecko/.*Thunderbird/5\..*$@'=>'a:2:{s:2:"@5";i:2107;s:2:"@2";i:2108;}', +'@^Mozilla/5\.0 \(.*Mac OS X 10\..*rv\:1\.9.*\).*Gecko/.*Fennec/1\..*$@'=>2109, '@^curl/.* \(Linux .* intel\..*dlink\.dsm.* .*; .*; beta\) boxee/.*$@'=>2110, -'@^neTVision AG andreas\.heidoetting\@thomson\-webcast\.net$@'=>2111, +'@^Mozilla/4\.0 \(compatible; MSIE 4\.01; Vonna\.com b o t\)$@'=>2111, '@^FeedHub MetaDataFetcher/1\.0 \(http\://www\.feedhub\.com\)$@'=>2112, -'@^Arexx \(compatible; MSIE 6\.0; AmigaOS5\.0\) IBrowse 4\.0$@'=>2113, -'@^Mozilla/4\.0 \(compatible; MSIE 4\.01; Vonna\.com b o t\)$@'=>2114, -'@^Mozilla/5\.0 http\://www\.inclue\.com; graeme\@inclue\.com$@'=>2115, -'@^Mozilla/5\.0 \(compatible; AdHitz; http\://adhitz\.com/\)$@'=>2116, -'@^Busiversebot/v1\.0 \(http\://www\.busiverse\.com/bot\.php\)$@'=>2117, -'@^Browscap Mirror System/1\..* \(browscap\.giantrealm\.com\)$@'=>2118, +'@^neTVision AG andreas\.heidoetting\@thomson\-webcast\.net$@'=>2113, +'@^Mozilla/5\.0 \(compatible; AdHitz; http\://adhitz\.com/\)$@'=>2114, +'@^Busiversebot/v1\.0 \(http\://www\.busiverse\.com/bot\.php\)$@'=>2115, +'@^Arexx \(compatible; MSIE 6\.0; AmigaOS5\.0\) IBrowse 4\.0$@'=>2116, +'@^Mozilla/5\.0 http\://www\.inclue\.com; graeme\@inclue\.com$@'=>2117, +'@^renlifangbot/1\.0 \(.http\://search\.msn\.com/msnbot\.htm\)$@'=>2118, '@^Strategic Board Bot \(.http\://www\.strategicboard\.com\)$@'=>2119, -'@^renlifangbot/1\.0 \(.http\://search\.msn\.com/msnbot\.htm\)$@'=>2120, +'@^Browscap Mirror System/1\..* \(browscap\.giantrealm\.com\)$@'=>2120, '@^Mozilla/5\.0 \(.*http\://gnomit\.com/\) Gecko/.* Gnomit/1\.0$@'=>2121, '@^Mozilla/5\.0 \(Danger hiptop 3\..*; U; rv\:1\.7\..*\) Gecko/.*$@'=>2122, -'@^Mozilla/5\.0 \(Windows; .; WinNT4\.0; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@4";i:2123;s:2:"@7";i:2124;s:2:"@5";i:2125;s:2:"@6";i:2128;s:2:"@9";i:2130;s:2:"@8";i:2131;}', -'@^Mozilla/5\.0 \(compatible; Teleca .*; Brew 3\.(\d).*; U; .*\).*$@'=>'a:2:{s:2:"@1";i:2126;s:2:"@0";i:2129;}', -'@^Mozilla/5\.0 \(.*iCjobs Stellenangebote Jobs.*\).*iCjobs/.*$@'=>2127, -'@^Mozilla/.* \(compatible; MSIE 7\.0.*; .*Windows NT (\d)\.(\d).*\).*$@'=>'a:5:{s:4:"@6|0";i:2132;s:4:"@6|1";i:2134;s:4:"@5|0";i:2135;s:4:"@5|2";i:2136;s:4:"@5|1";i:2137;}', +'@^Mozilla/5\.0 \(.*iCjobs Stellenangebote Jobs.*\).*iCjobs/.*$@'=>2123, +'@^Mozilla/5\.0 \(Windows; .; WinNT4\.0; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@9";i:2124;s:2:"@4";i:2125;s:2:"@8";i:2126;s:2:"@5";i:2128;s:2:"@6";i:2129;s:2:"@7";i:2130;}', +'@^Mozilla/5\.0 \(compatible; Teleca .*; Brew 3\.(\d).*; U; .*\).*$@'=>'a:2:{s:2:"@1";i:2127;s:2:"@0";i:2131;}', +'@^Mozilla/.* \(compatible; MSIE 7\.0.*; .*Windows NT (\d)\.(\d).*\).*$@'=>'a:5:{s:4:"@5|0";i:2132;s:4:"@5|2";i:2134;s:4:"@5|1";i:2135;s:4:"@6|1";i:2136;s:4:"@6|0";i:2137;}', '@^envolk.ITS.spider/.* \(.http\://www\.envolk\.com/envolk.*\)$@'=>2133, -'@^Mozilla/5\.0 \(.*Mac OS X.*\) .*AppleWebKit/.* .*Shiira/(\d)\.(\d).*$@'=>'a:7:{s:4:"@2|3";i:2138;s:4:"@1|1";i:2139;s:4:"@1|0";i:2140;s:4:"@0|9";i:2141;s:4:"@1|2";i:2142;s:4:"@2|1";i:2143;s:4:"@2|2";i:2144;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\) .*AppleWebKit/.* .*Shiira/(\d)\.(\d).*$@'=>'a:7:{s:4:"@2|3";i:2138;s:4:"@1|2";i:2139;s:4:"@1|0";i:2140;s:4:"@0|9";i:2141;s:4:"@1|1";i:2142;s:4:"@2|2";i:2143;s:4:"@2|1";i:2144;}', '@^Mozilla/.*\(.*MSIE 10\..*Windows NT 6\.1.*64.*Trident/6\.0.*\).*$@'=>2145, -'@^Mozilla/4\.0 \(compatible; Advanced Email Extractor.*\)$@'=>2146, -'@^Pingdom\.com_bot_version_.*_\(http\://www\.pingdom\.com/\)$@'=>2147, -'@^T\-Mobile Dash Mozilla/4\.0 \(.*\) MSNBOT\-MOBILE/1\.1 \(.*\)$@'=>2148, -'@^MapoftheInternet\.com.\(.http\://MapoftheInternet\.com\)$@'=>2149, +'@^Pingdom\.com_bot_version_.*_\(http\://www\.pingdom\.com/\)$@'=>2146, +'@^Mozilla/4\.0 \(compatible; Advanced Email Extractor.*\)$@'=>2147, +'@^MapoftheInternet\.com.\(.http\://MapoftheInternet\.com\)$@'=>2148, +'@^T\-Mobile Dash Mozilla/4\.0 \(.*\) MSNBOT\-MOBILE/1\.1 \(.*\)$@'=>2149, '@^Windows\-RSS\-Platform/2\.0 \(MSIE .\.0; Windows NT .*\..*\)$@'=>2150, -'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT (\d)\.(\d).*\).*$@'=>'a:5:{s:4:"@5|1";i:2151;s:4:"@6|1";i:2153;s:4:"@5|2";i:2154;s:4:"@5|0";i:2155;s:4:"@6|0";i:2156;}', -'@^Mozilla/.* \(compatible; MSIE 7\.0.*; Windows NT 6\.2.*\).*$@'=>2152, -'@^Mozilla/5\.0 \(Windows; .; Win3\.11; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@8";i:2157;s:2:"@6";i:2158;s:2:"@5";i:2159;s:2:"@4";i:2160;s:2:"@7";i:2161;s:2:"@9";i:2162;}', -'@^Mozilla/.* \(compatible; MSIE 6\..*; .*Windows NT (\d)\.(\d).*\).*$@'=>'a:4:{s:4:"@5|2";i:2163;s:4:"@5|1";i:2164;s:4:"@6|0";i:2165;s:4:"@5|0";i:2166;}', -'@^Mozilla/5\.0 \(.*Mac OS X.*rv\:2\.0.*\) Gecko/.*Firefox/4\.0.*$@'=>2167, -'@^Mozilla/5\.0 \(.*OpenBSD.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2168, -'@^Mozilla/5\.0 \(.*FreeBSD.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2169, +'@^Mozilla/5\.0 \(Windows; .; Win3\.11; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@4";i:2151;s:2:"@7";i:2153;s:2:"@9";i:2155;s:2:"@6";i:2156;s:2:"@5";i:2158;s:2:"@8";i:2161;}', +'@^Mozilla/.* \(compatible; MSIE 8\.0; .*Windows NT (\d)\.(\d).*\).*$@'=>'a:5:{s:4:"@6|1";i:2152;s:4:"@6|0";i:2154;s:4:"@5|2";i:2157;s:4:"@5|1";i:2159;s:4:"@5|0";i:2162;}', +'@^Mozilla/.* \(compatible; MSIE 7\.0.*; Windows NT 6\.2.*\).*$@'=>2160, +'@^Mozilla/.* \(compatible; MSIE 6\..*; .*Windows NT (\d)\.(\d).*\).*$@'=>'a:4:{s:4:"@5|2";i:2163;s:4:"@6|0";i:2165;s:4:"@5|1";i:2166;s:4:"@5|0";i:2167;}', +'@^Mozilla/5\.0 \(.*OpenBSD.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2164, +'@^Mozilla/5\.0 \(.*FreeBSD.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2168, +'@^Mozilla/5\.0 \(.*Mac OS X.*rv\:2\.0.*\) Gecko/.*Firefox/4\.0.*$@'=>2169, '@^FeedHub FeedDiscovery/1\.0 \(http\://www\.feedhub\.com\)$@'=>2170, '@^online link validator \(http\://www\.dead\-links\.com/\)$@'=>2171, '@^Mozilla/5\.0 \(Macintosh; Intel Mac OS X\) Excel/12\..*$@'=>2172, -'@^Mozilla/5\.0 \(X11; U; OpenVMS.*; .*; rv\:1\.(\d).*\) Gecko/.*$@'=>'a:9:{s:2:"@5";i:2173;s:2:"@6";i:2174;s:2:"@4";i:2175;s:2:"@7";i:2176;s:2:"@3";i:2177;s:2:"@0";i:2178;s:2:"@1";i:2179;s:2:"@2";i:2180;s:2:"@8";i:2183;}', -'@^Mozilla/5\.0 \(Windows; .; Win3\.1; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@8";i:2181;s:2:"@6";i:2182;s:2:"@9";i:2184;s:2:"@7";i:2185;s:2:"@4";i:2186;s:2:"@5";i:2187;}', -'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:66:{s:8:"@5|0|2|3";i:2188;s:8:"@6|2|1|5";i:2189;s:8:"@6|2|2|1";i:2190;s:8:"@5|2|2|3";i:2191;s:8:"@6|2|1|8";i:2192;s:8:"@5|0|2|4";i:2193;s:8:"@6|2|2|4";i:2194;s:8:"@5|0|1|9";i:2195;s:8:"@6|2|2|3";i:2197;s:8:"@5|1|1|9";i:2198;s:8:"@5|0|1|4";i:2199;s:8:"@5|2|1|6";i:2200;s:8:"@6|0|1|9";i:2201;s:8:"@5|0|2|0";i:2202;s:8:"@6|1|2|3";i:2203;s:8:"@6|0|1|5";i:2204;s:8:"@5|1|2|1";i:2206;s:8:"@5|2|2|4";i:2207;s:8:"@6|0|2|4";i:2208;s:8:"@6|1|2|4";i:2209;s:8:"@5|1|2|0";i:2210;s:8:"@6|0|2|3";i:2211;s:8:"@5|0|2|1";i:2212;s:8:"@5|2|2|1";i:2213;s:8:"@6|0|2|1";i:2214;s:8:"@6|1|1|5";i:2216;s:8:"@6|1|1|9";i:2217;s:8:"@6|1|1|8";i:2218;s:8:"@6|2|1|9";i:2219;s:8:"@5|2|2|0";i:2220;s:8:"@5|1|2|4";i:2221;s:8:"@5|0|1|5";i:2223;s:8:"@6|1|2|1";i:2224;s:8:"@5|2|1|9";i:2225;s:8:"@5|1|2|3";i:2226;s:8:"@5|0|2|2";i:2227;s:8:"@5|1|2|2";i:2228;s:8:"@5|2|2|2";i:2229;s:8:"@6|0|2|2";i:2230;s:8:"@5|1|1|5";i:2231;s:8:"@5|0|1|7";i:2232;s:8:"@6|1|2|0";i:2233;s:8:"@5|2|1|7";i:2234;s:8:"@5|1|1|7";i:2235;s:8:"@6|0|1|8";i:2236;s:8:"@6|1|2|2";i:2237;s:8:"@6|2|1|6";i:2238;s:8:"@5|0|1|6";i:2239;s:8:"@6|1|1|6";i:2240;s:8:"@6|0|1|6";i:2241;s:8:"@5|2|1|4";i:2242;s:8:"@6|2|2|0";i:2243;s:8:"@6|2|2|2";i:2244;s:8:"@5|1|1|4";i:2245;s:8:"@6|0|1|4";i:2246;s:8:"@6|0|1|7";i:2247;s:8:"@5|2|1|5";i:2248;s:8:"@5|0|1|8";i:2249;s:8:"@5|2|1|8";i:2250;s:8:"@6|1|1|4";i:2251;s:8:"@6|2|1|4";i:2252;s:8:"@5|1|1|8";i:2253;s:8:"@6|1|1|7";i:2254;s:8:"@6|2|1|7";i:2255;s:8:"@6|0|2|0";i:2256;s:8:"@5|1|1|6";i:2257;}', -'@^Mozilla/5\.0 \(X11; .; SunOS.*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:3:{s:2:"@7";i:2196;s:2:"@8";i:2215;s:2:"@9";i:2222;}', -'@^Mozilla/5\.0 \(.*IRIX64.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2205, -'@^Mozilla/5\.0 \(.*Android.*Mobile.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@1|5";i:2258;s:4:"@2|0";i:2260;s:4:"@1|7";i:2263;s:4:"@1|9";i:2264;s:4:"@1|4";i:2267;s:4:"@1|6";i:2271;s:4:"@2|1";i:2272;s:4:"@2|2";i:2273;s:4:"@1|8";i:2274;s:4:"@2|3";i:2276;s:4:"@2|4";i:2277;}', -'@^Mozilla/5\.0 \(.*Android.*Tablet.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:7:{s:4:"@2|0";i:2259;s:4:"@1|9";i:2261;s:4:"@2|2";i:2262;s:4:"@2|1";i:2265;s:4:"@2|3";i:2268;s:4:"@1|5";i:2270;s:4:"@2|4";i:2275;}', -'@^Godzilla/.* \(Basic.*; .*; Commodore C\=64; .*; rv\:1\..*\).*$@'=>2266, -'@^Mozilla/5\.0 \(.*Linux.*rv\:(\d)\..*\).*Gecko/.*Thunderbird/5\..*$@'=>'a:2:{s:2:"@2";i:2269;s:2:"@5";i:2278;}', +'@^Mozilla/5\.0 \(Windows; .; Win3\.1; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@9";i:2173;s:2:"@4";i:2175;s:2:"@7";i:2176;s:2:"@6";i:2177;s:2:"@8";i:2185;s:2:"@5";i:2186;}', +'@^Mozilla/5\.0 \(X11; U; OpenVMS.*; .*; rv\:1\.(\d).*\) Gecko/.*$@'=>'a:9:{s:2:"@8";i:2174;s:2:"@0";i:2178;s:2:"@1";i:2179;s:2:"@2";i:2180;s:2:"@3";i:2181;s:2:"@4";i:2182;s:2:"@5";i:2183;s:2:"@7";i:2184;s:2:"@6";i:2187;}', +'@^Mozilla/5\.0 \(.*Windows NT (\d)\.(\d).*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:66:{s:8:"@6|0|1|8";i:2188;s:8:"@5|0|2|0";i:2189;s:8:"@6|1|2|3";i:2190;s:8:"@6|1|2|0";i:2191;s:8:"@5|2|2|1";i:2192;s:8:"@6|0|1|4";i:2193;s:8:"@5|1|2|1";i:2194;s:8:"@6|0|2|4";i:2195;s:8:"@5|1|1|7";i:2196;s:8:"@5|0|2|1";i:2197;s:8:"@6|1|1|7";i:2198;s:8:"@5|2|1|9";i:2199;s:8:"@6|0|1|9";i:2200;s:8:"@6|1|1|9";i:2201;s:8:"@6|0|2|3";i:2202;s:8:"@6|0|1|7";i:2203;s:8:"@6|2|1|9";i:2204;s:8:"@6|2|2|0";i:2206;s:8:"@5|2|1|7";i:2207;s:8:"@6|2|2|4";i:2208;s:8:"@6|2|1|8";i:2209;s:8:"@5|1|2|0";i:2210;s:8:"@6|1|2|1";i:2212;s:8:"@6|0|2|1";i:2213;s:8:"@5|2|1|4";i:2214;s:8:"@5|2|1|8";i:2215;s:8:"@5|1|1|8";i:2216;s:8:"@5|0|1|8";i:2217;s:8:"@5|0|1|9";i:2218;s:8:"@5|2|2|4";i:2219;s:8:"@5|1|1|9";i:2220;s:8:"@5|1|2|4";i:2221;s:8:"@6|0|1|5";i:2222;s:8:"@5|0|1|4";i:2223;s:8:"@5|2|2|0";i:2224;s:8:"@6|2|2|3";i:2225;s:8:"@5|0|2|4";i:2226;s:8:"@6|0|2|0";i:2227;s:8:"@6|2|2|1";i:2228;s:8:"@5|1|1|4";i:2229;s:8:"@5|2|1|5";i:2230;s:8:"@6|1|1|8";i:2231;s:8:"@6|2|1|7";i:2232;s:8:"@5|1|1|6";i:2233;s:8:"@5|1|2|2";i:2234;s:8:"@6|2|1|4";i:2236;s:8:"@6|1|2|4";i:2237;s:8:"@6|1|1|4";i:2239;s:8:"@5|1|2|3";i:2240;s:8:"@6|2|1|6";i:2241;s:8:"@5|2|2|3";i:2242;s:8:"@5|0|1|5";i:2243;s:8:"@5|0|2|3";i:2244;s:8:"@6|1|1|5";i:2245;s:8:"@6|1|1|6";i:2246;s:8:"@6|2|2|2";i:2247;s:8:"@5|2|2|2";i:2248;s:8:"@6|2|1|5";i:2249;s:8:"@6|0|1|6";i:2250;s:8:"@6|0|2|2";i:2251;s:8:"@6|1|2|2";i:2252;s:8:"@5|0|1|6";i:2253;s:8:"@5|1|1|5";i:2254;s:8:"@5|2|1|6";i:2255;s:8:"@5|0|2|2";i:2256;s:8:"@5|0|1|7";i:2257;}', +'@^Mozilla/5\.0 \(X11; .; SunOS.*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:3:{s:2:"@9";i:2205;s:2:"@8";i:2211;s:2:"@7";i:2238;}', +'@^Mozilla/5\.0 \(.*IRIX64.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2235, +'@^Mozilla/5\.0 \(.*Linux.*rv\:(\d)\..*\).*Gecko/.*Thunderbird/5\..*$@'=>'a:2:{s:2:"@5";i:2258;s:2:"@2";i:2276;}', +'@^Mozilla/5\.0 \(.*Android.*Mobile.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@2|3";i:2259;s:4:"@1|6";i:2260;s:4:"@2|0";i:2262;s:4:"@2|4";i:2266;s:4:"@2|2";i:2268;s:4:"@1|7";i:2269;s:4:"@1|9";i:2270;s:4:"@2|1";i:2272;s:4:"@1|5";i:2273;s:4:"@1|8";i:2274;s:4:"@1|4";i:2275;}', +'@^Mozilla/5\.0 \(.*Android.*Tablet.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:7:{s:4:"@2|0";i:2261;s:4:"@2|3";i:2263;s:4:"@2|2";i:2264;s:4:"@1|5";i:2265;s:4:"@2|4";i:2267;s:4:"@1|9";i:2271;s:4:"@2|1";i:2277;}', +'@^Godzilla/.* \(Basic.*; .*; Commodore C\=64; .*; rv\:1\..*\).*$@'=>2278, '@^Mozilla/5\.0 \(.*X11.*Linux.*rv\:1\.9.*\).*Gecko/.*Fennec/1\..*$@'=>2279, -'@^Patwebbot \(http\://www\.herz\-power\.de/technik\.html\)$@'=>2280, -'@^Mozilla/4\.0 \(compatible; MSIE 6\.0; Bluecoat DRTR\)$@'=>2281, +'@^Mozilla/4\.0 \(compatible; MSIE 6\.0; Bluecoat DRTR\)$@'=>2280, +'@^Patwebbot \(http\://www\.herz\-power\.de/technik\.html\)$@'=>2281, '@^DataFountains/DMOZ Feature Vector Corpus Creator.*$@'=>2282, -'@^WCC Browscap Updater/0\..* \(PHP\: file_get_contents\)$@'=>2283, -'@^findfiles\.net/.* \(Robot;test_robot\@gmx\-topmail\.de\)$@'=>2284, -'@^Mozilla/5\.0 \(compatible; IPCheck Server Monitor.*\)$@'=>2285, -'@^Mozilla/5\.0 \(Windows; .; Win9(\d); .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:12:{s:4:"@8|5";i:2286;s:4:"@5|5";i:2287;s:4:"@5|8";i:2288;s:4:"@8|8";i:2289;s:4:"@8|7";i:2290;s:4:"@5|7";i:2291;s:4:"@8|6";i:2292;s:4:"@5|6";i:2293;s:4:"@5|4";i:2294;s:4:"@8|9";i:2295;s:4:"@5|9";i:2296;s:4:"@8|4";i:2297;}', -'@^Mozilla/5\.0 \(.*HP\-UX.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2298, -'@^Mozilla/5\.0 \(.*Linux.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2299, -'@^Mozilla/5\.0 \(.*SunOS.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2300, +'@^Mozilla/5\.0 \(compatible; IPCheck Server Monitor.*\)$@'=>2283, +'@^WCC Browscap Updater/0\..* \(PHP\: file_get_contents\)$@'=>2284, +'@^findfiles\.net/.* \(Robot;test_robot\@gmx\-topmail\.de\)$@'=>2285, +'@^Mozilla/5\.0 \(Windows; .; Win9(\d); .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:12:{s:4:"@5|4";i:2286;s:4:"@8|5";i:2287;s:4:"@8|9";i:2288;s:4:"@8|7";i:2289;s:4:"@5|7";i:2290;s:4:"@5|5";i:2291;s:4:"@8|4";i:2292;s:4:"@5|6";i:2293;s:4:"@8|6";i:2294;s:4:"@5|8";i:2295;s:4:"@5|9";i:2296;s:4:"@8|8";i:2297;}', +'@^Mozilla/5\.0 \(.*Linux.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2298, +'@^Mozilla/5\.0 \(.*SunOS.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2299, +'@^Mozilla/5\.0 \(.*HP\-UX.*rv\:2\.0.*\) Gecko/.* Firefox/4\.0.*$@'=>2300, '@^Mozilla/.*\(.*MSIE 10\..*Windows NT 6\.(\d).*Trident/6\.0.*\).*$@'=>'a:2:{s:2:"@2";i:2301;s:2:"@1";i:2302;}', '@^FeedHub FeedFetcher/1\.0 \(http\://www\.feedhub\.com\)$@'=>2303, -'@^Inne\: Mozilla/4\.0 \(compatible; Cerberian Drtrs.*\)$@'=>2304, -'@^Mozilla/5\.0 \(compatible; YahooSeeker/M1A1\-R2D2.*\)$@'=>2305, -'@^Mozilla/5\.0 \(compatible; BMI/.* \(Y\!J\-AGENT; 1\.0\)\)$@'=>2306, -'@^wwwster/.* \(Beta, mailto\:gue\@cis\.uni\-muenchen\.de\)$@'=>2307, -'@^gosospider Mozilla/5\.0 \(compatible; GosoSpider.*\)$@'=>2308, -'@^WebmasterWorld StickyMail Server Header Checker.*$@'=>2309, -'@^Sosospider.\(\+http\://help\.soso\.com/webspider\.htm\)$@'=>2310, +'@^Mozilla/5\.0 \(compatible; BMI/.* \(Y\!J\-AGENT; 1\.0\)\)$@'=>2304, +'@^wwwster/.* \(Beta, mailto\:gue\@cis\.uni\-muenchen\.de\)$@'=>2305, +'@^Sosospider.\(\+http\://help\.soso\.com/webspider\.htm\)$@'=>2306, +'@^gosospider Mozilla/5\.0 \(compatible; GosoSpider.*\)$@'=>2307, +'@^Inne\: Mozilla/4\.0 \(compatible; Cerberian Drtrs.*\)$@'=>2308, +'@^Mozilla/5\.0 \(compatible; YahooSeeker/M1A1\-R2D2.*\)$@'=>2309, +'@^WebmasterWorld StickyMail Server Header Checker.*$@'=>2310, '@^adidxbot/1\.1 \(.http\://search\.msn\.com/msnbot\.htm\)$@'=>2311, '@^SafariBookmarkChecker.*\(.http\://www\.coriolis\.ch/\)$@'=>2312, -'@^Mozilla/5\.0 \(.*Mac OS X.*\).*Gecko/.*Thunderbird/1(\d)\..*$@'=>'a:5:{s:2:"@4";i:2313;s:2:"@3";i:2315;s:2:"@0";i:2317;s:2:"@2";i:2318;s:2:"@1";i:2319;}', -'@^Mozilla/5\.0 \(.*Mac OS X.*\).*Gecko/.*Thunderbird/(\d)\.(\d).*$@'=>'a:2:{s:4:"@3|1";i:2314;s:4:"@1|5";i:2316;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\).*Gecko/.*Thunderbird/1(\d)\..*$@'=>'a:5:{s:2:"@0";i:2313;s:2:"@4";i:2314;s:2:"@3";i:2315;s:2:"@2";i:2316;s:2:"@1";i:2317;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\).*Gecko/.*Thunderbird/(\d)\.(\d).*$@'=>'a:2:{s:4:"@1|5";i:2318;s:4:"@3|1";i:2319;}', '@^Mozilla/.* \(compatible; MSPIE .*\..*; .*Windows CE.*\).*$@'=>2320, '@^Windows\-Live\-Social\-Object\-Extractor\-Engine/1\.0$@'=>2321, '@^Rome Client \(http\://tinyurl\.com/64t5n\) Ver\: 0\..*$@'=>2322, -'@^UniversalFeedParser/4\..* \+http\://feedparser\.org/$@'=>2323, -'@^Mozilla/4\.0 \(compatible; Y\!J; for robot study.*\)$@'=>2324, -'@^Mozilla/5\.0 \(compatible; FirstSearchBot/1\.0; .*\)$@'=>2325, -'@^Mozilla/5\.0 \(X11; U; Linux.*\) Gecko/.* Galeon/(\d)\..*$@'=>'a:2:{s:2:"@1";i:2326;s:2:"@2";i:2328;}', -'@^Mozilla/5\.0 \(X11; U; Linux.*\) Gecko/.* Fennec/(\d)\..*$@'=>'a:4:{s:2:"@5";i:2327;s:2:"@7";i:2329;s:2:"@6";i:2330;s:2:"@4";i:2331;}', -'@^Mozilla/.*\(compatible; MSIE (\d)\..*Windows NT (\d)\.(\d).*\).*$@'=>'a:12:{s:6:"@5|3|5";i:2332;s:6:"@4|3|1";i:2333;s:6:"@4|3|5";i:2334;s:6:"@4|5|0";i:2335;s:6:"@4|4|0";i:2336;s:6:"@5|3|1";i:2337;s:6:"@5|4|0";i:2338;s:6:"@5|5|2";i:2339;s:6:"@5|6|1";i:2340;s:6:"@5|6|0";i:2341;s:6:"@5|5|1";i:2342;s:6:"@5|5|0";i:2343;}', -'@^Mozilla/5\.0 \(.*Mac OS X.*\).*Gecko/.*Thunderbird/(\d)\..*$@'=>'a:7:{s:2:"@3";i:2344;s:2:"@8";i:2345;s:2:"@6";i:2346;s:2:"@7";i:2347;s:2:"@1";i:2348;s:2:"@9";i:2349;s:2:"@2";i:2350;}', -'@^Microsoft NetShow\(TM\) Player with RealVideo\(R\)$@'=>2351, -'@^Mozilla/4\.0 \(compatible; MSIE 4\.01; Windows95\)$@'=>2352, +'@^Mozilla/4\.0 \(compatible; Y\!J; for robot study.*\)$@'=>2323, +'@^Mozilla/5\.0 \(compatible; FirstSearchBot/1\.0; .*\)$@'=>2324, +'@^UniversalFeedParser/4\..* \+http\://feedparser\.org/$@'=>2325, +'@^Mozilla/5\.0 \(X11; U; Linux.*\) Gecko/.* Galeon/(\d)\..*$@'=>'a:2:{s:2:"@1";i:2326;s:2:"@2";i:2327;}', +'@^Mozilla/5\.0 \(X11; U; Linux.*\) Gecko/.* Fennec/(\d)\..*$@'=>'a:4:{s:2:"@5";i:2328;s:2:"@4";i:2329;s:2:"@6";i:2330;s:2:"@7";i:2331;}', +'@^Mozilla/.*\(compatible; MSIE (\d)\..*Windows NT (\d)\.(\d).*\).*$@'=>'a:12:{s:6:"@5|3|5";i:2332;s:6:"@4|3|1";i:2333;s:6:"@4|3|5";i:2334;s:6:"@4|4|0";i:2335;s:6:"@4|5|0";i:2336;s:6:"@5|3|1";i:2337;s:6:"@5|4|0";i:2338;s:6:"@5|5|0";i:2339;s:6:"@5|5|1";i:2340;s:6:"@5|5|2";i:2341;s:6:"@5|6|0";i:2342;s:6:"@5|6|1";i:2343;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\).*Gecko/.*Thunderbird/(\d)\..*$@'=>'a:7:{s:2:"@7";i:2344;s:2:"@1";i:2345;s:2:"@2";i:2346;s:2:"@9";i:2347;s:2:"@6";i:2348;s:2:"@3";i:2349;s:2:"@8";i:2350;}', +'@^Mozilla/4\.0 \(compatible; MSIE 4\.01; Windows95\)$@'=>2351, +'@^Microsoft NetShow\(TM\) Player with RealVideo\(R\)$@'=>2352, '@^mp3Spider cn\-search\-devel at yahoo\-inc dot com$@'=>2353, -'@^Mozilla/5\.0 \(compatible; YandexImageResizer/.*\)$@'=>2354, -'@^Mozilla/.* \(Win98; I\) IBrowse/2\.(\d) \(AmigaOS 3\.1\)$@'=>'a:3:{s:2:"@1";i:2355;s:2:"@3";i:2357;s:2:"@2";i:2360;}', -'@^exactseek\-pagereaper\-.* \(crawler\@exactseek\.com\)$@'=>2356, -'@^Mozilla/5\.0 \(compatible; Yahoo\! SearchMonkey.*\)$@'=>2358, -'@^Made by ZmEu \@ WhiteHat v0\..* \(www\.WhiteHat\.ro\)$@'=>2359, +'@^Mozilla/.* \(Win98; I\) IBrowse/2\.(\d) \(AmigaOS 3\.1\)$@'=>'a:3:{s:2:"@2";i:2354;s:2:"@1";i:2355;s:2:"@3";i:2356;}', +'@^Made by ZmEu \@ WhiteHat v0\..* \(www\.WhiteHat\.ro\)$@'=>2357, +'@^Mozilla/5\.0 \(compatible; YandexImageResizer/.*\)$@'=>2358, +'@^Mozilla/5\.0 \(compatible; Yahoo\! SearchMonkey.*\)$@'=>2359, +'@^exactseek\-pagereaper\-.* \(crawler\@exactseek\.com\)$@'=>2360, '@^Mozilla/4\.0 \(compatible; MSIE .\.0; SaferSurf.*\)$@'=>2361, -'@^Liferea/1\..* \(Linux; .*; http\://liferea\.sf\.net/\)$@'=>2362, -'@^Mozilla/5\.0 \(SnapPreviewBot\) Gecko/.* Firefox/.*$@'=>2363, -'@^Mozilla/5\.0 \(X11; .*FreeBSD.*; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@8";i:2364;s:2:"@4";i:2367;s:2:"@5";i:2368;s:2:"@6";i:2371;s:2:"@7";i:2373;s:2:"@9";i:2375;}', -'@^Mozilla/5\.0 \(X11; .*OpenBSD.*; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@9";i:2365;s:2:"@8";i:2366;s:2:"@4";i:2369;s:2:"@5";i:2370;s:2:"@6";i:2372;s:2:"@7";i:2374;}', +'@^Mozilla/5\.0 \(SnapPreviewBot\) Gecko/.* Firefox/.*$@'=>2362, +'@^Liferea/1\..* \(Linux; .*; http\://liferea\.sf\.net/\)$@'=>2363, +'@^Mozilla/5\.0 \(X11; .*OpenBSD.*; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@8";i:2364;s:2:"@9";i:2365;s:2:"@4";i:2366;s:2:"@7";i:2369;s:2:"@6";i:2374;s:2:"@5";i:2375;}', +'@^Mozilla/5\.0 \(X11; .*FreeBSD.*; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@4";i:2367;s:2:"@9";i:2368;s:2:"@8";i:2370;s:2:"@5";i:2371;s:2:"@6";i:2372;s:2:"@7";i:2373;}', '@^Mozilla/2\.0 \(compatible; NEWT ActiveX; Win32\)$@'=>2376, '@^Mozilla/4\.0 \(compatible; Trend Micro tmdr 1\..*$@'=>2377, -'@^IRLbot/(\d)\.0 \(.*http\://irl\.cs\.tamu\.edu/crawler.*\)$@'=>'a:3:{s:2:"@2";i:2378;s:2:"@1";i:2379;s:2:"@3";i:2380;}', -'@^Mozilla/.*\(compatible; MSIE (\d)\..*Windows 3\.11.*\).*$@'=>'a:2:{s:2:"@4";i:2381;s:2:"@5";i:2385;}', -'@^Mozilla/5\.0 \(.*Mac OS X.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@1";i:2382;s:2:"@0";i:2383;s:2:"@2";i:2384;s:2:"@3";i:2386;}', -'@^Mozilla/5\.0 \(X11; .; .*\) Gecko/.* Netscape6/6\..*$@'=>2387, -'@^Mozilla/5\.0 \(X11; .; .*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:3:{s:2:"@8";i:2388;s:2:"@9";i:2390;s:2:"@7";i:2392;}', -'@^Mozilla/5\.0 \(.*Linux.*\).*Gecko/.*Thunderbird/1(\d)\..*$@'=>'a:5:{s:2:"@4";i:2389;s:2:"@3";i:2393;s:2:"@1";i:2394;s:2:"@0";i:2395;s:2:"@2";i:2396;}', -'@^Mozilla/5\.0 \(.*Linux.*\).*Gecko/.*Thunderbird/(\d)\.(\d).*$@'=>'a:2:{s:4:"@3|1";i:2391;s:4:"@1|5";i:2397;}', +'@^IRLbot/(\d)\.0 \(.*http\://irl\.cs\.tamu\.edu/crawler.*\)$@'=>'a:3:{s:2:"@1";i:2378;s:2:"@2";i:2379;s:2:"@3";i:2380;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@3";i:2381;s:2:"@2";i:2385;s:2:"@1";i:2386;s:2:"@0";i:2387;}', +'@^Mozilla/5\.0 \(X11; .; .*\) Gecko/.* Netscape6/6\..*$@'=>2382, +'@^Mozilla/.*\(compatible; MSIE (\d)\..*Windows 3\.11.*\).*$@'=>'a:2:{s:2:"@5";i:2383;s:2:"@4";i:2384;}', +'@^Mozilla/5\.0 \(.*Linux.*\).*Gecko/.*Thunderbird/1(\d)\..*$@'=>'a:5:{s:2:"@4";i:2388;s:2:"@3";i:2390;s:2:"@0";i:2392;s:2:"@2";i:2393;s:2:"@1";i:2396;}', +'@^Mozilla/5\.0 \(.*Linux.*\).*Gecko/.*Thunderbird/(\d)\.(\d).*$@'=>'a:2:{s:4:"@1|5";i:2389;s:4:"@3|1";i:2395;}', +'@^Mozilla/5\.0 \(X11; .; .*\) Gecko/.* Netscape.*/(\d)\..*$@'=>'a:3:{s:2:"@9";i:2391;s:2:"@8";i:2394;s:2:"@7";i:2397;}', '@^CipinetBot \(http\://www\.cipinet\.com/bot\.html\)$@'=>2398, -'@^Mozilla/4\.0 WebTV/2\.(\d).*\(compatible; MSIE (\d)\.0\)$@'=>'a:10:{s:4:"@4|3";i:2399;s:4:"@3|3";i:2400;s:4:"@5|4";i:2401;s:4:"@7|4";i:2402;s:4:"@8|4";i:2403;s:4:"@2|3";i:2404;s:4:"@1|3";i:2405;s:4:"@0|3";i:2409;s:4:"@9|4";i:2410;s:4:"@6|4";i:2411;}', -'@^Mozilla/5\.0 \(compatible; Exabot\-Images/3\.0.*\)$@'=>2406, -'@^Mozilla/5\.0 \(compatible; BecomeJPBot/2\.3; .*\)$@'=>2407, -'@^Browser Capabilities Project \- PHP Browscap.*$@'=>2408, -'@^Tasap\-image\-robot/0\..* \(http\://www\.tasap\.com\)$@'=>2412, -'@^inetbot/.* \(.http\://www\.inetbot\.com/bot\.html\)$@'=>2413, -'@^Mozilla/4\.0 \(compatible; Scumbot/.*; Linux/.*\)$@'=>2414, -'@^GOFORITBOT \(.http\://www\.goforit\.com/about/.\)$@'=>2415, -'@^psbot/.* \(.http\://www\.picsearch\.com/bot\.html\)$@'=>2416, -'@^Mozilla/.*\(compatible; MSIE (\d)\..*Mac_PowerPC.*\).*$@'=>'a:2:{s:2:"@4";i:2417;s:2:"@5";i:2419;}', -'@^Mozilla/5\.0 \(.*Mac OS X.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@7";i:2418;s:2:"@8";i:2422;s:2:"@9";i:2424;s:2:"@6";i:2427;}', -'@^Mozilla/.*\(compatible; MSIE (\d)\..*Windows 3\.1.*\).*$@'=>'a:2:{s:2:"@5";i:2420;s:2:"@4";i:2421;}', -'@^Mozilla/5\.0 \(.*OpenBSD.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@0";i:2423;s:2:"@2";i:2425;s:2:"@3";i:2426;s:2:"@1";i:2428;}', -'@^Mozilla/5\.0 \(X11; .*Linux.*; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@8";i:2429;s:2:"@4";i:2436;s:2:"@6";i:2454;s:2:"@7";i:2458;s:2:"@5";i:2468;s:2:"@9";i:2484;}', -'@^Opera/9\.80.*\(.*Windows NT (\d)\.(\d).*\).*Version/12\.1(\d).*$@'=>'a:42:{s:6:"@6|0|1";i:2430;s:6:"@5|1|1";i:2431;s:6:"@5|2|1";i:2432;s:6:"@6|1|6";i:2433;s:6:"@6|1|1";i:2434;s:6:"@4|0|6";i:2438;s:6:"@5|0|6";i:2440;s:6:"@5|1|6";i:2441;s:6:"@5|0|1";i:2442;s:6:"@4|0|3";i:2444;s:6:"@6|0|6";i:2445;s:6:"@5|2|6";i:2446;s:6:"@4|0|5";i:2449;s:6:"@5|0|0";i:2450;s:6:"@4|0|0";i:2451;s:6:"@5|1|0";i:2452;s:6:"@5|2|0";i:2453;s:6:"@6|1|3";i:2456;s:6:"@6|0|3";i:2457;s:6:"@5|0|3";i:2460;s:6:"@5|1|3";i:2461;s:6:"@5|2|3";i:2462;s:6:"@6|0|0";i:2463;s:6:"@5|0|5";i:2472;s:6:"@6|1|5";i:2473;s:6:"@6|1|0";i:2474;s:6:"@6|0|5";i:2475;s:6:"@5|2|5";i:2476;s:6:"@5|1|5";i:2477;s:6:"@4|0|1";i:2478;s:6:"@4|0|4";i:2480;s:6:"@5|2|2";i:2481;s:6:"@6|1|2";i:2485;s:6:"@5|0|4";i:2489;s:6:"@6|1|4";i:2490;s:6:"@4|0|2";i:2492;s:6:"@6|0|4";i:2493;s:6:"@5|0|2";i:2494;s:6:"@5|1|4";i:2495;s:6:"@5|2|4";i:2496;s:6:"@5|1|2";i:2497;s:6:"@6|0|2";i:2499;}', -'@^Mozilla/5\.0 \(X11; .*SunOS.*; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@9";i:2435;s:2:"@8";i:2443;s:2:"@4";i:2448;s:2:"@6";i:2455;s:2:"@7";i:2459;s:2:"@5";i:2467;}', -'@^Mozilla/5\.0 \(.*Mac OS X.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@2|4";i:2437;s:4:"@2|0";i:2439;s:4:"@1|5";i:2447;s:4:"@1|9";i:2464;s:4:"@1|8";i:2465;s:4:"@2|1";i:2466;s:4:"@1|6";i:2469;s:4:"@1|7";i:2479;s:4:"@2|2";i:2487;s:4:"@2|3";i:2488;s:4:"@1|4";i:2491;}', -'@^Mozilla/5\.0 \(.*Linux.*\).*Gecko/.*Thunderbird/(\d)\..*$@'=>'a:7:{s:2:"@1";i:2470;s:2:"@9";i:2471;s:2:"@3";i:2482;s:2:"@6";i:2483;s:2:"@7";i:2486;s:2:"@8";i:2498;s:2:"@2";i:2500;}', +'@^Mozilla/5\.0 \(compatible; Exabot\-Images/3\.0.*\)$@'=>2399, +'@^Tasap\-image\-robot/0\..* \(http\://www\.tasap\.com\)$@'=>2400, +'@^Mozilla/4\.0 WebTV/2\.(\d).*\(compatible; MSIE (\d)\.0\)$@'=>'a:10:{s:4:"@3|3";i:2401;s:4:"@2|3";i:2402;s:4:"@4|3";i:2403;s:4:"@5|4";i:2404;s:4:"@6|4";i:2405;s:4:"@7|4";i:2406;s:4:"@1|3";i:2407;s:4:"@8|4";i:2408;s:4:"@0|3";i:2409;s:4:"@9|4";i:2410;}', +'@^Mozilla/5\.0 \(compatible; BecomeJPBot/2\.3; .*\)$@'=>2411, +'@^Browser Capabilities Project \- PHP Browscap.*$@'=>2412, +'@^GOFORITBOT \(.http\://www\.goforit\.com/about/.\)$@'=>2413, +'@^psbot/.* \(.http\://www\.picsearch\.com/bot\.html\)$@'=>2414, +'@^inetbot/.* \(.http\://www\.inetbot\.com/bot\.html\)$@'=>2415, +'@^Mozilla/4\.0 \(compatible; Scumbot/.*; Linux/.*\)$@'=>2416, +'@^Mozilla/5\.0 \(.*Mac OS X.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@6";i:2417;s:2:"@8";i:2418;s:2:"@9";i:2420;s:2:"@7";i:2428;}', +'@^Mozilla/5\.0 \(.*OpenBSD.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@1";i:2419;s:2:"@3";i:2421;s:2:"@0";i:2422;s:2:"@2";i:2423;}', +'@^Mozilla/.*\(compatible; MSIE (\d)\..*Mac_PowerPC.*\).*$@'=>'a:2:{s:2:"@4";i:2424;s:2:"@5";i:2426;}', +'@^Mozilla/.*\(compatible; MSIE (\d)\..*Windows 3\.1.*\).*$@'=>'a:2:{s:2:"@4";i:2425;s:2:"@5";i:2427;}', +'@^Mozilla/5\.0 \(.*Mac OS X.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@2|1";i:2429;s:4:"@2|0";i:2433;s:4:"@2|3";i:2445;s:4:"@1|5";i:2451;s:4:"@1|4";i:2459;s:4:"@1|6";i:2461;s:4:"@2|4";i:2462;s:4:"@1|9";i:2475;s:4:"@2|2";i:2476;s:4:"@1|8";i:2479;s:4:"@1|7";i:2499;}', +'@^Mozilla/5\.0 \(.*Linux.*\).*Gecko/.*Thunderbird/(\d)\..*$@'=>'a:7:{s:2:"@2";i:2430;s:2:"@3";i:2432;s:2:"@1";i:2454;s:2:"@6";i:2472;s:2:"@7";i:2473;s:2:"@8";i:2474;s:2:"@9";i:2481;}', +'@^Opera/9\.80.*\(.*Windows NT (\d)\.(\d).*\).*Version/12\.1(\d).*$@'=>'a:42:{s:6:"@5|0|6";i:2431;s:6:"@4|0|2";i:2434;s:6:"@5|1|6";i:2435;s:6:"@5|2|3";i:2436;s:6:"@5|1|4";i:2437;s:6:"@5|0|4";i:2438;s:6:"@4|0|4";i:2439;s:6:"@5|2|1";i:2440;s:6:"@6|0|1";i:2441;s:6:"@6|1|1";i:2442;s:6:"@6|1|3";i:2447;s:6:"@5|0|2";i:2449;s:6:"@6|0|3";i:2450;s:6:"@6|0|4";i:2452;s:6:"@5|1|3";i:2453;s:6:"@5|0|3";i:2456;s:6:"@4|0|6";i:2458;s:6:"@4|0|3";i:2460;s:6:"@6|1|2";i:2463;s:6:"@6|0|2";i:2464;s:6:"@5|2|2";i:2466;s:6:"@5|2|6";i:2467;s:6:"@5|2|4";i:2468;s:6:"@6|1|4";i:2469;s:6:"@5|2|0";i:2470;s:6:"@6|0|6";i:2471;s:6:"@6|1|5";i:2477;s:6:"@6|1|6";i:2478;s:6:"@4|0|0";i:2480;s:6:"@5|1|2";i:2482;s:6:"@5|0|0";i:2483;s:6:"@5|1|1";i:2484;s:6:"@5|1|0";i:2485;s:6:"@6|0|0";i:2486;s:6:"@6|1|0";i:2487;s:6:"@5|0|1";i:2488;s:6:"@4|0|1";i:2489;s:6:"@4|0|5";i:2494;s:6:"@5|0|5";i:2495;s:6:"@5|1|5";i:2496;s:6:"@5|2|5";i:2497;s:6:"@6|0|5";i:2498;}', +'@^Mozilla/5\.0 \(X11; .*Linux.*; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@6";i:2443;s:2:"@7";i:2446;s:2:"@8";i:2455;s:2:"@9";i:2465;s:2:"@5";i:2491;s:2:"@4";i:2500;}', +'@^Mozilla/5\.0 \(X11; .*SunOS.*; .*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@6";i:2444;s:2:"@7";i:2448;s:2:"@8";i:2457;s:2:"@5";i:2490;s:2:"@4";i:2492;s:2:"@9";i:2493;}', '@^ddetailsbot \(http\://www\.displaydetails\.com\)$@'=>2501, '@^Susie \(http\://www\.sync2it\.com/bms/susie\.php$@'=>2502, -'@^Mozilla/5\.0 \(compatible;YodaoBot\-Image/1\..*\)$@'=>2503, -'@^Mozilla/5\.0 \(compatible; BMC/.* \(Y\!J\-AGENT\)\)$@'=>2504, -'@^Mozilla/5\.0 \(compatible; YandexWebmaster/.*\)$@'=>2505, -'@^UofTDB_experiment.* \(leehyun\@cs\.toronto\.edu\)$@'=>2506, -'@^Mozilla/5\.0 \(compatible; Yahoo\! Verifier/.*\)$@'=>2507, -'@^Mozilla/5\.0 \(compatible; BMF/.* \(Y\!J\-AGENT\)\)$@'=>2508, -'@^Mozilla/3\.0 WebTV/1\..*\(compatible; MSIE 2\.0\)$@'=>2509, -'@^CMS crawler \(.http\://buytaert\.net/crawler/\)$@'=>2510, -'@^Mozilla/3\.01 \(compatible; Netbox/.*; Linux.*\)$@'=>2511, +'@^Mozilla/3\.0 WebTV/1\..*\(compatible; MSIE 2\.0\)$@'=>2503, +'@^UofTDB_experiment.* \(leehyun\@cs\.toronto\.edu\)$@'=>2504, +'@^CMS crawler \(.http\://buytaert\.net/crawler/\)$@'=>2505, +'@^Mozilla/5\.0 \(compatible; Yahoo\! Verifier/.*\)$@'=>2506, +'@^Mozilla/5\.0 \(compatible;YodaoBot\-Image/1\..*\)$@'=>2507, +'@^Mozilla/5\.0 \(compatible; BMC/.* \(Y\!J\-AGENT\)\)$@'=>2508, +'@^Mozilla/5\.0 \(compatible; BMF/.* \(Y\!J\-AGENT\)\)$@'=>2509, +'@^Mozilla/5\.0 \(compatible; YandexWebmaster/.*\)$@'=>2510, +'@^Mozilla/4\.0\(.compatible; MSIE 6\.0; Qihoo .*\)$@'=>2511, '@^Mozilla/5\.0 \(compatible; Butterfly/1\.0; .*\).*$@'=>2512, -'@^Mozilla/4\.0\(.compatible; MSIE 6\.0; Qihoo .*\)$@'=>2513, +'@^Mozilla/3\.01 \(compatible; Netbox/.*; Linux.*\)$@'=>2513, '@^Mozilla/.\.0 \(compatible; Ask Jeeves/Teoma.*\)$@'=>2514, -'@^Mozilla/5\.0 \(.*OpenBSD.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@8";i:2515;s:2:"@7";i:2522;s:2:"@6";i:2525;s:2:"@9";i:2526;}', -'@^Mozilla/.*\(compatible; MSIE (\d)\..*Windows 9(\d).*\).*$@'=>'a:4:{s:4:"@5|8";i:2516;s:4:"@4|8";i:2518;s:4:"@5|5";i:2519;s:4:"@4|5";i:2527;}', -'@^Mozilla/5\.0 \(.*IRIX64.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@3";i:2517;s:2:"@2";i:2520;s:2:"@0";i:2521;s:2:"@1";i:2524;}', -'@^.*\(compatible; MSIE .*\..*; Windows CE; PPC; .*\)$@'=>2523, -'@^Mozilla/5\.0 \(.*OpenBSD.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@1|5";i:2528;s:4:"@1|7";i:2530;s:4:"@2|2";i:2531;s:4:"@2|3";i:2532;s:4:"@2|4";i:2536;s:4:"@2|1";i:2545;s:4:"@1|9";i:2547;s:4:"@2|0";i:2553;s:4:"@1|8";i:2554;s:4:"@1|6";i:2561;s:4:"@1|4";i:2568;}', -'@^Opera/9\.80.*\(.*Windows NT (\d)\.(\d).*\).*Version/11\.(\d).*$@'=>'a:18:{s:6:"@5|1|6";i:2529;s:6:"@5|0|1";i:2533;s:6:"@5|1|1";i:2534;s:6:"@5|2|6";i:2540;s:6:"@6|0|6";i:2544;s:6:"@6|1|6";i:2548;s:6:"@4|0|5";i:2549;s:6:"@5|0|5";i:2550;s:6:"@4|0|1";i:2551;s:6:"@5|2|1";i:2556;s:6:"@4|0|6";i:2560;s:6:"@5|0|6";i:2562;s:6:"@6|0|5";i:2563;s:6:"@5|2|5";i:2564;s:6:"@5|1|5";i:2565;s:6:"@6|1|5";i:2567;s:6:"@6|1|1";i:2569;s:6:"@6|0|1";i:2570;}', -'@^Mozilla/5\.0 \(.*FreeBSD.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:15:{s:4:"@1|3";i:2535;s:4:"@1|2";i:2537;s:4:"@2|3";i:2538;s:4:"@1|4";i:2539;s:4:"@1|0";i:2541;s:4:"@2|2";i:2542;s:4:"@1|6";i:2543;s:4:"@1|1";i:2546;s:4:"@1|9";i:2552;s:4:"@1|5";i:2555;s:4:"@2|0";i:2557;s:4:"@1|7";i:2558;s:4:"@2|1";i:2559;s:4:"@1|8";i:2566;s:4:"@2|4";i:2571;}', -'@^ZIBB Crawler \(email address / WWW address\)$@'=>2572, -'@^Mozilla/4\.0 \(fantomas shadowMaker Browser\)$@'=>2573, -'@^Tecomi Bot \(http\://www\.tecomi\.com/bot\.htm\)$@'=>2574, -'@^HTML2JPG Blackbox, http\://www\.html2jpg\.com$@'=>2575, +'@^Mozilla/5\.0 \(.*OpenBSD.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@7";i:2515;s:2:"@6";i:2516;s:2:"@8";i:2517;s:2:"@9";i:2524;}', +'@^Mozilla/5\.0 \(.*IRIX64.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@2";i:2518;s:2:"@0";i:2521;s:2:"@1";i:2525;s:2:"@3";i:2526;}', +'@^Mozilla/.*\(compatible; MSIE (\d)\..*Windows 9(\d).*\).*$@'=>'a:4:{s:4:"@4|5";i:2519;s:4:"@4|8";i:2520;s:4:"@5|5";i:2522;s:4:"@5|8";i:2523;}', +'@^.*\(compatible; MSIE .*\..*; Windows CE; PPC; .*\)$@'=>2527, +'@^Mozilla/5\.0 \(.*FreeBSD.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:15:{s:4:"@1|8";i:2528;s:4:"@1|3";i:2530;s:4:"@1|5";i:2537;s:4:"@1|2";i:2541;s:4:"@1|6";i:2545;s:4:"@1|1";i:2549;s:4:"@2|3";i:2551;s:4:"@2|0";i:2552;s:4:"@2|1";i:2553;s:4:"@1|4";i:2554;s:4:"@2|4";i:2557;s:4:"@1|0";i:2563;s:4:"@1|7";i:2566;s:4:"@2|2";i:2568;s:4:"@1|9";i:2570;}', +'@^Opera/9\.80.*\(.*Windows NT (\d)\.(\d).*\).*Version/11\.(\d).*$@'=>'a:18:{s:6:"@6|1|1";i:2529;s:6:"@4|0|6";i:2532;s:6:"@4|0|5";i:2533;s:6:"@5|0|6";i:2536;s:6:"@6|1|5";i:2538;s:6:"@6|0|5";i:2542;s:6:"@5|2|5";i:2543;s:6:"@5|1|5";i:2544;s:6:"@5|1|6";i:2546;s:6:"@5|2|1";i:2547;s:6:"@6|0|1";i:2548;s:6:"@6|1|6";i:2560;s:6:"@4|0|1";i:2561;s:6:"@6|0|6";i:2562;s:6:"@5|0|1";i:2564;s:6:"@5|1|1";i:2565;s:6:"@5|2|6";i:2569;s:6:"@5|0|5";i:2571;}', +'@^Mozilla/5\.0 \(.*OpenBSD.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@1|8";i:2531;s:4:"@1|5";i:2534;s:4:"@2|2";i:2535;s:4:"@2|3";i:2539;s:4:"@1|7";i:2540;s:4:"@2|0";i:2550;s:4:"@1|6";i:2555;s:4:"@2|1";i:2556;s:4:"@1|4";i:2558;s:4:"@2|4";i:2559;s:4:"@1|9";i:2567;}', +'@^Mozilla/4\.0 \(fantomas shadowMaker Browser\)$@'=>2572, +'@^HTML2JPG Blackbox, http\://www\.html2jpg\.com$@'=>2573, +'@^ZIBB Crawler \(email address / WWW address\)$@'=>2574, +'@^Tecomi Bot \(http\://www\.tecomi\.com/bot\.htm\)$@'=>2575, '@^Mozilla/5\.0 \(compatible; Quantcastbot/1\..*\)$@'=>2576, -'@^Mozilla/4\.0 \(compatible; Cerberian Drtrs.*\)$@'=>2577, -'@^Mozilla/5\.0 \(compatible; Viralheat Bot/.*\) $@'=>2578, -'@^Mozilla/5\.0 \(compatible; archive\.org_bot.*\)$@'=>2579, -'@^Mozilla/4\.0 \(compatible; ChangeDetection/.*$@'=>2580, -'@^WAP_Browser/5\.0 \(compatible; YodaoBot/1\..*\)$@'=>2581, -'@^Mozilla/5\.0 \(compatible; YandexFavicons/.*\)$@'=>2582, -'@^Mozilla/5\.0 \(compatible; BuzzRankingBot/.*\)$@'=>2583, -'@^Mozilla/5\.0 \(compatible; YandexZakladki/.*\)$@'=>2584, +'@^Mozilla/5\.0 \(compatible; YandexFavicons/.*\)$@'=>2577, +'@^Mozilla/4\.0 \(compatible; Cerberian Drtrs.*\)$@'=>2578, +'@^Mozilla/4\.0 \(compatible; ChangeDetection/.*$@'=>2579, +'@^WAP_Browser/5\.0 \(compatible; YodaoBot/1\..*\)$@'=>2580, +'@^Mozilla/5\.0 \(compatible; YandexZakladki/.*\)$@'=>2581, +'@^Mozilla/5\.0 \(compatible; Viralheat Bot/.*\) $@'=>2582, +'@^Mozilla/5\.0 \(compatible; archive\.org_bot.*\)$@'=>2583, +'@^Mozilla/5\.0 \(compatible; BuzzRankingBot/.*\)$@'=>2584, '@^NextGenSearchBot.*\(for information visit .*\)$@'=>2585, -'@^Mozilla/5\.0 \(.*SunOS.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@1";i:2586;s:2:"@3";i:2593;s:2:"@2";i:2595;s:2:"@0";i:2600;}', -'@^Mozilla/5\.0 \(.*IRIX64.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@7";i:2587;s:2:"@6";i:2588;s:2:"@9";i:2598;s:2:"@8";i:2601;}', -'@^Mozilla/5\.0 \(.*HP\-UX.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@3";i:2589;s:2:"@2";i:2591;s:2:"@1";i:2596;s:2:"@0";i:2597;}', -'@^Mozilla/5\.0 \(.*Linux.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@0";i:2590;s:2:"@1";i:2592;s:2:"@3";i:2594;s:2:"@2";i:2599;}', -'@^Opera/9\.80.*\(.*Windows NT (\d)\.(\d).*\).*Version/1(\d)\..*$@'=>'a:18:{s:6:"@6|0|1";i:2602;s:6:"@6|1|2";i:2603;s:6:"@5|1|0";i:2606;s:6:"@5|0|0";i:2607;s:6:"@6|1|1";i:2608;s:6:"@6|0|2";i:2611;s:6:"@6|0|0";i:2616;s:6:"@6|1|0";i:2617;s:6:"@4|0|0";i:2618;s:6:"@5|2|0";i:2619;s:6:"@5|1|2";i:2622;s:6:"@5|2|2";i:2623;s:6:"@4|0|2";i:2625;s:6:"@5|0|1";i:2626;s:6:"@5|1|1";i:2627;s:6:"@5|2|1";i:2630;s:6:"@5|0|2";i:2638;s:6:"@4|0|1";i:2639;}', -'@^Opera/9\.80.*\(.*Windows 2000.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@0";i:2604;s:2:"@4";i:2614;s:2:"@3";i:2621;s:2:"@6";i:2624;s:2:"@1";i:2628;s:2:"@2";i:2629;s:2:"@5";i:2632;}', -'@^Mozilla/5\.0 \(.*IRIX64.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@1|6";i:2605;s:4:"@1|5";i:2610;s:4:"@2|1";i:2615;s:4:"@1|4";i:2631;s:4:"@2|2";i:2633;s:4:"@1|8";i:2634;s:4:"@1|7";i:2635;s:4:"@2|4";i:2636;s:4:"@2|0";i:2637;s:4:"@1|9";i:2640;s:4:"@2|3";i:2641;}', -'@^Mozilla/5\.0 \(.*FreeBSD.*\).*Gecko/.*Firefox/(\d)\..*$@'=>'a:4:{s:2:"@9";i:2609;s:2:"@8";i:2612;s:2:"@7";i:2613;s:2:"@6";i:2620;}', -'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Windows NT (\d)\.(\d).*\).*$@'=>'a:42:{s:6:"@6|6|1";i:2642;s:6:"@6|5|0";i:2643;s:6:"@6|4|0";i:2644;s:6:"@6|5|2";i:2645;s:6:"@6|6|0";i:2646;s:6:"@6|5|1";i:2647;s:6:"@4|5|1";i:2648;s:6:"@2|4|0";i:2649;s:6:"@2|5|0";i:2650;s:6:"@2|5|1";i:2651;s:6:"@2|5|2";i:2652;s:6:"@0|4|0";i:2653;s:6:"@3|5|2";i:2654;s:6:"@3|6|1";i:2655;s:6:"@3|6|0";i:2656;s:6:"@5|5|2";i:2657;s:6:"@2|6|0";i:2658;s:6:"@2|6|1";i:2659;s:6:"@0|5|2";i:2660;s:6:"@3|5|0";i:2661;s:6:"@3|4|0";i:2662;s:6:"@5|6|1";i:2663;s:6:"@3|5|1";i:2664;s:6:"@0|6|0";i:2665;s:6:"@0|5|0";i:2666;s:6:"@0|5|1";i:2667;s:6:"@0|6|1";i:2668;s:6:"@5|5|0";i:2669;s:6:"@5|5|1";i:2670;s:6:"@1|6|0";i:2671;s:6:"@4|6|1";i:2672;s:6:"@4|4|0";i:2673;s:6:"@1|5|2";i:2674;s:6:"@1|5|1";i:2675;s:6:"@5|4|0";i:2676;s:6:"@1|4|0";i:2677;s:6:"@1|5|0";i:2678;s:6:"@4|5|0";i:2679;s:6:"@1|6|1";i:2680;s:6:"@5|6|0";i:2681;s:6:"@4|6|0";i:2682;s:6:"@4|5|2";i:2683;}', -'@^Mozilla/.\..*\(.*Windows NT (\d)\.(\d).*\).*Opera.12\.1(\d).*$@'=>'a:42:{s:6:"@5|0|3";i:2684;s:6:"@6|0|6";i:2685;s:6:"@6|1|3";i:2686;s:6:"@5|2|3";i:2687;s:6:"@4|0|3";i:2688;s:6:"@6|0|3";i:2689;s:6:"@5|1|3";i:2690;s:6:"@5|2|6";i:2691;s:6:"@6|0|0";i:2692;s:6:"@5|2|0";i:2693;s:6:"@4|0|0";i:2694;s:6:"@5|0|0";i:2695;s:6:"@5|1|6";i:2696;s:6:"@5|1|0";i:2697;s:6:"@6|1|0";i:2698;s:6:"@6|1|6";i:2699;s:6:"@6|1|1";i:2700;s:6:"@4|0|4";i:2701;s:6:"@5|1|4";i:2702;s:6:"@6|1|5";i:2703;s:6:"@5|0|6";i:2704;s:6:"@6|1|2";i:2705;s:6:"@5|2|1";i:2706;s:6:"@4|0|1";i:2707;s:6:"@5|0|1";i:2708;s:6:"@5|1|1";i:2709;s:6:"@6|0|5";i:2710;s:6:"@5|2|5";i:2711;s:6:"@5|1|2";i:2712;s:6:"@5|0|4";i:2713;s:6:"@5|2|2";i:2714;s:6:"@6|0|2";i:2715;s:6:"@5|0|2";i:2716;s:6:"@4|0|2";i:2717;s:6:"@5|1|5";i:2718;s:6:"@5|0|5";i:2719;s:6:"@4|0|5";i:2720;s:6:"@5|2|4";i:2721;s:6:"@6|0|1";i:2722;s:6:"@6|0|4";i:2723;s:6:"@6|1|4";i:2724;s:6:"@4|0|6";i:2725;}', +'@^Mozilla/5\.0 \(.*HP\-UX.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@0";i:2586;s:2:"@2";i:2592;s:2:"@3";i:2595;s:2:"@1";i:2601;}', +'@^Mozilla/5\.0 \(.*SunOS.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@3";i:2587;s:2:"@0";i:2593;s:2:"@2";i:2594;s:2:"@1";i:2597;}', +'@^Mozilla/5\.0 \(.*IRIX64.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@8";i:2588;s:2:"@6";i:2589;s:2:"@7";i:2590;s:2:"@9";i:2600;}', +'@^Mozilla/5\.0 \(.*Linux.*\) Gecko/.* Firefox/1(\d)\..*$@'=>'a:4:{s:2:"@0";i:2591;s:2:"@3";i:2596;s:2:"@1";i:2598;s:2:"@2";i:2599;}', +'@^Mozilla/5\.0 \(.*IRIX64.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@1|4";i:2602;s:4:"@2|4";i:2619;s:4:"@1|5";i:2620;s:4:"@1|6";i:2623;s:4:"@1|9";i:2628;s:4:"@2|2";i:2630;s:4:"@1|8";i:2632;s:4:"@1|7";i:2634;s:4:"@2|1";i:2639;s:4:"@2|3";i:2640;s:4:"@2|0";i:2641;}', +'@^Opera/9\.80.*\(.*Windows NT (\d)\.(\d).*\).*Version/1(\d)\..*$@'=>'a:18:{s:6:"@5|2|2";i:2603;s:6:"@4|0|1";i:2605;s:6:"@5|0|1";i:2606;s:6:"@6|0|2";i:2607;s:6:"@5|1|2";i:2608;s:6:"@5|2|1";i:2610;s:6:"@5|1|1";i:2612;s:6:"@5|0|2";i:2614;s:6:"@6|1|2";i:2615;s:6:"@6|0|1";i:2617;s:6:"@4|0|2";i:2621;s:6:"@6|1|1";i:2622;s:6:"@6|1|0";i:2625;s:6:"@4|0|0";i:2626;s:6:"@5|1|0";i:2627;s:6:"@5|0|0";i:2633;s:6:"@5|2|0";i:2637;s:6:"@6|0|0";i:2638;}', +'@^Opera/9\.80.*\(.*Windows 2000.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@1";i:2604;s:2:"@0";i:2611;s:2:"@3";i:2613;s:2:"@2";i:2616;s:2:"@6";i:2624;s:2:"@4";i:2631;s:2:"@5";i:2635;}', +'@^Mozilla/5\.0 \(.*FreeBSD.*\).*Gecko/.*Firefox/(\d)\..*$@'=>'a:4:{s:2:"@9";i:2609;s:2:"@8";i:2618;s:2:"@6";i:2629;s:2:"@7";i:2636;}', +'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Windows NT (\d)\.(\d).*\).*$@'=>'a:42:{s:6:"@5|5|0";i:2642;s:6:"@5|4|0";i:2643;s:6:"@0|6|1";i:2644;s:6:"@6|6|1";i:2645;s:6:"@6|6|0";i:2646;s:6:"@0|6|0";i:2647;s:6:"@5|5|1";i:2648;s:6:"@5|6|1";i:2649;s:6:"@6|4|0";i:2650;s:6:"@5|5|2";i:2651;s:6:"@0|5|2";i:2652;s:6:"@1|4|0";i:2653;s:6:"@6|5|1";i:2654;s:6:"@4|5|0";i:2655;s:6:"@2|6|1";i:2656;s:6:"@2|5|2";i:2657;s:6:"@2|5|1";i:2658;s:6:"@2|5|0";i:2659;s:6:"@6|5|0";i:2660;s:6:"@2|4|0";i:2661;s:6:"@1|6|1";i:2662;s:6:"@1|6|0";i:2663;s:6:"@1|5|2";i:2664;s:6:"@1|5|1";i:2665;s:6:"@1|5|0";i:2666;s:6:"@2|6|0";i:2667;s:6:"@5|6|0";i:2668;s:6:"@0|5|1";i:2669;s:6:"@3|6|0";i:2670;s:6:"@0|4|0";i:2671;s:6:"@4|6|0";i:2672;s:6:"@4|6|1";i:2673;s:6:"@3|6|1";i:2674;s:6:"@4|5|1";i:2675;s:6:"@3|4|0";i:2676;s:6:"@6|5|2";i:2677;s:6:"@4|4|0";i:2678;s:6:"@0|5|0";i:2679;s:6:"@3|5|2";i:2680;s:6:"@3|5|1";i:2681;s:6:"@3|5|0";i:2682;s:6:"@4|5|2";i:2683;}', +'@^Mozilla/.\..*\(.*Windows NT (\d)\.(\d).*\).*Opera.12\.1(\d).*$@'=>'a:42:{s:6:"@5|0|2";i:2684;s:6:"@4|0|2";i:2685;s:6:"@6|0|3";i:2686;s:6:"@6|1|3";i:2687;s:6:"@5|0|6";i:2688;s:6:"@5|2|1";i:2689;s:6:"@5|1|6";i:2690;s:6:"@5|1|0";i:2691;s:6:"@6|1|1";i:2692;s:6:"@6|0|1";i:2693;s:6:"@5|2|2";i:2694;s:6:"@5|1|1";i:2695;s:6:"@5|0|1";i:2696;s:6:"@4|0|1";i:2697;s:6:"@5|2|6";i:2698;s:6:"@6|0|6";i:2699;s:6:"@6|1|6";i:2700;s:6:"@5|1|2";i:2701;s:6:"@5|0|0";i:2702;s:6:"@5|2|3";i:2703;s:6:"@5|2|0";i:2704;s:6:"@6|1|4";i:2705;s:6:"@6|0|4";i:2706;s:6:"@5|2|4";i:2707;s:6:"@4|0|5";i:2708;s:6:"@5|0|5";i:2709;s:6:"@5|1|4";i:2710;s:6:"@4|0|6";i:2711;s:6:"@4|0|3";i:2712;s:6:"@5|2|5";i:2713;s:6:"@6|0|5";i:2714;s:6:"@6|1|5";i:2715;s:6:"@4|0|0";i:2716;s:6:"@5|0|4";i:2717;s:6:"@5|0|3";i:2718;s:6:"@5|1|3";i:2719;s:6:"@6|0|0";i:2720;s:6:"@4|0|4";i:2721;s:6:"@6|1|2";i:2722;s:6:"@6|0|2";i:2723;s:6:"@6|1|0";i:2724;s:6:"@5|1|5";i:2725;}', '@^Html Link Validator \(www\.lithopssoft\.com\)$@'=>2726, '@^Mozilla/5\.0 \(compatible; YandexCatalog/.*\)$@'=>2727, -'@^Mozilla/5\.0 \(compatible; EARTHCOM\.info/.*\)$@'=>2728, -'@^Mozilla/5\.0 \(compatible; nextthing\.org/.*\)$@'=>2729, -'@^Mozilla/5\.0 \(compatible; YandexMetrika/.*\)$@'=>2730, -'@^Mozilla/.* \(TuringOS; Turing Machine; 0\.0\)$@'=>2731, +'@^Mozilla/5\.0 \(compatible; YandexMetrika/.*\)$@'=>2728, +'@^Mozilla/5\.0 \(compatible; EARTHCOM\.info/.*\)$@'=>2729, +'@^Mozilla/.* \(TuringOS; Turing Machine; 0\.0\)$@'=>2730, +'@^Mozilla/5\.0 \(compatible; nextthing\.org/.*\)$@'=>2731, '@^Search Engine World Robots\.txt Validator.*$@'=>2732, '@^Mozilla/4\.0 \(compatible; SuperCleaner.*;.*\)$@'=>2733, -'@^QuickTime.*\(qtver\=7\.6.*;os\=Windows NT (\d)\.(\d).*\)$@'=>'a:6:{s:4:"@6|0";i:2734;s:4:"@5|1";i:2735;s:4:"@5|2";i:2736;s:4:"@4|0";i:2738;s:4:"@6|1";i:2739;s:4:"@5|0";i:2740;}', -'@^envolk/.* \(.http\://www\.envolk\.com/envolk.*\)$@'=>2737, -'@^Mozilla/5\.0 \(.*HP\-UX.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@7";i:2741;s:2:"@9";i:2747;s:2:"@6";i:2749;s:2:"@8";i:2750;}', -'@^Mozilla/5\.0 \(.*SunOS.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@8";i:2742;s:2:"@9";i:2745;s:2:"@7";i:2751;s:2:"@6";i:2752;}', -'@^Mozilla/5\.0 \(.*Linux.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@9";i:2743;s:2:"@6";i:2744;s:2:"@7";i:2746;s:2:"@8";i:2748;}', -'@^Opera/9\.80.*\(.*Windows 2000.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@1";i:2753;s:2:"@6";i:2766;s:2:"@5";i:2777;}', -'@^Opera/9\.80.*\(.*Win 9x 4\.90.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@3";i:2754;s:2:"@4";i:2756;s:2:"@5";i:2770;s:2:"@6";i:2781;s:2:"@2";i:2785;s:2:"@1";i:2789;s:2:"@0";i:2793;}', -'@^Mozilla/5\.0 \(.*Linux.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@1|6";i:2755;s:4:"@1|7";i:2759;s:4:"@1|8";i:2763;s:4:"@1|9";i:2768;s:4:"@2|0";i:2772;s:4:"@2|4";i:2773;s:4:"@1|4";i:2778;s:4:"@1|5";i:2780;s:4:"@2|2";i:2783;s:4:"@2|1";i:2788;s:4:"@2|3";i:2791;}', -'@^Mozilla/5\.0 \(.*SunOS.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@2|4";i:2757;s:4:"@2|0";i:2758;s:4:"@1|8";i:2761;s:4:"@1|6";i:2762;s:4:"@1|5";i:2765;s:4:"@1|9";i:2767;s:4:"@1|7";i:2779;s:4:"@2|2";i:2784;s:4:"@2|1";i:2790;s:4:"@2|3";i:2792;s:4:"@1|4";i:2795;}', -'@^Mozilla/5\.0 \(.*HP\-UX.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@1|9";i:2760;s:4:"@1|5";i:2764;s:4:"@1|8";i:2769;s:4:"@2|4";i:2771;s:4:"@1|4";i:2774;s:4:"@2|0";i:2775;s:4:"@1|7";i:2776;s:4:"@2|2";i:2782;s:4:"@2|1";i:2786;s:4:"@1|6";i:2787;s:4:"@2|3";i:2794;}', -'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Windows NT (\d)\.(\d).*\).*$@'=>'a:18:{s:6:"@1|4|0";i:2796;s:6:"@5|6|1";i:2797;s:6:"@5|5|1";i:2798;s:6:"@5|5|0";i:2799;s:6:"@5|5|2";i:2800;s:6:"@6|6|1";i:2801;s:6:"@6|5|0";i:2802;s:6:"@6|4|0";i:2803;s:6:"@6|5|1";i:2804;s:6:"@6|5|2";i:2805;s:6:"@6|6|0";i:2806;s:6:"@1|5|0";i:2807;s:6:"@5|6|0";i:2808;s:6:"@1|5|2";i:2809;s:6:"@1|6|0";i:2810;s:6:"@1|6|1";i:2811;s:6:"@5|4|0";i:2812;s:6:"@1|5|1";i:2813;}', -'@^Mozilla/.\..*\(.*Windows NT (\d)\.(\d).*\).*Opera.11\.(\d).*$@'=>'a:18:{s:6:"@5|2|5";i:2814;s:6:"@6|1|5";i:2815;s:6:"@6|0|5";i:2816;s:6:"@6|1|1";i:2817;s:6:"@5|1|1";i:2818;s:6:"@5|2|1";i:2819;s:6:"@6|0|1";i:2820;s:6:"@5|1|5";i:2821;s:6:"@4|0|1";i:2822;s:6:"@4|0|5";i:2823;s:6:"@5|1|6";i:2824;s:6:"@6|0|6";i:2825;s:6:"@5|2|6";i:2826;s:6:"@5|0|1";i:2827;s:6:"@4|0|6";i:2828;s:6:"@6|1|6";i:2829;s:6:"@5|0|5";i:2830;s:6:"@5|0|6";i:2831;}', -'@^DocWeb Link Crawler \(http\://doc\.php\.net\)$@'=>2832, -'@^JRTwine Software Check Favorites Utility$@'=>2833, -'@^BookmarkBase\(2/;http\://bookmarkbase\.com\)$@'=>2834, -'@^Mozilla/5\.0 \(compatible; YandexImages/.*\)$@'=>2835, -'@^Mozilla/5\.0 \(compatible; CXL\-FatAssANT.*\)$@'=>2836, -'@^Mozilla/4\.0 \(compatible; BorderManager.*\)$@'=>2837, -'@^Mozilla/5\.0 \(compatible; YandexDirect/.*\)$@'=>2838, -'@^Mozilla/5\.0 \(compatible; ParchBot/1\.0;.*\)$@'=>2839, -'@^FAST Data Search Document Retriever/4\.0.*$@'=>2840, -'@^Mozilla/5\.0 \(compatible; Theophrastus/.*\)$@'=>2841, -'@^AideRSS/1\.0 \(aiderss\.com\); .* subscribers$@'=>2842, +'@^QuickTime.*\(qtver\=7\.6.*;os\=Windows NT (\d)\.(\d).*\)$@'=>'a:6:{s:4:"@6|1";i:2734;s:4:"@6|0";i:2735;s:4:"@5|2";i:2736;s:4:"@5|1";i:2737;s:4:"@5|0";i:2738;s:4:"@4|0";i:2739;}', +'@^envolk/.* \(.http\://www\.envolk\.com/envolk.*\)$@'=>2740, +'@^Mozilla/5\.0 \(.*Linux.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@7";i:2741;s:2:"@8";i:2743;s:2:"@9";i:2748;s:2:"@6";i:2751;}', +'@^Mozilla/5\.0 \(.*SunOS.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@8";i:2742;s:2:"@7";i:2745;s:2:"@9";i:2747;s:2:"@6";i:2750;}', +'@^Mozilla/5\.0 \(.*HP\-UX.*\) Gecko/.* Firefox/(\d)\..*$@'=>'a:4:{s:2:"@8";i:2744;s:2:"@7";i:2746;s:2:"@9";i:2749;s:2:"@6";i:2752;}', +'@^Opera/9\.80.*\(.*Win 9x 4\.90.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@6";i:2753;s:2:"@0";i:2754;s:2:"@3";i:2755;s:2:"@1";i:2756;s:2:"@4";i:2758;s:2:"@5";i:2760;s:2:"@2";i:2762;}', +'@^Opera/9\.80.*\(.*Windows 2000.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@1";i:2757;s:2:"@5";i:2759;s:2:"@6";i:2761;}', +'@^Mozilla/5\.0 \(.*Linux.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@2|1";i:2763;s:4:"@2|4";i:2766;s:4:"@2|3";i:2769;s:4:"@2|2";i:2772;s:4:"@2|0";i:2777;s:4:"@1|9";i:2779;s:4:"@1|8";i:2783;s:4:"@1|7";i:2786;s:4:"@1|6";i:2789;s:4:"@1|5";i:2791;s:4:"@1|4";i:2795;}', +'@^Mozilla/5\.0 \(.*HP\-UX.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@1|6";i:2764;s:4:"@2|4";i:2767;s:4:"@2|3";i:2770;s:4:"@2|2";i:2773;s:4:"@2|1";i:2775;s:4:"@2|0";i:2778;s:4:"@1|4";i:2780;s:4:"@1|9";i:2781;s:4:"@1|8";i:2784;s:4:"@1|7";i:2787;s:4:"@1|5";i:2792;}', +'@^Mozilla/5\.0 \(.*SunOS.*\).*Gecko/.*Firefox/(\d)(\d)\..*$@'=>'a:11:{s:4:"@1|9";i:2765;s:4:"@2|3";i:2768;s:4:"@2|2";i:2771;s:4:"@2|1";i:2774;s:4:"@2|0";i:2776;s:4:"@1|8";i:2782;s:4:"@1|7";i:2785;s:4:"@1|6";i:2788;s:4:"@1|5";i:2790;s:4:"@1|4";i:2793;s:4:"@2|4";i:2794;}', +'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Windows NT (\d)\.(\d).*\).*$@'=>'a:18:{s:6:"@1|5|0";i:2796;s:6:"@5|6|0";i:2797;s:6:"@6|6|0";i:2798;s:6:"@6|5|2";i:2799;s:6:"@6|5|1";i:2800;s:6:"@6|5|0";i:2801;s:6:"@6|4|0";i:2802;s:6:"@5|6|1";i:2803;s:6:"@5|5|2";i:2804;s:6:"@1|5|1";i:2805;s:6:"@5|5|1";i:2806;s:6:"@5|5|0";i:2807;s:6:"@5|4|0";i:2808;s:6:"@1|4|0";i:2809;s:6:"@1|6|1";i:2810;s:6:"@1|6|0";i:2811;s:6:"@6|6|1";i:2812;s:6:"@1|5|2";i:2813;}', +'@^Mozilla/.\..*\(.*Windows NT (\d)\.(\d).*\).*Opera.11\.(\d).*$@'=>'a:18:{s:6:"@6|1|6";i:2814;s:6:"@5|1|5";i:2815;s:6:"@5|0|5";i:2816;s:6:"@6|0|6";i:2817;s:6:"@5|2|6";i:2818;s:6:"@5|1|6";i:2819;s:6:"@5|0|6";i:2820;s:6:"@4|0|6";i:2821;s:6:"@5|2|5";i:2822;s:6:"@6|1|1";i:2823;s:6:"@6|0|1";i:2824;s:6:"@5|2|1";i:2825;s:6:"@5|1|1";i:2826;s:6:"@5|0|1";i:2827;s:6:"@6|0|5";i:2828;s:6:"@4|0|1";i:2829;s:6:"@6|1|5";i:2830;s:6:"@4|0|5";i:2831;}', +'@^JRTwine Software Check Favorites Utility$@'=>2832, +'@^BookmarkBase\(2/;http\://bookmarkbase\.com\)$@'=>2833, +'@^DocWeb Link Crawler \(http\://doc\.php\.net\)$@'=>2834, +'@^Mozilla/5\.0 \(compatible; YandexDirect/.*\)$@'=>2835, +'@^AideRSS/1\.0 \(aiderss\.com\); .* subscribers$@'=>2836, +'@^FAST Data Search Document Retriever/4\.0.*$@'=>2837, +'@^Mozilla/5\.0 \(compatible; CXL\-FatAssANT.*\)$@'=>2838, +'@^Mozilla/5\.0 \(compatible; YandexImages/.*\)$@'=>2839, +'@^Mozilla/5\.0 \(compatible; Theophrastus/.*\)$@'=>2840, +'@^Mozilla/4\.0 \(compatible; BorderManager.*\)$@'=>2841, +'@^Mozilla/5\.0 \(compatible; ParchBot/1\.0;.*\)$@'=>2842, '@^Mozilla/5\.0 \(compatible; YandexAddurl/.*\)$@'=>2843, '@^Mozilla/5\.0 \(compatible; Charlotte/.*; .*\)$@'=>2844, '@^DotBot/.* \(http\://www\.dotnetdotcom\.org/.*\)$@'=>2845, -'@^QuickTime.*\(qtver\=7\..*;os\=Windows NT (\d)\.(\d).*\)$@'=>'a:6:{s:4:"@5|2";i:2846;s:4:"@6|0";i:2847;s:4:"@6|1";i:2848;s:4:"@5|1";i:2850;s:4:"@4|0";i:2851;s:4:"@5|0";i:2856;}', -'@^QuickTime.*\(qtver\=10\..*os\=Windows NT (\d)\.(\d).*\)$@'=>'a:6:{s:4:"@5|2";i:2849;s:4:"@6|0";i:2852;s:4:"@4|0";i:2853;s:4:"@5|0";i:2854;s:4:"@5|1";i:2855;s:4:"@6|1";i:2857;}', +'@^QuickTime.*\(qtver\=10\..*os\=Windows NT (\d)\.(\d).*\)$@'=>'a:6:{s:4:"@6|0";i:2846;s:4:"@4|0";i:2847;s:4:"@6|1";i:2848;s:4:"@5|2";i:2852;s:4:"@5|0";i:2853;s:4:"@5|1";i:2856;}', +'@^QuickTime.*\(qtver\=7\..*;os\=Windows NT (\d)\.(\d).*\)$@'=>'a:6:{s:4:"@6|0";i:2849;s:4:"@6|1";i:2850;s:4:"@5|0";i:2851;s:4:"@4|0";i:2854;s:4:"@5|2";i:2855;s:4:"@5|1";i:2857;}', '@^Wepbot/.*\(.*\).*Jakarta Commons\-HttpClient/.*$@'=>2858, -'@^Opera/9\.80.*\(.*Windows 9(\d).*\).*Version/12\.1(\d).*$@'=>'a:14:{s:4:"@5|6";i:2859;s:4:"@5|2";i:2860;s:4:"@8|6";i:2861;s:4:"@8|5";i:2863;s:4:"@5|4";i:2866;s:4:"@8|4";i:2868;s:4:"@8|0";i:2870;s:4:"@5|0";i:2871;s:4:"@5|5";i:2872;s:4:"@5|1";i:2874;s:4:"@8|3";i:2875;s:4:"@5|3";i:2876;s:4:"@8|1";i:2877;s:4:"@8|2";i:2888;}', -'@^Opera/9\.80.*\(.*Windows ME.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@6";i:2862;s:2:"@0";i:2865;s:2:"@4";i:2869;s:2:"@1";i:2879;s:2:"@3";i:2880;s:2:"@2";i:2887;s:2:"@5";i:2889;}', -'@^Opera/.*\(.*Microsoft Windows.*Opera Mobi.*\).*$@'=>2864, -'@^Opera/9\.80.*\(.*Win 9x 4\.90.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@6";i:2867;s:2:"@1";i:2873;s:2:"@5";i:2885;}', -'@^Opera/9\.80.*\(.*Windows 2000.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@2";i:2878;s:2:"@0";i:2884;s:2:"@1";i:2890;}', -'@^Opera/.*\(.*Windows Mobile.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@6";i:2881;s:2:"@8";i:2882;s:2:"@9";i:2883;s:2:"@7";i:2886;}', -'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Windows NT (\d)\.(\d).*\).*$@'=>'a:18:{s:6:"@0|5|0";i:2891;s:6:"@0|5|1";i:2892;s:6:"@2|6|1";i:2893;s:6:"@2|5|2";i:2894;s:6:"@0|5|2";i:2895;s:6:"@1|6|0";i:2896;s:6:"@1|5|2";i:2898;s:6:"@2|6|0";i:2900;s:6:"@1|5|1";i:2901;s:6:"@0|4|0";i:2902;s:6:"@0|6|0";i:2903;s:6:"@0|6|1";i:2904;s:6:"@1|6|1";i:2905;s:6:"@1|5|0";i:2906;s:6:"@2|5|0";i:2910;s:6:"@2|5|1";i:2912;s:6:"@2|4|0";i:2914;s:6:"@1|4|0";i:2915;}', -'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Windows 2000.*\).*$@'=>'a:7:{s:2:"@3";i:2897;s:2:"@1";i:2899;s:2:"@4";i:2907;s:2:"@2";i:2908;s:2:"@6";i:2909;s:2:"@5";i:2911;s:2:"@0";i:2913;}', -'@^Mozilla/.\..*\(.*Windows NT (\d)\.(\d).*\).*Opera.1(\d)\..*$@'=>'a:18:{s:6:"@6|0|2";i:2916;s:6:"@5|2|2";i:2917;s:6:"@5|1|2";i:2918;s:6:"@5|0|2";i:2919;s:6:"@5|1|1";i:2921;s:6:"@5|2|1";i:2922;s:6:"@6|1|0";i:2923;s:6:"@5|0|1";i:2924;s:6:"@4|0|1";i:2925;s:6:"@6|0|1";i:2926;s:6:"@6|1|1";i:2927;s:6:"@6|0|0";i:2930;s:6:"@6|1|2";i:2931;s:6:"@5|2|0";i:2935;s:6:"@5|1|0";i:2936;s:6:"@4|0|2";i:2937;s:6:"@4|0|0";i:2938;s:6:"@5|0|0";i:2940;}', -'@^Mozilla/.\..*\(.*Windows 2000.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@4";i:2920;s:2:"@0";i:2928;s:2:"@1";i:2929;s:2:"@3";i:2932;s:2:"@2";i:2933;s:2:"@5";i:2934;s:2:"@6";i:2939;}', -'@^JS\-Kit URL Resolver, http\://js\-kit\.com/$@'=>2941, -'@^http\://hilfe\.acont\.de/bot\.html ACONTBOT$@'=>2942, +'@^Opera/9\.80.*\(.*Windows 9(\d).*\).*Version/12\.1(\d).*$@'=>'a:14:{s:4:"@5|0";i:2859;s:4:"@8|0";i:2861;s:4:"@5|5";i:2865;s:4:"@8|4";i:2868;s:4:"@8|3";i:2871;s:4:"@5|3";i:2872;s:4:"@8|2";i:2875;s:4:"@5|2";i:2879;s:4:"@5|4";i:2881;s:4:"@8|1";i:2883;s:4:"@5|1";i:2885;s:4:"@5|6";i:2888;s:4:"@8|6";i:2889;s:4:"@8|5";i:2890;}', +'@^Opera/9\.80.*\(.*Windows ME.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@5";i:2860;s:2:"@4";i:2864;s:2:"@6";i:2869;s:2:"@3";i:2870;s:2:"@2";i:2874;s:2:"@1";i:2882;s:2:"@0";i:2887;}', +'@^Opera/.*\(.*Windows Mobile.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@9";i:2862;s:2:"@7";i:2876;s:2:"@6";i:2880;s:2:"@8";i:2884;}', +'@^Opera/.*\(.*Microsoft Windows.*Opera Mobi.*\).*$@'=>2863, +'@^Opera/9\.80.*\(.*Windows 2000.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@0";i:2866;s:2:"@1";i:2867;s:2:"@2";i:2873;}', +'@^Opera/9\.80.*\(.*Win 9x 4\.90.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@1";i:2877;s:2:"@5";i:2878;s:2:"@6";i:2886;}', +'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Windows 2000.*\).*$@'=>'a:7:{s:2:"@4";i:2891;s:2:"@2";i:2892;s:2:"@6";i:2895;s:2:"@1";i:2912;s:2:"@3";i:2913;s:2:"@0";i:2914;s:2:"@5";i:2915;}', +'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Windows NT (\d)\.(\d).*\).*$@'=>'a:18:{s:6:"@1|5|0";i:2893;s:6:"@0|6|0";i:2894;s:6:"@2|5|0";i:2896;s:6:"@2|4|0";i:2897;s:6:"@2|6|0";i:2898;s:6:"@0|5|2";i:2899;s:6:"@0|5|1";i:2900;s:6:"@0|6|1";i:2901;s:6:"@2|6|1";i:2902;s:6:"@0|5|0";i:2903;s:6:"@0|4|0";i:2904;s:6:"@2|5|1";i:2905;s:6:"@2|5|2";i:2906;s:6:"@1|4|0";i:2907;s:6:"@1|5|1";i:2908;s:6:"@1|5|2";i:2909;s:6:"@1|6|0";i:2910;s:6:"@1|6|1";i:2911;}', +'@^Mozilla/.\..*\(.*Windows 2000.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@3";i:2916;s:2:"@6";i:2917;s:2:"@4";i:2919;s:2:"@2";i:2931;s:2:"@1";i:2934;s:2:"@0";i:2936;s:2:"@5";i:2940;}', +'@^Mozilla/.\..*\(.*Windows NT (\d)\.(\d).*\).*Opera.1(\d)\..*$@'=>'a:18:{s:6:"@6|0|1";i:2918;s:6:"@6|1|1";i:2920;s:6:"@4|0|0";i:2921;s:6:"@5|0|0";i:2922;s:6:"@5|1|0";i:2923;s:6:"@6|0|0";i:2924;s:6:"@6|1|0";i:2925;s:6:"@4|0|1";i:2926;s:6:"@5|0|1";i:2927;s:6:"@5|1|1";i:2928;s:6:"@5|2|1";i:2929;s:6:"@5|2|0";i:2930;s:6:"@5|0|2";i:2932;s:6:"@5|2|2";i:2933;s:6:"@6|1|2";i:2935;s:6:"@6|0|2";i:2937;s:6:"@5|1|2";i:2938;s:6:"@4|0|2";i:2939;}', +'@^http\://hilfe\.acont\.de/bot\.html ACONTBOT$@'=>2941, +'@^JS\-Kit URL Resolver, http\://js\-kit\.com/$@'=>2942, '@^Mozilla/4\.0 \(compatible; Spider; Linux\)$@'=>2943, '@^Microsoft Bing Mobile SocialStreams Bot$@'=>2944, -'@^Mozilla/4\.0 \(compatible; MyFamilyBot/.*\)$@'=>2945, -'@^Mozilla/5\.0 \(compatible; YandexVideo/.*\)$@'=>2946, -'@^Mozilla/5\.0 \(compatible; ayna\-crawler.*\)$@'=>2947, -'@^Mozilla/5\.0 \(compatible; YandexMedia/.*\)$@'=>2948, +'@^Mozilla/5\.0 \(compatible; YandexVideo/.*\)$@'=>2945, +'@^Mozilla/5\.0 \(compatible; YandexMedia/.*\)$@'=>2946, +'@^Mahalobot/1\.0 \(.http\://www\.mahalo\.com/\)$@'=>2947, +'@^Mozilla/4\.0 \(compatible; MyFamilyBot/.*\)$@'=>2948, '@^Mozilla/5\.0 \(compatible; YandexBlogs/.*\)$@'=>2949, -'@^Mahalobot/1\.0 \(.http\://www\.mahalo\.com/\)$@'=>2950, +'@^Mozilla/5\.0 \(compatible; ayna\-crawler.*\)$@'=>2950, '@^WIRE/.* \(Linux.*Bot,Robot,Spider,Crawler\)$@'=>2951, '@^Mozilla/.* \(PSP \(PlayStation Portable\).*\)$@'=>2952, '@^Bloglines/.* \(http\://www\.bloglines\.com.*\)$@'=>2953, '@^Mozilla/5\.0 \(compatible;.*newstin\.com;.*\)$@'=>2954, -'@^QuickTime.*\(qtver\=(\d)\..*os\=Windows NT (\d)\.(\d).*\)$@'=>'a:12:{s:6:"@6|5|0";i:2955;s:6:"@6|4|0";i:2956;s:6:"@6|5|1";i:2957;s:6:"@5|4|0";i:2958;s:6:"@5|5|2";i:2959;s:6:"@6|6|1";i:2960;s:6:"@5|6|0";i:2961;s:6:"@5|6|1";i:2962;s:6:"@5|5|0";i:2963;s:6:"@6|6|0";i:2964;s:6:"@6|5|2";i:2965;s:6:"@5|5|1";i:2966;}', -'@^Mozilla/.*\(.*MSIE.*America Online Browser.*$@'=>2967, -'@^Opera/.*\(Windows Mobile.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@5";i:2968;s:2:"@2";i:2969;s:2:"@3";i:2970;s:2:"@4";i:2971;}', -'@^Opera/9\.80.*\(.*Windows 9(\d).*\).*Version/11\.(\d).*$@'=>'a:6:{s:4:"@8|1";i:2972;s:4:"@8|6";i:2973;s:4:"@5|6";i:2977;s:4:"@5|5";i:2979;s:4:"@5|1";i:2980;s:4:"@8|5";i:2983;}', -'@^Opera/9\.80.*\(.*Win 9x 4\.90.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@1";i:2974;s:2:"@2";i:2975;s:2:"@0";i:2981;}', -'@^Opera/9\.80.*\(.*Windows ME.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@6";i:2976;s:2:"@1";i:2978;s:2:"@5";i:2982;}', -'@^Mozilla/.\..*\(.*Opera/(\d)\..*Windows NT (\d)\.(\d).*\).*$@'=>'a:48:{s:6:"@2|6|0";i:2984;s:6:"@6|4|0";i:2986;s:6:"@6|6|1";i:2987;s:6:"@9|5|2";i:2988;s:6:"@4|4|0";i:2989;s:6:"@4|6|0";i:2990;s:6:"@6|5|1";i:2992;s:6:"@6|5|0";i:2993;s:6:"@6|5|2";i:2995;s:6:"@8|6|1";i:2996;s:6:"@2|5|1";i:2997;s:6:"@2|5|0";i:2999;s:6:"@3|5|0";i:3000;s:6:"@3|4|0";i:3001;s:6:"@3|5|1";i:3002;s:6:"@3|5|2";i:3003;s:6:"@9|6|1";i:3004;s:6:"@9|4|0";i:3005;s:6:"@4|5|2";i:3006;s:6:"@9|5|0";i:3007;s:6:"@6|6|0";i:3008;s:6:"@9|5|1";i:3009;s:6:"@3|6|1";i:3010;s:6:"@3|6|0";i:3011;s:6:"@4|5|0";i:3012;s:6:"@8|5|2";i:3013;s:6:"@5|4|0";i:3015;s:6:"@7|5|1";i:3016;s:6:"@7|5|0";i:3017;s:6:"@7|5|2";i:3020;s:6:"@9|6|0";i:3021;s:6:"@5|5|1";i:3022;s:6:"@5|5|0";i:3023;s:6:"@8|5|1";i:3025;s:6:"@4|6|1";i:3026;s:6:"@2|4|0";i:3027;s:6:"@4|5|1";i:3028;s:6:"@7|4|0";i:3029;s:6:"@8|5|0";i:3030;s:6:"@2|6|1";i:3031;s:6:"@7|6|0";i:3032;s:6:"@2|5|2";i:3033;s:6:"@7|6|1";i:3034;s:6:"@8|6|0";i:3035;s:6:"@5|6|0";i:3037;s:6:"@5|6|1";i:3038;s:6:"@5|5|2";i:3039;s:6:"@8|4|0";i:3040;}', -'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Windows 2000.*\).*$@'=>'a:3:{s:2:"@5";i:2985;s:2:"@6";i:3036;s:2:"@1";i:3041;}', -'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Win 9x 4\.90.*\).*$@'=>'a:7:{s:2:"@0";i:2991;s:2:"@2";i:2994;s:2:"@6";i:2998;s:2:"@4";i:3014;s:2:"@3";i:3018;s:2:"@1";i:3019;s:2:"@5";i:3024;}', -'@^Mozilla/.\..*\(.*Windows NT (\d)\.(\d).*\).*Opera.(\d)\..*$@'=>'a:48:{s:6:"@5|1|8";i:3042;s:6:"@4|0|2";i:3043;s:6:"@6|1|4";i:3044;s:6:"@5|1|7";i:3046;s:6:"@6|0|8";i:3047;s:6:"@5|2|8";i:3048;s:6:"@5|0|8";i:3049;s:6:"@6|0|7";i:3050;s:6:"@5|2|7";i:3051;s:6:"@6|0|4";i:3052;s:6:"@6|1|2";i:3053;s:6:"@6|1|7";i:3054;s:6:"@5|1|9";i:3056;s:6:"@6|1|5";i:3057;s:6:"@5|1|6";i:3060;s:6:"@6|1|9";i:3061;s:6:"@5|0|2";i:3063;s:6:"@5|2|9";i:3064;s:6:"@4|0|4";i:3065;s:6:"@6|0|9";i:3066;s:6:"@5|1|3";i:3067;s:6:"@5|2|3";i:3069;s:6:"@5|1|4";i:3070;s:6:"@5|0|4";i:3071;s:6:"@5|1|2";i:3072;s:6:"@6|0|6";i:3073;s:6:"@6|1|3";i:3074;s:6:"@6|1|6";i:3075;s:6:"@6|0|3";i:3076;s:6:"@5|0|5";i:3077;s:6:"@4|0|6";i:3078;s:6:"@4|0|5";i:3080;s:6:"@5|0|9";i:3081;s:6:"@4|0|7";i:3082;s:6:"@5|0|7";i:3083;s:6:"@6|0|5";i:3084;s:6:"@4|0|8";i:3085;s:6:"@6|1|8";i:3086;s:6:"@4|0|9";i:3088;s:6:"@5|2|6";i:3090;s:6:"@5|2|4";i:3091;s:6:"@4|0|3";i:3092;s:6:"@5|0|3";i:3093;s:6:"@5|2|2";i:3094;s:6:"@6|0|2";i:3095;s:6:"@5|0|6";i:3097;s:6:"@5|1|5";i:3098;s:6:"@5|2|5";i:3099;}', -'@^Mozilla/.\..*\(.*Win 9x 4\.90.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@0";i:3045;s:2:"@2";i:3058;s:2:"@3";i:3059;s:2:"@5";i:3068;s:2:"@1";i:3079;s:2:"@4";i:3087;s:2:"@6";i:3089;}', -'@^Mozilla/.\..*\(.*Windows 2000.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@5";i:3055;s:2:"@6";i:3062;s:2:"@1";i:3096;}', -'@^Mozilla/3\.0 \(compatible; Indy Library\)$@'=>3100, -'@^Best Whois \(http\://www\.bestwhois\.net/\)$@'=>3101, -'@^OpenDNS Domain Crawler noc\@opendns\.com$@'=>3102, -'@^Kolinka Forum Search \(www\.kolinka\.com\)$@'=>3103, -'@^Visited by http\://tools\.geek\-tools\.org$@'=>3104, -'@^www\.fi crawler, contact crawler\@www\.fi$@'=>3105, +'@^QuickTime.*\(qtver\=(\d)\..*os\=Windows NT (\d)\.(\d).*\)$@'=>'a:12:{s:6:"@5|6|1";i:2955;s:6:"@5|4|0";i:2956;s:6:"@5|5|0";i:2957;s:6:"@5|5|1";i:2958;s:6:"@5|5|2";i:2959;s:6:"@6|6|1";i:2960;s:6:"@5|6|0";i:2961;s:6:"@6|4|0";i:2962;s:6:"@6|5|0";i:2963;s:6:"@6|5|1";i:2964;s:6:"@6|5|2";i:2965;s:6:"@6|6|0";i:2966;}', +'@^Opera/.*\(Windows Mobile.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@3";i:2967;s:2:"@2";i:2969;s:2:"@5";i:2970;s:2:"@4";i:2971;}', +'@^Mozilla/.*\(.*MSIE.*America Online Browser.*$@'=>2968, +'@^Opera/9\.80.*\(.*Windows ME.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@6";i:2972;s:2:"@5";i:2979;s:2:"@1";i:2982;}', +'@^Opera/9\.80.*\(.*Windows 9(\d).*\).*Version/11\.(\d).*$@'=>'a:6:{s:4:"@8|6";i:2973;s:4:"@5|6";i:2974;s:4:"@8|1";i:2976;s:4:"@8|5";i:2978;s:4:"@5|1";i:2980;s:4:"@5|5";i:2983;}', +'@^Opera/9\.80.*\(.*Win 9x 4\.90.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@2";i:2975;s:2:"@0";i:2977;s:2:"@1";i:2981;}', +'@^Mozilla/.\..*\(.*Opera/(\d)\..*Windows NT (\d)\.(\d).*\).*$@'=>'a:48:{s:6:"@5|6|1";i:2984;s:6:"@3|5|2";i:2985;s:6:"@3|6|0";i:2986;s:6:"@6|6|0";i:2987;s:6:"@8|5|0";i:2988;s:6:"@3|4|0";i:2989;s:6:"@5|5|2";i:2990;s:6:"@8|4|0";i:2991;s:6:"@3|6|1";i:2993;s:6:"@5|6|0";i:2994;s:6:"@7|6|0";i:2995;s:6:"@5|5|1";i:2996;s:6:"@7|5|2";i:2997;s:6:"@8|6|1";i:3000;s:6:"@8|5|1";i:3001;s:6:"@8|5|2";i:3002;s:6:"@5|5|0";i:3003;s:6:"@5|4|0";i:3004;s:6:"@8|6|0";i:3006;s:6:"@9|4|0";i:3008;s:6:"@9|5|0";i:3009;s:6:"@6|6|1";i:3010;s:6:"@3|5|0";i:3011;s:6:"@6|5|0";i:3013;s:6:"@7|6|1";i:3014;s:6:"@2|5|2";i:3015;s:6:"@7|5|1";i:3016;s:6:"@7|5|0";i:3017;s:6:"@7|4|0";i:3018;s:6:"@6|5|2";i:3019;s:6:"@9|6|1";i:3020;s:6:"@2|6|0";i:3021;s:6:"@2|6|1";i:3022;s:6:"@9|5|2";i:3023;s:6:"@6|5|1";i:3025;s:6:"@9|6|0";i:3026;s:6:"@6|4|0";i:3028;s:6:"@4|4|0";i:3029;s:6:"@4|5|2";i:3030;s:6:"@4|5|0";i:3031;s:6:"@2|4|0";i:3032;s:6:"@4|5|1";i:3033;s:6:"@2|5|0";i:3035;s:6:"@4|6|0";i:3036;s:6:"@4|6|1";i:3037;s:6:"@2|5|1";i:3038;s:6:"@3|5|1";i:3039;s:6:"@9|5|1";i:3041;}', +'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Win 9x 4\.90.*\).*$@'=>'a:7:{s:2:"@0";i:2992;s:2:"@1";i:2998;s:2:"@5";i:2999;s:2:"@4";i:3024;s:2:"@6";i:3027;s:2:"@3";i:3034;s:2:"@2";i:3040;}', +'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Windows 2000.*\).*$@'=>'a:3:{s:2:"@5";i:3005;s:2:"@1";i:3007;s:2:"@6";i:3012;}', +'@^Mozilla/.\..*\(.*Windows NT (\d)\.(\d).*\).*Opera.(\d)\..*$@'=>'a:48:{s:6:"@5|1|3";i:3042;s:6:"@5|0|3";i:3045;s:6:"@4|0|3";i:3046;s:6:"@5|2|3";i:3048;s:6:"@5|0|5";i:3049;s:6:"@6|1|4";i:3051;s:6:"@6|0|4";i:3053;s:6:"@5|2|4";i:3054;s:6:"@5|1|4";i:3055;s:6:"@5|0|4";i:3056;s:6:"@4|0|5";i:3057;s:6:"@5|1|5";i:3058;s:6:"@6|0|3";i:3059;s:6:"@5|2|5";i:3060;s:6:"@4|0|4";i:3061;s:6:"@6|0|5";i:3062;s:6:"@6|1|5";i:3063;s:6:"@6|1|3";i:3067;s:6:"@4|0|9";i:3070;s:6:"@5|2|9";i:3071;s:6:"@5|1|7";i:3072;s:6:"@5|2|7";i:3073;s:6:"@6|0|7";i:3074;s:6:"@6|1|7";i:3075;s:6:"@4|0|2";i:3076;s:6:"@5|1|2";i:3077;s:6:"@5|1|9";i:3078;s:6:"@5|2|2";i:3079;s:6:"@6|0|9";i:3080;s:6:"@4|0|7";i:3081;s:6:"@6|1|9";i:3082;s:6:"@6|1|8";i:3083;s:6:"@6|0|8";i:3084;s:6:"@5|2|8";i:3085;s:6:"@5|1|8";i:3086;s:6:"@5|0|8";i:3087;s:6:"@6|0|2";i:3088;s:6:"@6|1|2";i:3089;s:6:"@4|0|8";i:3090;s:6:"@5|0|7";i:3091;s:6:"@5|0|2";i:3092;s:6:"@5|0|9";i:3093;s:6:"@5|1|6";i:3094;s:6:"@4|0|6";i:3095;s:6:"@6|1|6";i:3096;s:6:"@6|0|6";i:3097;s:6:"@5|2|6";i:3098;s:6:"@5|0|6";i:3099;}', +'@^Mozilla/.\..*\(.*Win 9x 4\.90.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@6";i:3043;s:2:"@1";i:3044;s:2:"@2";i:3047;s:2:"@3";i:3065;s:2:"@0";i:3066;s:2:"@5";i:3068;s:2:"@4";i:3069;}', +'@^Mozilla/.\..*\(.*Windows 2000.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@5";i:3050;s:2:"@6";i:3052;s:2:"@1";i:3064;}', +'@^Best Whois \(http\://www\.bestwhois\.net/\)$@'=>3100, +'@^Mozilla/3\.0 \(compatible; Indy Library\)$@'=>3101, +'@^www\.fi crawler, contact crawler\@www\.fi$@'=>3102, +'@^Visited by http\://tools\.geek\-tools\.org$@'=>3103, +'@^Kolinka Forum Search \(www\.kolinka\.com\)$@'=>3104, +'@^OpenDNS Domain Crawler noc\@opendns\.com$@'=>3105, '@^Mozilla/5\.0 \(compatible; AboutUsBot/.*\)$@'=>3106, '@^Yandex/1\.01\.001 \(compatible; Win16; .*\)$@'=>3107, -'@^Mozilla/5\.0 \(compatible; MJ12bot/v1\..*\)$@'=>3108, -'@^Mozilla/5\.0 \(compatible; YandexNews/.*\)$@'=>3109, -'@^Mozilla/5\.0 \(compatible; DKIMRepBot/.*\)$@'=>3110, +'@^Mozilla/5\.0 \(compatible; YandexNews/.*\)$@'=>3108, +'@^Mozilla/5\.0 \(compatible; DKIMRepBot/.*\)$@'=>3109, +'@^annotate_google; http\://ponderer\.org/.*$@'=>3110, '@^Mozilla/5\.0 \(compatible; YodaoBot/1\..*\)$@'=>3111, -'@^annotate_google; http\://ponderer\.org/.*$@'=>3112, +'@^Mozilla/5\.0 \(compatible; MJ12bot/v1\..*\)$@'=>3112, '@^Mozilla/5\.0 \(compatible; DNS\-Digger/.*\)$@'=>3113, '@^Willow Internet Crawler by Twotrees V.*$@'=>3114, '@^Mozilla/..* \(compatible; MS FrontPage.*\)$@'=>3115, '@^Microsoft Office/.* \(.*Picture Manager.*\)$@'=>3116, -'@^SAMSUNG\-GT.*Jasmine/(\d)\.(\d).*SMM\-MMS/.*/MIDP.*$@'=>'a:2:{s:4:"@0|8";i:3117;s:4:"@1|0";i:3118;}', +'@^SAMSUNG\-GT.*Jasmine/(\d)\.(\d).*SMM\-MMS/.*/MIDP.*$@'=>'a:2:{s:4:"@1|0";i:3117;s:4:"@0|8";i:3118;}', '@^Amico Alpha .* \(.*\) Gecko/.* AmicoAlpha/.*$@'=>3119, -'@^Opera/9\.80.*\(.*Windows 9(\d).*\).*Version/1(\d)\..*$@'=>'a:6:{s:4:"@8|2";i:3120;s:4:"@8|0";i:3122;s:4:"@5|2";i:3126;s:4:"@5|1";i:3129;s:4:"@8|1";i:3132;s:4:"@5|0";i:3135;}', -'@^Opera/9\.80.*\(.*Windows ME.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@0";i:3121;s:2:"@1";i:3123;s:2:"@2";i:3133;}', -'@^Opera/9\.80.*\(.*Mac OS X.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@6";i:3124;s:2:"@2";i:3125;s:2:"@0";i:3127;s:2:"@5";i:3128;s:2:"@1";i:3130;s:2:"@4";i:3131;s:2:"@3";i:3134;}', -'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Windows ME.*\).*$@'=>'a:7:{s:2:"@5";i:3136;s:2:"@1";i:3143;s:2:"@6";i:3148;s:2:"@3";i:3151;s:2:"@2";i:3156;s:2:"@0";i:3157;s:2:"@4";i:3159;}', -'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Win 9x 4\.90.*\).*$@'=>'a:3:{s:2:"@5";i:3137;s:2:"@6";i:3145;s:2:"@1";i:3161;}', -'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Windows 9(\d).*\).*$@'=>'a:14:{s:4:"@5|8";i:3138;s:4:"@5|5";i:3139;s:4:"@3|5";i:3140;s:4:"@1|5";i:3141;s:4:"@1|8";i:3142;s:4:"@4|8";i:3144;s:4:"@6|5";i:3146;s:4:"@6|8";i:3149;s:4:"@4|5";i:3150;s:4:"@2|5";i:3153;s:4:"@0|8";i:3154;s:4:"@2|8";i:3155;s:4:"@0|5";i:3158;s:4:"@3|8";i:3160;}', -'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Windows 2000.*\).*$@'=>'a:3:{s:2:"@1";i:3147;s:2:"@0";i:3152;s:2:"@2";i:3162;}', -'@^Mozilla/.\..*\(.*Windows 2000.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@0";i:3163;s:2:"@2";i:3177;s:2:"@1";i:3182;}', -'@^Mozilla/.\..*\(.*Windows 9(\d).*\).*Opera.12\.1(\d).*$@'=>'a:14:{s:4:"@5|5";i:3164;s:4:"@5|1";i:3165;s:4:"@8|0";i:3166;s:4:"@5|0";i:3169;s:4:"@8|3";i:3170;s:4:"@8|6";i:3175;s:4:"@5|6";i:3176;s:4:"@5|3";i:3178;s:4:"@8|1";i:3179;s:4:"@8|2";i:3180;s:4:"@5|2";i:3181;s:4:"@5|4";i:3186;s:4:"@8|5";i:3187;s:4:"@8|4";i:3188;}', -'@^Mozilla/.\..*\(.*Win 9x 4\.90.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@6";i:3167;s:2:"@1";i:3174;s:2:"@5";i:3183;}', -'@^Mozilla/.\..*\(.*Windows ME.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@1";i:3168;s:2:"@3";i:3171;s:2:"@0";i:3172;s:2:"@6";i:3173;s:2:"@2";i:3184;s:2:"@5";i:3185;s:2:"@4";i:3189;}', -'@^Mozilla/5\.0 \(compatible\) GM RSS Panel$@'=>3190, -'@^BlogPulseLive \(support\@blogpulse\.com\)$@'=>3191, -'@^\!Susie \(http\://www\.sync2it\.com/susie\)$@'=>3192, -'@^Mozilla/4\.0 \(compatible; ibisBrowser\)$@'=>3193, -'@^AnswerBus \(http\://www\.answerbus\.com/\)$@'=>3194, -'@^ah\-ha\.com crawler \(crawler\@ah\-ha\.com\)$@'=>3195, -'@^Microsoft Windows Network Diagnostics$@'=>3196, -'@^Mozilla/5\.0 \(compatible; Exabot/3\.0.*\)$@'=>3197, -'@^Decode Framework 0\..* browscap library$@'=>3198, -'@^Mozilla/5\.0 \(compatible; YandexBot/.*\)$@'=>3199, +'@^Opera/9\.80.*\(.*Windows ME.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@0";i:3120;s:2:"@2";i:3125;s:2:"@1";i:3128;}', +'@^Opera/9\.80.*\(.*Windows 9(\d).*\).*Version/1(\d)\..*$@'=>'a:6:{s:4:"@8|0";i:3121;s:4:"@5|2";i:3123;s:4:"@5|1";i:3124;s:4:"@8|2";i:3126;s:4:"@8|1";i:3127;s:4:"@5|0";i:3131;}', +'@^Opera/9\.80.*\(.*Mac OS X.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@5";i:3122;s:2:"@6";i:3129;s:2:"@0";i:3130;s:2:"@3";i:3132;s:2:"@1";i:3133;s:2:"@4";i:3134;s:2:"@2";i:3135;}', +'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Windows 9(\d).*\).*$@'=>'a:14:{s:4:"@2|8";i:3136;s:4:"@6|8";i:3139;s:4:"@6|5";i:3140;s:4:"@2|5";i:3143;s:4:"@4|5";i:3145;s:4:"@3|8";i:3147;s:4:"@3|5";i:3149;s:4:"@4|8";i:3151;s:4:"@0|8";i:3153;s:4:"@5|8";i:3157;s:4:"@5|5";i:3158;s:4:"@1|5";i:3159;s:4:"@1|8";i:3160;s:4:"@0|5";i:3161;}', +'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Win 9x 4\.90.*\).*$@'=>'a:3:{s:2:"@6";i:3137;s:2:"@5";i:3144;s:2:"@1";i:3152;}', +'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Windows ME.*\).*$@'=>'a:7:{s:2:"@6";i:3138;s:2:"@2";i:3142;s:2:"@3";i:3146;s:2:"@4";i:3154;s:2:"@0";i:3155;s:2:"@5";i:3156;s:2:"@1";i:3162;}', +'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Windows 2000.*\).*$@'=>'a:3:{s:2:"@1";i:3141;s:2:"@2";i:3148;s:2:"@0";i:3150;}', +'@^Mozilla/.\..*\(.*Windows 9(\d).*\).*Opera.12\.1(\d).*$@'=>'a:14:{s:4:"@5|3";i:3163;s:4:"@8|5";i:3166;s:4:"@8|4";i:3167;s:4:"@5|5";i:3168;s:4:"@8|3";i:3172;s:4:"@5|4";i:3174;s:4:"@8|6";i:3179;s:4:"@5|6";i:3180;s:4:"@5|1";i:3181;s:4:"@8|0";i:3182;s:4:"@5|0";i:3183;s:4:"@8|1";i:3184;s:4:"@5|2";i:3187;s:4:"@8|2";i:3189;}', +'@^Mozilla/.\..*\(.*Windows 2000.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@0";i:3164;s:2:"@1";i:3176;s:2:"@2";i:3188;}', +'@^Mozilla/.\..*\(.*Win 9x 4\.90.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@1";i:3165;s:2:"@6";i:3171;s:2:"@5";i:3185;}', +'@^Mozilla/.\..*\(.*Windows ME.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@4";i:3169;s:2:"@3";i:3170;s:2:"@5";i:3173;s:2:"@0";i:3175;s:2:"@2";i:3177;s:2:"@6";i:3178;s:2:"@1";i:3186;}', +'@^BlogPulseLive \(support\@blogpulse\.com\)$@'=>3190, +'@^AnswerBus \(http\://www\.answerbus\.com/\)$@'=>3191, +'@^Microsoft Windows Network Diagnostics$@'=>3192, +'@^ah\-ha\.com crawler \(crawler\@ah\-ha\.com\)$@'=>3193, +'@^Mozilla/5\.0 \(compatible\) GM RSS Panel$@'=>3194, +'@^\!Susie \(http\://www\.sync2it\.com/susie\)$@'=>3195, +'@^Mozilla/4\.0 \(compatible; ibisBrowser\)$@'=>3196, +'@^Mozilla/5\.0 \(compatible; YandexBot/.*\)$@'=>3197, +'@^Mozilla/5\.0 \(compatible; Exabot/3\.0.*\)$@'=>3198, +'@^Decode Framework 0\..* browscap library$@'=>3199, '@^QuickTime.*\(qtver\=7\.6.*;os\=Windows Me.*\)$@'=>3200, -'@^QuickTime.*\(qtver\=7\.6.*;os\=Windows 9(\d).*\)$@'=>'a:2:{s:2:"@8";i:3201;s:2:"@5";i:3203;}', -'@^Mozilla/5\.0 Galeon/(\d)\..* \(X11; Linux.*\).*$@'=>'a:2:{s:2:"@1";i:3202;s:2:"@2";i:3204;}', +'@^Mozilla/5\.0 Galeon/(\d)\..* \(X11; Linux.*\).*$@'=>'a:2:{s:2:"@2";i:3201;s:2:"@1";i:3202;}', +'@^QuickTime.*\(qtver\=7\.6.*;os\=Windows 9(\d).*\)$@'=>'a:2:{s:2:"@8";i:3203;s:2:"@5";i:3204;}', '@^Opera/.*\(Windows Mobile.*Opera Mini/.*\).*$@'=>3205, '@^Opera/.* \(Nintendo DSi; Opera/.*; .*; .*\)$@'=>3206, -'@^Opera/9\.80.*\(.*FreeBSD.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@4";i:3207;s:2:"@5";i:3208;s:2:"@6";i:3209;s:2:"@1";i:3211;s:2:"@3";i:3213;s:2:"@0";i:3216;s:2:"@2";i:3218;}', -'@^Mozilla/.*\(.*MSIE 1\.5.*Windows NT 3\.1.*\).*$@'=>3210, -'@^Opera/.*\(.*Windows Mobile.*Opera Mobi.*\).*$@'=>3212, -'@^Opera/9\.80.*\(.*Mac OS X.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@6";i:3214;s:2:"@1";i:3215;s:2:"@5";i:3217;}', -'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Windows 9(\d).*\).*$@'=>'a:6:{s:4:"@6|5";i:3219;s:4:"@6|8";i:3225;s:4:"@5|8";i:3227;s:4:"@5|5";i:3229;s:4:"@1|5";i:3235;s:4:"@1|8";i:3237;}', -'@^Mozilla/.\..*\(.*Opera/(\d)\..*Windows 2000.*\).*$@'=>'a:8:{s:2:"@8";i:3220;s:2:"@4";i:3222;s:2:"@5";i:3223;s:2:"@3";i:3226;s:2:"@6";i:3228;s:2:"@7";i:3230;s:2:"@2";i:3234;s:2:"@9";i:3236;}', -'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Win 9x 4\.90.*\).*$@'=>'a:3:{s:2:"@2";i:3221;s:2:"@0";i:3231;s:2:"@1";i:3238;}', -'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Windows ME.*\).*$@'=>'a:3:{s:2:"@6";i:3224;s:2:"@5";i:3232;s:2:"@1";i:3233;}', -'@^Mozilla/.\..*\(.*Win 9x 4\.90.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@1";i:3239;s:2:"@2";i:3254;s:2:"@0";i:3261;}', -'@^Mozilla/.\..*\(.*Windows 2000.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@9";i:3240;s:2:"@5";i:3241;s:2:"@3";i:3249;s:2:"@4";i:3253;s:2:"@7";i:3255;s:2:"@8";i:3257;s:2:"@6";i:3260;s:2:"@2";i:3264;}', -'@^Mozilla/.\..*\(.*Windows 9(\d).*\).*Opera.11\.(\d).*$@'=>'a:6:{s:4:"@5|6";i:3242;s:4:"@8|6";i:3243;s:4:"@5|1";i:3245;s:4:"@5|5";i:3246;s:4:"@8|5";i:3258;s:4:"@8|1";i:3266;}', -'@^Mozilla/.\..*\(.*Windows ME.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@5";i:3244;s:2:"@6";i:3248;s:2:"@1";i:3267;}', -'@^Mozilla/.\..*.*\(.*Windows NT (\d)\.(\d).*\).*Opera.*$@'=>'a:6:{s:4:"@4|0";i:3247;s:4:"@6|1";i:3251;s:4:"@5|1";i:3252;s:4:"@5|0";i:3256;s:4:"@5|2";i:3268;s:4:"@6|0";i:3269;}', -'@^Mozilla/.\..*\(.*Opera..*Windows NT (\d)\.(\d).*\).*$@'=>'a:6:{s:4:"@6|1";i:3250;s:4:"@5|2";i:3259;s:4:"@5|1";i:3262;s:4:"@5|0";i:3263;s:4:"@4|0";i:3265;s:4:"@6|0";i:3270;}', -'@^Mozilla/2\.0 \(compatible; Ask Jeeves\)$@'=>3271, -'@^Microsoft Office Existence Discovery$@'=>3272, +'@^Opera/9\.80.*\(.*Mac OS X.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@1";i:3207;s:2:"@5";i:3208;s:2:"@6";i:3210;}', +'@^Opera/9\.80.*\(.*FreeBSD.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@3";i:3209;s:2:"@5";i:3211;s:2:"@4";i:3212;s:2:"@1";i:3213;s:2:"@0";i:3215;s:2:"@2";i:3216;s:2:"@6";i:3218;}', +'@^Mozilla/.*\(.*MSIE 1\.5.*Windows NT 3\.1.*\).*$@'=>3214, +'@^Opera/.*\(.*Windows Mobile.*Opera Mobi.*\).*$@'=>3217, +'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Windows 9(\d).*\).*$@'=>'a:6:{s:4:"@6|8";i:3219;s:4:"@1|5";i:3222;s:4:"@1|8";i:3223;s:4:"@6|5";i:3225;s:4:"@5|5";i:3231;s:4:"@5|8";i:3232;}', +'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Windows ME.*\).*$@'=>'a:3:{s:2:"@5";i:3220;s:2:"@1";i:3224;s:2:"@6";i:3235;}', +'@^Mozilla/.\..*\(.*Opera/(\d)\..*Windows 2000.*\).*$@'=>'a:8:{s:2:"@5";i:3221;s:2:"@9";i:3227;s:2:"@3";i:3228;s:2:"@8";i:3229;s:2:"@4";i:3230;s:2:"@6";i:3233;s:2:"@7";i:3236;s:2:"@2";i:3238;}', +'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Win 9x 4\.90.*\).*$@'=>'a:3:{s:2:"@1";i:3226;s:2:"@2";i:3234;s:2:"@0";i:3237;}', +'@^Mozilla/.\..*\(.*Windows 9(\d).*\).*Opera.11\.(\d).*$@'=>'a:6:{s:4:"@8|5";i:3239;s:4:"@5|6";i:3248;s:4:"@8|6";i:3249;s:4:"@5|1";i:3251;s:4:"@8|1";i:3252;s:4:"@5|5";i:3253;}', +'@^Mozilla/.\..*.*\(.*Windows NT (\d)\.(\d).*\).*Opera.*$@'=>'a:6:{s:4:"@5|2";i:3240;s:4:"@4|0";i:3241;s:4:"@5|0";i:3242;s:4:"@5|1";i:3246;s:4:"@6|0";i:3254;s:4:"@6|1";i:3255;}', +'@^Mozilla/.\..*\(.*Opera..*Windows NT (\d)\.(\d).*\).*$@'=>'a:6:{s:4:"@5|1";i:3243;s:4:"@5|2";i:3244;s:4:"@6|0";i:3245;s:4:"@6|1";i:3247;s:4:"@4|0";i:3266;s:4:"@5|0";i:3269;}', +'@^Mozilla/.\..*\(.*Windows ME.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@6";i:3250;s:2:"@5";i:3263;s:2:"@1";i:3265;}', +'@^Mozilla/.\..*\(.*Windows 2000.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@8";i:3256;s:2:"@6";i:3257;s:2:"@7";i:3258;s:2:"@4";i:3259;s:2:"@2";i:3261;s:2:"@3";i:3264;s:2:"@5";i:3267;s:2:"@9";i:3270;}', +'@^Mozilla/.\..*\(.*Win 9x 4\.90.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@2";i:3260;s:2:"@0";i:3262;s:2:"@1";i:3268;}', +'@^Microsoft Office Existence Discovery$@'=>3271, +'@^Mozilla/2\.0 \(compatible; Ask Jeeves\)$@'=>3272, '@^CatchBot/.*; \+http\://www\.catchbot\.com$@'=>3273, -'@^Feedster Crawler/.\.0; Feedster, Inc\.$@'=>3274, -'@^Mozilla/4\.0 \(compatible; ZuneHD 4\..*\)$@'=>3275, -'@^Mozilla/5\.0 \(compatible; NLCrawler/.*$@'=>3276, +'@^Mozilla/4\.0 \(compatible; ZuneHD 4\..*\)$@'=>3274, +'@^Mozilla/5\.0 \(compatible; NLCrawler/.*$@'=>3275, +'@^Feedster Crawler/.\.0; Feedster, Inc\.$@'=>3276, '@^Windows CE \(Pocket PC\) \- Version .*\..*$@'=>3277, '@^A1 Website Download/1\..* \(.*\) miggibot$@'=>3278, -'@^QuickTime.*\(qtver\=10\..*os\=Windows 9(\d).*\)$@'=>'a:2:{s:2:"@5";i:3279;s:2:"@8";i:3280;}', +'@^QuickTime.*\(qtver\=10\..*os\=Windows 9(\d).*\)$@'=>'a:2:{s:2:"@5";i:3279;s:2:"@8";i:3282;}', +'@^QuickTime.*\(qtver\=10\..*os\=Windows Me.*\)$@'=>3280, '@^QuickTime.*\(qtver\=7\..*;os\=Windows Me.*\)$@'=>3281, -'@^QuickTime.*\(qtver\=7\..*;os\=Windows 98.*\)$@'=>3282, -'@^QuickTime.*\(qtver\=10\..*os\=Windows Me.*\)$@'=>3283, -'@^iCab/(\d)\.(\d).* \(Macintosh; .; .*Mac OS X.*\)$@'=>'a:3:{s:4:"@2|8";i:3284;s:4:"@2|9";i:3285;s:4:"@3|0";i:3286;}', -'@^Opera/9\.80.*\(.*FreeBSD.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@6";i:3287;s:2:"@1";i:3288;s:2:"@5";i:3290;}', -'@^Opera/9\.80.*\(.*Mac OS X.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@2";i:3289;s:2:"@1";i:3300;s:2:"@0";i:3302;}', -'@^Mozilla/.*\(.*MSIE (\d)\..*Windows NT (\d)\.(\d).*\).*$@'=>'a:6:{s:6:"@2|3|5";i:3291;s:6:"@2|3|1";i:3292;s:6:"@3|3|1";i:3293;s:6:"@3|3|5";i:3297;s:6:"@2|4|0";i:3298;s:6:"@3|4|0";i:3301;}', -'@^Opera/.*\(.*BlackBerry.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@7";i:3294;s:2:"@9";i:3295;s:2:"@6";i:3296;s:2:"@8";i:3299;}', -'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Windows 9(\d).*\).*$@'=>'a:6:{s:4:"@0|5";i:3303;s:4:"@1|5";i:3309;s:4:"@0|8";i:3313;s:4:"@1|8";i:3314;s:4:"@2|5";i:3315;s:4:"@2|8";i:3316;}', -'@^Mozilla/.\..*\(.*Opera/(\d)\..*Win 9x 4\.90.*\).*$@'=>'a:8:{s:2:"@7";i:3304;s:2:"@4";i:3311;s:2:"@6";i:3312;s:2:"@8";i:3317;s:2:"@3";i:3318;s:2:"@5";i:3320;s:2:"@9";i:3323;s:2:"@2";i:3324;}', -'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Mac OS X.*\).*$@'=>'a:7:{s:2:"@2";i:3305;s:2:"@6";i:3306;s:2:"@5";i:3307;s:2:"@4";i:3308;s:2:"@3";i:3319;s:2:"@0";i:3322;s:2:"@1";i:3326;}', -'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Windows ME.*\).*$@'=>'a:3:{s:2:"@0";i:3310;s:2:"@2";i:3321;s:2:"@1";i:3325;}', -'@^Mozilla/.\..*\(.*Windows ME.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@2";i:3327;s:2:"@0";i:3335;s:2:"@1";i:3341;}', -'@^Mozilla/.\..*\(.*Win 9x 4\.90.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@9";i:3328;s:2:"@7";i:3329;s:2:"@8";i:3336;s:2:"@6";i:3338;s:2:"@4";i:3339;s:2:"@5";i:3343;s:2:"@2";i:3345;s:2:"@3";i:3351;}', -'@^Mozilla/.\..*\(.*Windows 9(\d).*\).*Opera.1(\d)\..*$@'=>'a:6:{s:4:"@8|2";i:3330;s:4:"@5|2";i:3332;s:4:"@5|0";i:3333;s:4:"@8|0";i:3334;s:4:"@5|1";i:3337;s:4:"@8|1";i:3340;}', -'@^Mozilla/.\..*\(.*Mac OS X.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@1";i:3331;s:2:"@3";i:3342;s:2:"@2";i:3344;s:2:"@0";i:3346;s:2:"@4";i:3347;s:2:"@5";i:3349;s:2:"@6";i:3350;}', -'@^Mozilla/.\..*\(.*Mac_PowerPC.*\).*Opera.9\..*$@'=>3348, -'@^RixBot \(http\://babelserver\.org/rix\)$@'=>3353, -'@^Mozilla/4\.0 \(compatible; N\-Stealth\)$@'=>3354, -'@^Microsoft Office Protocol Discovery$@'=>3355, -'@^Mozilla/5\.0 \(compatible; Pogodak\..*\)$@'=>3356, -'@^Mozilla/4\.0 \(compatible; DepSpid/.*\)$@'=>3357, -'@^Mozilla/5\.0 \(compatible; Mail\.RU/.*\)$@'=>3358, -'@^Feedreader .* \(Powered by Newsbrain\)$@'=>3359, +'@^QuickTime.*\(qtver\=7\..*;os\=Windows 98.*\)$@'=>3283, +'@^iCab/(\d)\.(\d).* \(Macintosh; .; .*Mac OS X.*\)$@'=>'a:3:{s:4:"@3|0";i:3284;s:4:"@2|8";i:3285;s:4:"@2|9";i:3286;}', +'@^Opera/9\.80.*\(.*FreeBSD.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@1";i:3287;s:2:"@6";i:3300;s:2:"@5";i:3301;}', +'@^Opera/9\.80.*\(.*Mac OS X.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@1";i:3288;s:2:"@2";i:3293;s:2:"@0";i:3297;}', +'@^Mozilla/.*\(.*MSIE (\d)\..*Windows NT (\d)\.(\d).*\).*$@'=>'a:6:{s:6:"@3|4|0";i:3289;s:6:"@2|4|0";i:3294;s:6:"@3|3|5";i:3295;s:6:"@2|3|5";i:3296;s:6:"@3|3|1";i:3299;s:6:"@2|3|1";i:3302;}', +'@^Opera/.*\(.*BlackBerry.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@9";i:3290;s:2:"@8";i:3291;s:2:"@6";i:3292;s:2:"@7";i:3298;}', +'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Windows ME.*\).*$@'=>'a:3:{s:2:"@1";i:3303;s:2:"@2";i:3310;s:2:"@0";i:3319;}', +'@^Mozilla/.\..*\(.*Opera/(\d)\..*Win 9x 4\.90.*\).*$@'=>'a:8:{s:2:"@9";i:3304;s:2:"@4";i:3306;s:2:"@5";i:3307;s:2:"@2";i:3315;s:2:"@6";i:3316;s:2:"@7";i:3318;s:2:"@3";i:3322;s:2:"@8";i:3326;}', +'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Windows 9(\d).*\).*$@'=>'a:6:{s:4:"@1|5";i:3305;s:4:"@1|8";i:3309;s:4:"@0|8";i:3312;s:4:"@0|5";i:3317;s:4:"@2|5";i:3323;s:4:"@2|8";i:3324;}', +'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Mac OS X.*\).*$@'=>'a:7:{s:2:"@0";i:3308;s:2:"@6";i:3311;s:2:"@5";i:3313;s:2:"@3";i:3314;s:2:"@2";i:3320;s:2:"@4";i:3321;s:2:"@1";i:3325;}', +'@^Mozilla/.\..*\(.*Win 9x 4\.90.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@8";i:3327;s:2:"@6";i:3328;s:2:"@5";i:3333;s:2:"@2";i:3334;s:2:"@9";i:3338;s:2:"@7";i:3339;s:2:"@4";i:3343;s:2:"@3";i:3348;}', +'@^Mozilla/.\..*\(.*Mac_PowerPC.*\).*Opera.9\..*$@'=>3329, +'@^Mozilla/.\..*\(.*Mac OS X.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@0";i:3330;s:2:"@6";i:3340;s:2:"@4";i:3341;s:2:"@5";i:3344;s:2:"@2";i:3349;s:2:"@3";i:3350;s:2:"@1";i:3351;}', +'@^Mozilla/.\..*\(.*Windows 9(\d).*\).*Opera.1(\d)\..*$@'=>'a:6:{s:4:"@8|0";i:3331;s:4:"@5|0";i:3332;s:4:"@8|2";i:3336;s:4:"@5|2";i:3337;s:4:"@5|1";i:3345;s:4:"@8|1";i:3346;}', +'@^Mozilla/.\..*\(.*Windows ME.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@2";i:3335;s:2:"@0";i:3342;s:2:"@1";i:3347;}', +'@^Microsoft Office Protocol Discovery$@'=>3352, +'@^RixBot \(http\://babelserver\.org/rix\)$@'=>3354, +'@^Mozilla/4\.0 \(compatible; N\-Stealth\)$@'=>3355, +'@^Mozilla/4\.0 \(compatible; DepSpid/.*\)$@'=>3356, +'@^Feedreader .* \(Powered by Newsbrain\)$@'=>3357, +'@^Mozilla/5\.0 \(compatible; Pogodak\..*\)$@'=>3358, +'@^Mozilla/5\.0 \(compatible; Mail\.RU/.*\)$@'=>3359, '@^Mozilla/.* \(compatible; WebCapture.*\)$@'=>3360, -'@^check_http/.* \(nagios\-plugins 1\.(\d)\..*\)$@'=>'a:4:{s:2:"@3";i:3361;s:2:"@1";i:3362;s:2:"@4";i:3364;s:2:"@2";i:3365;}', -'@^Mozilla/5\.0 \(.*Google Keyword Tool.*\)$@'=>3363, -'@^QuickTime.*\(qtver\=(\d)\..*os\=Windows 9(\d).*\)$@'=>'a:5:{s:4:"@5|5";i:3366;s:4:"@5|8";i:3368;s:4:"@7|5";i:3369;s:4:"@6|8";i:3370;s:4:"@6|5";i:3371;}', -'@^QuickTime.*\(qtver\=(\d)\..*os\=Windows Me.*\)$@'=>'a:2:{s:2:"@5";i:3367;s:2:"@6";i:3372;}', -'@^Opera/.*\(BlackBerry.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@3";i:3373;s:2:"@4";i:3374;s:2:"@5";i:3375;s:2:"@2";i:3376;}', -'@^Opera/9\.80.*\(.*FreeBSD.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@2";i:3377;s:2:"@0";i:3390;s:2:"@1";i:3392;}', -'@^Opera/9\.80.*\(.*SunOS.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@5";i:3378;s:2:"@0";i:3383;s:2:"@1";i:3387;s:2:"@3";i:3389;s:2:"@4";i:3393;s:2:"@2";i:3395;s:2:"@6";i:3399;}', -'@^Mozilla/.*\(.*MSIE 1\.(\d).*Windows 3\.11.*\).*$@'=>'a:2:{s:2:"@5";i:3379;s:2:"@0";i:3384;}', -'@^Opera/9\.80.*\(.*Linux.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@5";i:3380;s:2:"@3";i:3381;s:2:"@0";i:3382;s:2:"@4";i:3386;s:2:"@1";i:3388;s:2:"@2";i:3391;s:2:"@6";i:3394;}', -'@^Opera/.*\(.*J2ME/MIDP.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@6";i:3385;s:2:"@7";i:3396;s:2:"@9";i:3398;s:2:"@8";i:3403;}', -'@^Opera/.*\(.*Series 60.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@6";i:3397;s:2:"@8";i:3400;s:2:"@9";i:3401;s:2:"@7";i:3402;}', -'@^Mozilla/.\..*\(.*Opera/(\d)\..*Windows 9(\d).*\).*$@'=>'a:16:{s:4:"@9|8";i:3404;s:4:"@2|8";i:3405;s:4:"@3|5";i:3409;s:4:"@2|5";i:3411;s:4:"@7|5";i:3415;s:4:"@7|8";i:3416;s:4:"@6|5";i:3419;s:4:"@6|8";i:3420;s:4:"@3|8";i:3425;s:4:"@4|8";i:3427;s:4:"@4|5";i:3429;s:4:"@9|5";i:3430;s:4:"@5|5";i:3433;s:4:"@5|8";i:3435;s:4:"@8|5";i:3436;s:4:"@8|8";i:3437;}', -'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*FreeBSD.*\).*$@'=>'a:7:{s:2:"@0";i:3406;s:2:"@6";i:3408;s:2:"@5";i:3414;s:2:"@2";i:3418;s:2:"@3";i:3421;s:2:"@4";i:3432;s:2:"@1";i:3434;}', -'@^Mozilla/.\..*\(.*Opera/(\d)\..*Windows ME.*\).*$@'=>'a:8:{s:2:"@9";i:3407;s:2:"@2";i:3410;s:2:"@7";i:3417;s:2:"@8";i:3423;s:2:"@6";i:3424;s:2:"@5";i:3426;s:2:"@4";i:3428;s:2:"@3";i:3431;}', -'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Mac OS X.*\).*$@'=>'a:3:{s:2:"@6";i:3412;s:2:"@5";i:3413;s:2:"@1";i:3422;}', -'@^Mozilla/.\..*\(.*Windows ME.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@7";i:3438;s:2:"@4";i:3441;s:2:"@5";i:3442;s:2:"@8";i:3444;s:2:"@6";i:3451;s:2:"@2";i:3462;s:2:"@3";i:3470;s:2:"@9";i:3473;}', -'@^Mozilla/.\..*\(.*FreeBSD.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@4";i:3439;s:2:"@2";i:3450;s:2:"@3";i:3452;s:2:"@5";i:3454;s:2:"@1";i:3457;s:2:"@0";i:3459;s:2:"@6";i:3464;}', -'@^Mozilla/.\..*\(.*Opera..*Windows 2000.*\).*$@'=>3440, -'@^Mozilla/.\..*\(.*Mac OS X.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@5";i:3443;s:2:"@1";i:3453;s:2:"@6";i:3460;}', -'@^Mozilla/.\..*\(.*Windows 9(\d).*\).*Opera.(\d)\..*$@'=>'a:16:{s:4:"@8|5";i:3445;s:4:"@5|5";i:3446;s:4:"@5|8";i:3447;s:4:"@8|8";i:3449;s:4:"@5|6";i:3455;s:4:"@8|6";i:3456;s:4:"@8|4";i:3458;s:4:"@5|7";i:3461;s:4:"@8|2";i:3463;s:4:"@8|7";i:3465;s:4:"@5|2";i:3466;s:4:"@5|9";i:3467;s:4:"@8|9";i:3468;s:4:"@5|4";i:3469;s:4:"@8|3";i:3471;s:4:"@5|3";i:3472;}', -'@^Mozilla/.\..*.*\(.*Windows 2000.*\).*Opera.*$@'=>3448, +'@^check_http/.* \(nagios\-plugins 1\.(\d)\..*\)$@'=>'a:4:{s:2:"@4";i:3361;s:2:"@2";i:3363;s:2:"@1";i:3364;s:2:"@3";i:3365;}', +'@^Mozilla/5\.0 \(.*Google Keyword Tool.*\)$@'=>3362, +'@^QuickTime.*\(qtver\=(\d)\..*os\=Windows 9(\d).*\)$@'=>'a:5:{s:4:"@5|5";i:3366;s:4:"@7|5";i:3367;s:4:"@6|5";i:3368;s:4:"@6|8";i:3369;s:4:"@5|8";i:3372;}', +'@^QuickTime.*\(qtver\=(\d)\..*os\=Windows Me.*\)$@'=>'a:2:{s:2:"@6";i:3370;s:2:"@5";i:3371;}', +'@^Opera/.*\(BlackBerry.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@2";i:3373;s:2:"@4";i:3374;s:2:"@5";i:3375;s:2:"@3";i:3376;}', +'@^Opera/9\.80.*\(.*SunOS.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@5";i:3377;s:2:"@2";i:3379;s:2:"@4";i:3383;s:2:"@0";i:3391;s:2:"@3";i:3392;s:2:"@6";i:3395;s:2:"@1";i:3403;}', +'@^Opera/.*\(.*J2ME/MIDP.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@6";i:3378;s:2:"@8";i:3397;s:2:"@9";i:3398;s:2:"@7";i:3400;}', +'@^Opera/9\.80.*\(.*FreeBSD.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@0";i:3380;s:2:"@1";i:3385;s:2:"@2";i:3399;}', +'@^Opera/9\.80.*\(.*Linux.*\).*Version/12\.1(\d).*$@'=>'a:7:{s:2:"@4";i:3381;s:2:"@5";i:3382;s:2:"@6";i:3386;s:2:"@2";i:3387;s:2:"@0";i:3388;s:2:"@1";i:3396;s:2:"@3";i:3402;}', +'@^Opera/.*\(.*Series 60.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@6";i:3384;s:2:"@9";i:3389;s:2:"@8";i:3390;s:2:"@7";i:3393;}', +'@^Mozilla/.*\(.*MSIE 1\.(\d).*Windows 3\.11.*\).*$@'=>'a:2:{s:2:"@0";i:3394;s:2:"@5";i:3401;}', +'@^Mozilla/.\..*\(.*Opera/(\d)\..*Windows 9(\d).*\).*$@'=>'a:16:{s:4:"@8|8";i:3404;s:4:"@3|8";i:3410;s:4:"@6|5";i:3411;s:4:"@2|5";i:3412;s:4:"@2|8";i:3413;s:4:"@9|5";i:3415;s:4:"@8|5";i:3416;s:4:"@6|8";i:3417;s:4:"@7|5";i:3420;s:4:"@9|8";i:3422;s:4:"@4|5";i:3424;s:4:"@4|8";i:3425;s:4:"@7|8";i:3428;s:4:"@5|5";i:3430;s:4:"@3|5";i:3434;s:4:"@5|8";i:3437;}', +'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*FreeBSD.*\).*$@'=>'a:7:{s:2:"@3";i:3405;s:2:"@5";i:3406;s:2:"@1";i:3408;s:2:"@4";i:3418;s:2:"@2";i:3421;s:2:"@0";i:3429;s:2:"@6";i:3431;}', +'@^Mozilla/.\..*\(.*Opera/(\d)\..*Windows ME.*\).*$@'=>'a:8:{s:2:"@8";i:3407;s:2:"@3";i:3409;s:2:"@2";i:3414;s:2:"@6";i:3419;s:2:"@7";i:3423;s:2:"@9";i:3426;s:2:"@4";i:3427;s:2:"@5";i:3436;}', +'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Mac OS X.*\).*$@'=>'a:3:{s:2:"@6";i:3432;s:2:"@5";i:3433;s:2:"@1";i:3435;}', +'@^Mozilla/.\..*\(.*Windows 9(\d).*\).*Opera.(\d)\..*$@'=>'a:16:{s:4:"@5|2";i:3438;s:4:"@5|7";i:3441;s:4:"@8|7";i:3442;s:4:"@5|6";i:3445;s:4:"@8|4";i:3448;s:4:"@8|6";i:3449;s:4:"@8|2";i:3453;s:4:"@5|3";i:3456;s:4:"@5|4";i:3458;s:4:"@5|8";i:3461;s:4:"@8|3";i:3462;s:4:"@8|9";i:3464;s:4:"@5|9";i:3465;s:4:"@8|8";i:3466;s:4:"@5|5";i:3469;s:4:"@8|5";i:3471;}', +'@^Mozilla/.\..*\(.*FreeBSD.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@5";i:3439;s:2:"@2";i:3443;s:2:"@0";i:3451;s:2:"@3";i:3452;s:2:"@6";i:3454;s:2:"@4";i:3460;s:2:"@1";i:3467;}', +'@^Mozilla/.\..*\(.*Windows ME.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@9";i:3440;s:2:"@6";i:3446;s:2:"@7";i:3447;s:2:"@2";i:3455;s:2:"@5";i:3457;s:2:"@4";i:3459;s:2:"@3";i:3463;s:2:"@8";i:3470;}', +'@^Mozilla/.\..*\(.*Mac OS X.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@1";i:3444;s:2:"@5";i:3450;s:2:"@6";i:3468;}', +'@^Mozilla/.\..*\(.*Opera..*Windows 2000.*\).*$@'=>3472, +'@^Mozilla/.\..*.*\(.*Windows 2000.*\).*Opera.*$@'=>3473, '@^Superpages URL Verification Engine$@'=>3474, -'@^Mono Browser Capabilities Updater.*$@'=>3475, -'@^Mozilla/5\.0 \(compatible; Webbot/.*\)$@'=>3476, +'@^kinjabot \(http\://www\.kinja\.com; .*\)$@'=>3475, +'@^Mono Browser Capabilities Updater.*$@'=>3476, '@^PHP Browser Capabilities Project/.*$@'=>3477, -'@^Mozilla/4\.0 \(compatible; Getleft.*\)$@'=>3478, -'@^BlijbolReallySimpleAggregator/2\.0.*$@'=>3479, -'@^kinjabot \(http\://www\.kinja\.com; .*\)$@'=>3480, +'@^BlijbolReallySimpleAggregator/2\.0.*$@'=>3478, +'@^iCab/4\.0 \(Macintosh; U; .*Mac OS X\)$@'=>3479, +'@^Feedfetcher\-Google\-iGoogleGadgets.*$@'=>3480, '@^Mozilla/4\.0 \(Compatible\); URLBase.*$@'=>3481, -'@^Feedfetcher\-Google\-iGoogleGadgets.*$@'=>3482, -'@^iCab/4\.0 \(Macintosh; U; .*Mac OS X\)$@'=>3483, +'@^Mozilla/4\.0 \(compatible; Getleft.*\)$@'=>3482, +'@^Mozilla/5\.0 \(compatible; Webbot/.*\)$@'=>3483, '@^Mozilla/5\.0 \(.*Feedfetcher\-Google.*\)$@'=>3484, -'@^SAMSUNG\-GT\-S5620/.*Dolfin/1\.5.*MIDP.*$@'=>3485, -'@^.*Spinn3r.*http\://spinn3r\.com/robot.*$@'=>3486, -'@^Opera/.*\(J2ME/MIDP.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@5";i:3487;s:2:"@3";i:3490;s:2:"@4";i:3491;s:2:"@2";i:3494;}', -'@^Opera/.*\(Series 60.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@5";i:3488;s:2:"@2";i:3489;s:2:"@3";i:3492;s:2:"@4";i:3493;}', -'@^Opera/9\.80.*\(.*Linux.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@5";i:3495;s:2:"@6";i:3497;s:2:"@1";i:3501;}', -'@^Mozilla/.*\(.*MSIE (\d)\..*Windows 3\.11.*\).*$@'=>'a:2:{s:2:"@2";i:3496;s:2:"@3";i:3502;}', -'@^Mozilla/.*\(.*MSIE 1\.(\d).*Windows 3\.1.*\).*$@'=>'a:2:{s:2:"@0";i:3498;s:2:"@5";i:3499;}', -'@^Opera/9\.80.*\(.*SunOS.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@1";i:3500;s:2:"@6";i:3503;s:2:"@5";i:3504;}', -'@^Mozilla/.\..*\(.*Opera/11\.(\d).*FreeBSD.*\).*$@'=>'a:3:{s:2:"@1";i:3505;s:2:"@6";i:3507;s:2:"@5";i:3508;}', -'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Mac OS X.*\).*$@'=>'a:3:{s:2:"@0";i:3506;s:2:"@2";i:3509;s:2:"@1";i:3510;}', -'@^Mozilla/.\..*\(.*Mac OS X.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@2";i:3511;s:2:"@0";i:3514;s:2:"@1";i:3515;}', -'@^Mozilla/.\..*\(.*Opera..*Win 9x 4\.90.*\).*$@'=>3512, -'@^Mozilla/.\..*\(.*FreeBSD.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@6";i:3513;s:2:"@5";i:3516;s:2:"@1";i:3518;}', -'@^Mozilla/.\..*.*\(.*Win 9x 4\.90.*\).*Opera.*$@'=>3517, -'@^Mozilla/4\.0 \(compatible; Arachmo\)$@'=>3519, -'@^Pagebull http\://www\.pagebull\.com/$@'=>3520, -'@^SCEJ PSP BROWSER 0102pspNavigator$@'=>3521, +'@^.*Spinn3r.*http\://spinn3r\.com/robot.*$@'=>3485, +'@^SAMSUNG\-GT\-S5620/.*Dolfin/1\.5.*MIDP.*$@'=>3486, +'@^Opera/.*\(Series 60.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@3";i:3487;s:2:"@5";i:3490;s:2:"@4";i:3491;s:2:"@2";i:3494;}', +'@^Opera/.*\(J2ME/MIDP.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@2";i:3488;s:2:"@5";i:3489;s:2:"@3";i:3492;s:2:"@4";i:3493;}', +'@^Opera/9\.80.*\(.*Linux.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@6";i:3495;s:2:"@1";i:3500;s:2:"@5";i:3501;}', +'@^Mozilla/.*\(.*MSIE (\d)\..*Windows 3\.11.*\).*$@'=>'a:2:{s:2:"@3";i:3496;s:2:"@2";i:3497;}', +'@^Opera/9\.80.*\(.*SunOS.*\).*Version/11\.(\d).*$@'=>'a:3:{s:2:"@5";i:3498;s:2:"@1";i:3502;s:2:"@6";i:3503;}', +'@^Mozilla/.*\(.*MSIE 1\.(\d).*Windows 3\.1.*\).*$@'=>'a:2:{s:2:"@0";i:3499;s:2:"@5";i:3504;}', +'@^Mozilla/.\..*\(.*Opera/11\.(\d).*FreeBSD.*\).*$@'=>'a:3:{s:2:"@1";i:3505;s:2:"@5";i:3508;s:2:"@6";i:3509;}', +'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Mac OS X.*\).*$@'=>'a:3:{s:2:"@1";i:3506;s:2:"@0";i:3507;s:2:"@2";i:3510;}', +'@^Mozilla/.\..*\(.*FreeBSD.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@6";i:3511;s:2:"@1";i:3517;s:2:"@5";i:3518;}', +'@^Mozilla/.\..*.*\(.*Win 9x 4\.90.*\).*Opera.*$@'=>3512, +'@^Mozilla/.\..*\(.*Opera..*Win 9x 4\.90.*\).*$@'=>3513, +'@^Mozilla/.\..*\(.*Mac OS X.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@0";i:3514;s:2:"@2";i:3515;s:2:"@1";i:3516;}', +'@^Pagebull http\://www\.pagebull\.com/$@'=>3519, +'@^SCEJ PSP BROWSER 0102pspNavigator$@'=>3520, +'@^Mozilla/4\.0 \(compatible; Arachmo\)$@'=>3521, '@^Nozilla/P\.N \(Just for IDS woring\)$@'=>3522, -'@^Mozilla/5\.0 \(compatible; NGBot/.*\)$@'=>3523, -'@^Mozilla/5\.0 \(compatible; Vermut.*\)$@'=>3524, +'@^Mozilla/5\.0 \(compatible; Vermut.*\)$@'=>3523, +'@^Mozilla/5\.0 \(compatible; NGBot/.*\)$@'=>3524, '@^check_http/.* \(nagios\-plugins 1\..*\)$@'=>3525, -'@^QuickTime.*\(qtver\=10\..*os\=Mac 10\..*\)$@'=>3526, -'@^QuickTime.*\(qtver\=7\.6.*;os\=Mac 9\..*\)$@'=>3527, -'@^QuickTime.*\(qtver\=7\.6.*os\=Mac 10\..*\)$@'=>3528, +'@^QuickTime.*\(qtver\=7\.6.*;os\=Mac 9\..*\)$@'=>3526, +'@^QuickTime.*\(qtver\=7\.6.*os\=Mac 10\..*\)$@'=>3527, +'@^QuickTime.*\(qtver\=10\..*os\=Mac 10\..*\)$@'=>3528, '@^Opera/.*\(BlackBerry.*Opera Mini/.*\).*$@'=>3529, -'@^Mozilla/.*\(.*MSIE (\d)\..*Mac_PowerPC.*\).*$@'=>'a:2:{s:2:"@2";i:3530;s:2:"@3";i:3531;}', -'@^Opera/.*\(.*Android.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@8";i:3532;s:2:"@6";i:3536;s:2:"@7";i:3538;s:2:"@9";i:3543;}', -'@^Opera/9\.80.*\(.*SunOS.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@0";i:3533;s:2:"@1";i:3534;s:2:"@2";i:3542;}', -'@^Opera/9\.80.*\(.*Linux.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@1";i:3535;s:2:"@2";i:3540;s:2:"@0";i:3545;}', -'@^Mozilla/.*\(.*MSIE (\d)\..*Windows 3\.1.*\).*$@'=>'a:2:{s:2:"@3";i:3537;s:2:"@2";i:3539;}', -'@^Mozilla/.*\(.*MSIE 1\.(\d).*Windows 95.*\).*$@'=>'a:2:{s:2:"@0";i:3541;s:2:"@5";i:3544;}', -'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Linux.*\).*$@'=>'a:7:{s:2:"@3";i:3546;s:2:"@2";i:3550;s:2:"@4";i:3553;s:2:"@1";i:3557;s:2:"@5";i:3561;s:2:"@0";i:3564;s:2:"@6";i:3566;}', -'@^Mozilla/.\..*\(.*Opera/(\d)\..*Mac OS X.*\).*$@'=>'a:8:{s:2:"@3";i:3547;s:2:"@4";i:3548;s:2:"@2";i:3551;s:2:"@6";i:3552;s:2:"@9";i:3556;s:2:"@5";i:3559;s:2:"@8";i:3562;s:2:"@7";i:3570;}', -'@^Mozilla/.\..*\(.*Opera/1(\d)\..*FreeBSD.*\).*$@'=>'a:3:{s:2:"@0";i:3549;s:2:"@1";i:3558;s:2:"@2";i:3563;}', -'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*SunOS.*\).*$@'=>'a:7:{s:2:"@4";i:3554;s:2:"@1";i:3555;s:2:"@0";i:3560;s:2:"@2";i:3565;s:2:"@5";i:3567;s:2:"@3";i:3568;s:2:"@6";i:3569;}', -'@^Mozilla/.\..*\(.*Mac OS X.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@8";i:3571;s:2:"@5";i:3573;s:2:"@7";i:3576;s:2:"@6";i:3589;s:2:"@3";i:3596;s:2:"@9";i:3597;s:2:"@2";i:3600;s:2:"@4";i:3602;}', -'@^Mozilla/.\..*\(.*Windows CE.*\).*Opera..*$@'=>3572, -'@^Mozilla/.\..*\(.*Linux.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@2";i:3574;s:2:"@5";i:3575;s:2:"@3";i:3579;s:2:"@1";i:3591;s:2:"@6";i:3594;s:2:"@4";i:3595;s:2:"@0";i:3599;}', -'@^Mozilla/.\..*.*\(.*Windows ME.*Opera.*\).*$@'=>3577, -'@^Mozilla/.\..*.*\(.*Windows 9(\d).*\).*Opera.*$@'=>'a:2:{s:2:"@5";i:3578;s:2:"@8";i:3582;}', -'@^Mozilla/.\..*\(.*Opera..*Windows CE.*\).*$@'=>3580, -'@^Mozilla/.\..*\(.*Opera..*Windows 9(\d).*\).*$@'=>'a:2:{s:2:"@8";i:3581;s:2:"@5";i:3593;}', -'@^Mozilla/.\..*\(.*FreeBSD.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@1";i:3583;s:2:"@0";i:3584;s:2:"@2";i:3601;}', -'@^Mozilla/.\..*\(.*SunOS.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@5";i:3585;s:2:"@3";i:3586;s:2:"@2";i:3588;s:2:"@1";i:3590;s:2:"@6";i:3598;s:2:"@4";i:3603;s:2:"@0";i:3604;}', +'@^Opera/.*\(.*Android.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@8";i:3530;s:2:"@6";i:3531;s:2:"@9";i:3537;s:2:"@7";i:3545;}', +'@^Opera/9\.80.*\(.*Linux.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@2";i:3532;s:2:"@1";i:3540;s:2:"@0";i:3542;}', +'@^Mozilla/.*\(.*MSIE 1\.(\d).*Windows 95.*\).*$@'=>'a:2:{s:2:"@0";i:3533;s:2:"@5";i:3534;}', +'@^Mozilla/.*\(.*MSIE (\d)\..*Windows 3\.1.*\).*$@'=>'a:2:{s:2:"@3";i:3535;s:2:"@2";i:3541;}', +'@^Mozilla/.*\(.*MSIE (\d)\..*Mac_PowerPC.*\).*$@'=>'a:2:{s:2:"@3";i:3536;s:2:"@2";i:3544;}', +'@^Opera/9\.80.*\(.*SunOS.*\).*Version/1(\d)\..*$@'=>'a:3:{s:2:"@1";i:3538;s:2:"@0";i:3539;s:2:"@2";i:3543;}', +'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*Linux.*\).*$@'=>'a:7:{s:2:"@2";i:3546;s:2:"@4";i:3548;s:2:"@1";i:3556;s:2:"@5";i:3557;s:2:"@6";i:3566;s:2:"@0";i:3567;s:2:"@3";i:3568;}', +'@^Mozilla/.\..*\(.*Opera/1(\d)\..*FreeBSD.*\).*$@'=>'a:3:{s:2:"@1";i:3547;s:2:"@0";i:3551;s:2:"@2";i:3559;}', +'@^Mozilla/.\..*\(.*Opera/(\d)\..*Mac OS X.*\).*$@'=>'a:8:{s:2:"@4";i:3549;s:2:"@5";i:3550;s:2:"@7";i:3552;s:2:"@9";i:3558;s:2:"@8";i:3562;s:2:"@6";i:3563;s:2:"@3";i:3564;s:2:"@2";i:3569;}', +'@^Mozilla/.\..*\(.*Opera/12\.1(\d).*SunOS.*\).*$@'=>'a:7:{s:2:"@5";i:3553;s:2:"@4";i:3554;s:2:"@1";i:3555;s:2:"@2";i:3560;s:2:"@0";i:3561;s:2:"@6";i:3565;s:2:"@3";i:3570;}', +'@^Mozilla/.\..*\(.*FreeBSD.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@1";i:3571;s:2:"@0";i:3595;s:2:"@2";i:3602;}', +'@^Mozilla/.\..*.*\(.*Windows 9(\d).*\).*Opera.*$@'=>'a:2:{s:2:"@5";i:3572;s:2:"@8";i:3579;}', +'@^Mozilla/.\..*\(.*SunOS.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@4";i:3573;s:2:"@3";i:3575;s:2:"@2";i:3584;s:2:"@1";i:3591;s:2:"@6";i:3594;s:2:"@5";i:3598;s:2:"@0";i:3605;}', +'@^Mozilla/.\..*\(.*Opera..*Windows CE.*\).*$@'=>3574, +'@^Mozilla/.\..*\(.*Opera..*Windows 9(\d).*\).*$@'=>'a:2:{s:2:"@8";i:3576;s:2:"@5";i:3589;}', +'@^Mozilla/.\..*\(.*Linux.*\).*Opera.12\.1(\d).*$@'=>'a:7:{s:2:"@1";i:3577;s:2:"@2";i:3580;s:2:"@3";i:3583;s:2:"@4";i:3585;s:2:"@5";i:3590;s:2:"@6";i:3592;s:2:"@0";i:3604;}', +'@^Mozilla/.\..*\(.*Mac OS X.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@5";i:3578;s:2:"@6";i:3582;s:2:"@9";i:3586;s:2:"@4";i:3593;s:2:"@3";i:3596;s:2:"@2";i:3597;s:2:"@8";i:3599;s:2:"@7";i:3601;}', +'@^Mozilla/.\..*.*\(.*Windows ME.*Opera.*\).*$@'=>3581, '@^Mozilla/.\..*\(.*Opera..*Windows ME.*\).*$@'=>3587, -'@^Mozilla/.\..*\(.*Opera..*Windows XP.*\).*$@'=>3592, -'@^Mozilla/.\..*.*\(.*Windows XP.*\).*Opera.*$@'=>3605, +'@^Mozilla/.\..*\(.*Opera..*Windows XP.*\).*$@'=>3588, +'@^Mozilla/.\..*.*\(.*Windows XP.*\).*Opera.*$@'=>3600, +'@^Mozilla/.\..*\(.*Windows CE.*\).*Opera..*$@'=>3603, '@^Mozilla/4\.0 \(fantomCrew Browser\)$@'=>3606, -'@^Fooky\.com/ScorpionBot/ScoutOut;.*$@'=>3607, -'@^NewsGator FetchLinks extension/.*$@'=>3608, -'@^QuickTime.*\(qtver\=(\d)\..*os\=Mac 10\..*\)$@'=>'a:3:{s:2:"@7";i:3609;s:2:"@6";i:3611;s:2:"@5";i:3612;}', -'@^QuickTime.*\(qtver\=10\..*os\=Mac 9\..*\)$@'=>3610, -'@^Opera/.*\(Series 60.*Opera Mini/.*\).*$@'=>3613, -'@^Opera/.*\(J2ME/MIDP.*Opera Mini/.*\).*$@'=>3614, -'@^Opera/.*\(Android.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@5";i:3615;s:2:"@3";i:3616;s:2:"@4";i:3617;s:2:"@2";i:3618;}', -'@^Opera/.*\(.*iPhone.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@6";i:3619;s:2:"@7";i:3621;s:2:"@8";i:3622;s:2:"@9";i:3623;}', -'@^Mozilla/.*\(.*MSIE (\d)\..*Windows 95.*\).*$@'=>'a:2:{s:2:"@3";i:3620;s:2:"@2";i:3624;}', -'@^Mozilla/.\..*\(.*Opera/(\d)\..*FreeBSD.*\).*$@'=>'a:8:{s:2:"@5";i:3625;s:2:"@7";i:3626;s:2:"@6";i:3628;s:2:"@4";i:3630;s:2:"@3";i:3631;s:2:"@2";i:3632;s:2:"@8";i:3633;s:2:"@9";i:3637;}', -'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Linux.*\).*$@'=>'a:3:{s:2:"@6";i:3627;s:2:"@1";i:3634;s:2:"@5";i:3636;}', -'@^Mozilla/.\..*\(.*Opera/11\.(\d).*SunOS.*\).*$@'=>'a:3:{s:2:"@1";i:3629;s:2:"@6";i:3635;s:2:"@5";i:3638;}', -'@^Mozilla/.\..*\(.*FreeBSD.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@7";i:3639;s:2:"@5";i:3641;s:2:"@8";i:3645;s:2:"@2";i:3647;s:2:"@4";i:3648;s:2:"@9";i:3651;s:2:"@3";i:3652;s:2:"@6";i:3653;}', -'@^Mozilla/.\..*\(.*SunOS.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@6";i:3640;s:2:"@1";i:3646;s:2:"@5";i:3654;}', -'@^Mozilla/.\..*\(.*Linux.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@6";i:3642;s:2:"@1";i:3643;s:2:"@5";i:3649;}', -'@^Mozilla/.\..*.*\(.*Macintosh.*\).*Opera.*$@'=>3644, -'@^Mozilla/.\..*\(.*Opera..*Macintosh.*\).*$@'=>3650, -'@^Mozilla/.\..*\(.*Symbian.*\).*Opera.6\..*$@'=>3655, +'@^NewsGator FetchLinks extension/.*$@'=>3607, +'@^Fooky\.com/ScorpionBot/ScoutOut;.*$@'=>3608, +'@^QuickTime.*\(qtver\=10\..*os\=Mac 9\..*\)$@'=>3609, +'@^QuickTime.*\(qtver\=(\d)\..*os\=Mac 10\..*\)$@'=>'a:3:{s:2:"@7";i:3610;s:2:"@5";i:3611;s:2:"@6";i:3612;}', +'@^Opera/.*\(Android.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@2";i:3613;s:2:"@5";i:3614;s:2:"@4";i:3615;s:2:"@3";i:3618;}', +'@^Opera/.*\(J2ME/MIDP.*Opera Mini/.*\).*$@'=>3616, +'@^Opera/.*\(Series 60.*Opera Mini/.*\).*$@'=>3617, +'@^Opera/.*\(.*iPhone.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@8";i:3619;s:2:"@9";i:3620;s:2:"@7";i:3621;s:2:"@6";i:3623;}', +'@^Mozilla/.*\(.*MSIE (\d)\..*Windows 95.*\).*$@'=>'a:2:{s:2:"@2";i:3622;s:2:"@3";i:3624;}', +'@^Mozilla/.\..*\(.*Opera/(\d)\..*FreeBSD.*\).*$@'=>'a:8:{s:2:"@9";i:3625;s:2:"@3";i:3628;s:2:"@8";i:3630;s:2:"@6";i:3632;s:2:"@2";i:3633;s:2:"@7";i:3634;s:2:"@5";i:3635;s:2:"@4";i:3636;}', +'@^Mozilla/.\..*\(.*Opera/11\.(\d).*SunOS.*\).*$@'=>'a:3:{s:2:"@5";i:3626;s:2:"@1";i:3631;s:2:"@6";i:3637;}', +'@^Mozilla/.\..*\(.*Opera/11\.(\d).*Linux.*\).*$@'=>'a:3:{s:2:"@1";i:3627;s:2:"@5";i:3629;s:2:"@6";i:3638;}', +'@^Mozilla/.\..*\(.*Linux.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@5";i:3639;s:2:"@1";i:3640;s:2:"@6";i:3645;}', +'@^Mozilla/.\..*\(.*SunOS.*\).*Opera.11\.(\d).*$@'=>'a:3:{s:2:"@6";i:3641;s:2:"@5";i:3647;s:2:"@1";i:3654;}', +'@^Mozilla/.\..*\(.*Opera..*Macintosh.*\).*$@'=>3642, +'@^Mozilla/.\..*\(.*FreeBSD.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@2";i:3643;s:2:"@5";i:3644;s:2:"@7";i:3646;s:2:"@4";i:3648;s:2:"@8";i:3649;s:2:"@3";i:3650;s:2:"@9";i:3652;s:2:"@6";i:3655;}', +'@^Mozilla/.\..*\(.*Symbian.*\).*Opera.6\..*$@'=>3651, +'@^Mozilla/.\..*.*\(.*Macintosh.*\).*Opera.*$@'=>3653, '@^Mozilla/4\.0 \(compatible; Win32\)$@'=>3656, '@^AcadiaUniversityWebCensusClient$@'=>3657, '@^MetaProducts Download Express/.*$@'=>3658, '@^Mozilla/0\.9.* no dos \:\) \(Linux.*\)$@'=>3659, -'@^QuickTime.*\(qtver\=(\d)\..*os\=Mac 9\..*\)$@'=>'a:3:{s:2:"@6";i:3660;s:2:"@7";i:3661;s:2:"@5";i:3662;}', -'@^Mozilla/5\.0 \(.*rv\:1\.(\d)\..*\) Gecko/.*$@'=>'a:4:{s:2:"@3";i:3663;s:2:"@2";i:3665;s:2:"@1";i:3666;s:2:"@0";i:3667;}', -'@^KDDI\-.* UP\.Browser/.* \(GUI\) MMP/.*$@'=>3664, -'@^Opera/12\.1(\d).*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:42:{s:6:"@2|5|0";i:3668;s:6:"@2|5|1";i:3669;s:6:"@2|5|2";i:3670;s:6:"@2|4|0";i:3671;s:6:"@0|5|0";i:3672;s:6:"@0|4|0";i:3673;s:6:"@3|4|0";i:3674;s:6:"@2|6|0";i:3675;s:6:"@0|5|1";i:3676;s:6:"@0|6|1";i:3677;s:6:"@0|6|0";i:3678;s:6:"@6|5|1";i:3679;s:6:"@5|5|0";i:3680;s:6:"@5|5|1";i:3681;s:6:"@6|5|0";i:3682;s:6:"@0|5|2";i:3683;s:6:"@6|5|2";i:3684;s:6:"@6|6|1";i:3685;s:6:"@5|6|0";i:3686;s:6:"@6|4|0";i:3687;s:6:"@6|6|0";i:3688;s:6:"@5|4|0";i:3689;s:6:"@2|6|1";i:3690;s:6:"@5|5|2";i:3691;s:6:"@4|6|0";i:3692;s:6:"@1|5|2";i:3693;s:6:"@1|5|1";i:3694;s:6:"@5|6|1";i:3695;s:6:"@1|5|0";i:3696;s:6:"@4|6|1";i:3697;s:6:"@4|5|2";i:3698;s:6:"@4|5|1";i:3699;s:6:"@3|5|0";i:3700;s:6:"@4|4|0";i:3702;s:6:"@1|6|1";i:3703;s:6:"@1|6|0";i:3704;s:6:"@4|5|0";i:3705;s:6:"@1|4|0";i:3706;s:6:"@3|5|1";i:3707;s:6:"@3|6|1";i:3708;s:6:"@3|6|0";i:3709;s:6:"@3|5|2";i:3710;}', -'@^Opera/.*\(iPhone.*Opera Mini/5\..*\).*$@'=>3701, -'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Linux.*\).*$@'=>'a:3:{s:2:"@1";i:3711;s:2:"@0";i:3714;s:2:"@2";i:3716;}', -'@^Mozilla/.\..*\(.*Opera/1(\d)\..*SunOS.*\).*$@'=>'a:3:{s:2:"@2";i:3712;s:2:"@1";i:3713;s:2:"@0";i:3715;}', -'@^Mozilla/.\..*\(.*SunOS.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@0";i:3717;s:2:"@2";i:3721;s:2:"@1";i:3722;}', -'@^Mozilla/.\..*\(.*Linux.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@1";i:3718;s:2:"@0";i:3720;s:2:"@2";i:3723;}', -'@^Mozilla/.\..*.*\(.*Mac OS X.*\).*Opera.*$@'=>3719, -'@^Mozilla/.\..*\(.*Opera..*Mac OS X.*\).*$@'=>3724, +'@^Mozilla/5\.0 \(.*rv\:1\.(\d)\..*\) Gecko/.*$@'=>'a:4:{s:2:"@3";i:3660;s:2:"@2";i:3664;s:2:"@1";i:3666;s:2:"@0";i:3667;}', +'@^QuickTime.*\(qtver\=(\d)\..*os\=Mac 9\..*\)$@'=>'a:3:{s:2:"@6";i:3661;s:2:"@7";i:3662;s:2:"@5";i:3665;}', +'@^KDDI\-.* UP\.Browser/.* \(GUI\) MMP/.*$@'=>3663, +'@^Opera/12\.1(\d).*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:42:{s:6:"@5|6|1";i:3668;s:6:"@4|4|0";i:3669;s:6:"@4|5|1";i:3670;s:6:"@3|4|0";i:3671;s:6:"@2|5|0";i:3672;s:6:"@4|5|2";i:3673;s:6:"@3|6|0";i:3674;s:6:"@4|6|0";i:3675;s:6:"@2|4|0";i:3676;s:6:"@2|6|1";i:3677;s:6:"@2|5|1";i:3678;s:6:"@2|5|2";i:3679;s:6:"@2|6|0";i:3680;s:6:"@3|5|0";i:3681;s:6:"@6|5|2";i:3682;s:6:"@4|6|1";i:3683;s:6:"@3|5|1";i:3684;s:6:"@3|5|2";i:3685;s:6:"@6|5|1";i:3687;s:6:"@3|6|1";i:3688;s:6:"@6|6|0";i:3689;s:6:"@4|5|0";i:3690;s:6:"@1|5|0";i:3691;s:6:"@6|4|0";i:3692;s:6:"@5|4|0";i:3693;s:6:"@1|5|2";i:3694;s:6:"@5|5|2";i:3695;s:6:"@5|6|0";i:3696;s:6:"@6|5|0";i:3697;s:6:"@1|6|1";i:3698;s:6:"@1|4|0";i:3699;s:6:"@1|5|1";i:3700;s:6:"@5|5|0";i:3701;s:6:"@0|4|0";i:3702;s:6:"@0|5|0";i:3703;s:6:"@0|5|1";i:3704;s:6:"@5|5|1";i:3705;s:6:"@0|5|2";i:3706;s:6:"@0|6|0";i:3707;s:6:"@0|6|1";i:3708;s:6:"@6|6|1";i:3709;s:6:"@1|6|0";i:3710;}', +'@^Opera/.*\(iPhone.*Opera Mini/5\..*\).*$@'=>3686, +'@^Mozilla/.\..*\(.*Opera/1(\d)\..*SunOS.*\).*$@'=>'a:3:{s:2:"@2";i:3711;s:2:"@1";i:3712;s:2:"@0";i:3714;}', +'@^Mozilla/.\..*\(.*Opera/1(\d)\..*Linux.*\).*$@'=>'a:3:{s:2:"@2";i:3713;s:2:"@0";i:3715;s:2:"@1";i:3716;}', +'@^Mozilla/.\..*.*\(.*Mac OS X.*\).*Opera.*$@'=>3717, +'@^Mozilla/.\..*\(.*Linux.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@0";i:3718;s:2:"@2";i:3721;s:2:"@1";i:3722;}', +'@^Mozilla/.\..*\(.*SunOS.*\).*Opera.1(\d)\..*$@'=>'a:3:{s:2:"@2";i:3719;s:2:"@1";i:3720;s:2:"@0";i:3724;}', +'@^Mozilla/.\..*\(.*Opera..*Mac OS X.*\).*$@'=>3723, '@^Kapere \(http\://www\.kapere\.com\)$@'=>3725, '@^Mozilla/5\.0 \(RSS Reader Panel\)$@'=>3726, -'@^Mozilla/5\.0 CostaCider Search.*$@'=>3727, -'@^Mozilla/5\.0 \(compatible; OsO;.*$@'=>3728, -'@^DataFountains/DMOZ Downloader.*$@'=>3729, +'@^DataFountains/DMOZ Downloader.*$@'=>3727, +'@^Mozilla/5\.0 CostaCider Search.*$@'=>3728, +'@^Mozilla/5\.0 \(compatible; OsO;.*$@'=>3729, '@^Mozilla/5\.0 \(.*Google Desktop.*\)$@'=>3730, -'@^FAST\-WebCrawler/.*/PartnerSite.*$@'=>3731, -'@^Lorkyll .*\..* \-\- lorkyll\@444\.net$@'=>3732, -'@^Mozilla/4\.(\d).*\(Windows NT (\d)\.(\d).*\).*$@'=>'a:6:{s:6:"@8|5|1";i:3733;s:6:"@8|4|0";i:3734;s:6:"@8|5|0";i:3743;s:6:"@7|5|1";i:3745;s:6:"@7|4|0";i:3751;s:6:"@7|5|0";i:3753;}', -'@^Mozilla/5\.0 \(.*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@7";i:3735;s:2:"@6";i:3736;s:2:"@8";i:3739;s:2:"@9";i:3741;s:2:"@4";i:3747;s:2:"@5";i:3750;}', -'@^ELinks \(0\.1(\d).*; .*Digital Unix.*\)$@'=>'a:4:{s:2:"@2";i:3737;s:2:"@1";i:3740;s:2:"@0";i:3742;s:2:"@3";i:3754;}', -'@^iCab/2\.(\d).* \(Macintosh; .; 68K.*\)$@'=>'a:3:{s:2:"@7";i:3738;s:2:"@9";i:3746;s:2:"@8";i:3748;}', -'@^iCab/(\d)\.(\d).* \(Macintosh; .; PPC.*\)$@'=>'a:3:{s:4:"@3|0";i:3744;s:4:"@2|7";i:3749;s:4:"@2|9";i:3752;}', -'@^Opera/11\.(\d).*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:18:{s:6:"@6|6|1";i:3755;s:6:"@1|4|0";i:3756;s:6:"@6|6|0";i:3757;s:6:"@1|5|0";i:3758;s:6:"@5|5|0";i:3759;s:6:"@5|4|0";i:3760;s:6:"@5|6|1";i:3761;s:6:"@5|6|0";i:3762;s:6:"@5|5|2";i:3763;s:6:"@1|6|1";i:3764;s:6:"@1|6|0";i:3765;s:6:"@6|5|0";i:3766;s:6:"@6|5|1";i:3767;s:6:"@6|4|0";i:3768;s:6:"@1|5|1";i:3769;s:6:"@1|5|2";i:3770;s:6:"@6|5|2";i:3771;s:6:"@5|5|1";i:3778;}', -'@^Opera/9\.80.*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:6:{s:4:"@6|1";i:3772;s:4:"@5|1";i:3773;s:4:"@5|0";i:3774;s:4:"@4|0";i:3775;s:4:"@5|2";i:3777;s:4:"@6|0";i:3779;}', -'@^Opera/.*\(Android.*Opera Mini/.*\).*$@'=>3776, -'@^Opera/.*\(.*iPad.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@6";i:3780;s:2:"@7";i:3782;s:2:"@8";i:3784;s:2:"@9";i:3785;}', -'@^Opera/.*\(.*Android.*Opera Mobi.*\).*$@'=>3781, -'@^Opera/.*\(.*Symbian.*Opera Mobi.*\).*$@'=>3783, -'@^Mozilla/.\..*\(.*Windows CE.*Opera.*$@'=>3786, -'@^Mozilla/.* \(Win32;.*Escape..*; .\)$@'=>3787, -'@^Mozilla/.\..*\(.*Opera/(\d)\..*SunOS.*\).*$@'=>'a:8:{s:2:"@9";i:3788;s:2:"@2";i:3789;s:2:"@6";i:3791;s:2:"@7";i:3792;s:2:"@5";i:3795;s:2:"@4";i:3797;s:2:"@3";i:3800;s:2:"@8";i:3803;}', -'@^Mozilla/.\..*\(.*Opera/(\d)\..*Linux.*\).*$@'=>'a:8:{s:2:"@6";i:3790;s:2:"@7";i:3793;s:2:"@3";i:3794;s:2:"@5";i:3796;s:2:"@4";i:3798;s:2:"@8";i:3799;s:2:"@9";i:3801;s:2:"@2";i:3802;}', -'@^Mozilla/.\..*\(.*Linux.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@8";i:3804;s:2:"@7";i:3805;s:2:"@4";i:3808;s:2:"@9";i:3809;s:2:"@3";i:3812;s:2:"@2";i:3813;s:2:"@5";i:3815;s:2:"@6";i:3820;}', -'@^Mozilla/.\..*\(.*SunOS.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@4";i:3806;s:2:"@2";i:3810;s:2:"@9";i:3811;s:2:"@3";i:3814;s:2:"@6";i:3816;s:2:"@5";i:3818;s:2:"@8";i:3819;s:2:"@7";i:3821;}', -'@^Mozilla/.\..*.*\(.*FreeBSD.*\).*Opera.*$@'=>3807, +'@^Lorkyll .*\..* \-\- lorkyll\@444\.net$@'=>3731, +'@^FAST\-WebCrawler/.*/PartnerSite.*$@'=>3732, +'@^iCab/2\.(\d).* \(Macintosh; .; 68K.*\)$@'=>'a:3:{s:2:"@8";i:3733;s:2:"@7";i:3735;s:2:"@9";i:3739;}', +'@^iCab/(\d)\.(\d).* \(Macintosh; .; PPC.*\)$@'=>'a:3:{s:4:"@2|7";i:3734;s:4:"@2|9";i:3743;s:4:"@3|0";i:3744;}', +'@^Mozilla/5\.0 \(.*rv\:1\.(\d).*\) Gecko/.*$@'=>'a:6:{s:2:"@5";i:3736;s:2:"@4";i:3741;s:2:"@9";i:3745;s:2:"@8";i:3746;s:2:"@6";i:3751;s:2:"@7";i:3753;}', +'@^Mozilla/4\.(\d).*\(Windows NT (\d)\.(\d).*\).*$@'=>'a:6:{s:6:"@7|5|1";i:3737;s:6:"@8|5|1";i:3747;s:6:"@8|5|0";i:3748;s:6:"@8|4|0";i:3749;s:6:"@7|5|0";i:3752;s:6:"@7|4|0";i:3754;}', +'@^ELinks \(0\.1(\d).*; .*Digital Unix.*\)$@'=>'a:4:{s:2:"@0";i:3738;s:2:"@2";i:3740;s:2:"@1";i:3742;s:2:"@3";i:3750;}', +'@^Opera/9\.80.*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:6:{s:4:"@5|0";i:3755;s:4:"@5|2";i:3756;s:4:"@4|0";i:3765;s:4:"@6|1";i:3767;s:4:"@6|0";i:3774;s:4:"@5|1";i:3776;}', +'@^Opera/11\.(\d).*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:18:{s:6:"@6|6|0";i:3757;s:6:"@1|4|0";i:3758;s:6:"@6|6|1";i:3759;s:6:"@5|6|1";i:3760;s:6:"@1|5|0";i:3761;s:6:"@6|5|1";i:3762;s:6:"@6|5|0";i:3763;s:6:"@6|4|0";i:3764;s:6:"@1|6|1";i:3766;s:6:"@5|6|0";i:3769;s:6:"@5|5|2";i:3770;s:6:"@1|5|2";i:3771;s:6:"@5|5|1";i:3772;s:6:"@5|4|0";i:3773;s:6:"@5|5|0";i:3775;s:6:"@1|6|0";i:3777;s:6:"@1|5|1";i:3778;s:6:"@6|5|2";i:3779;}', +'@^Opera/.*\(Android.*Opera Mini/.*\).*$@'=>3768, +'@^Opera/.*\(.*iPad.*Opera Mini/(\d)\..*\).*$@'=>'a:4:{s:2:"@8";i:3780;s:2:"@7";i:3782;s:2:"@9";i:3783;s:2:"@6";i:3787;}', +'@^Mozilla/.\..*\(.*Windows CE.*Opera.*$@'=>3781, +'@^Opera/.*\(.*Symbian.*Opera Mobi.*\).*$@'=>3784, +'@^Opera/.*\(.*Android.*Opera Mobi.*\).*$@'=>3785, +'@^Mozilla/.* \(Win32;.*Escape..*; .\)$@'=>3786, +'@^Mozilla/.\..*\(.*Opera/(\d)\..*Linux.*\).*$@'=>'a:8:{s:2:"@7";i:3788;s:2:"@8";i:3791;s:2:"@2";i:3792;s:2:"@5";i:3797;s:2:"@4";i:3798;s:2:"@6";i:3799;s:2:"@9";i:3801;s:2:"@3";i:3803;}', +'@^Mozilla/.\..*\(.*Opera/(\d)\..*SunOS.*\).*$@'=>'a:8:{s:2:"@2";i:3789;s:2:"@6";i:3790;s:2:"@7";i:3793;s:2:"@8";i:3794;s:2:"@4";i:3795;s:2:"@3";i:3796;s:2:"@5";i:3800;s:2:"@9";i:3802;}', +'@^Mozilla/.\..*\(.*SunOS.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@3";i:3804;s:2:"@2";i:3807;s:2:"@5";i:3810;s:2:"@7";i:3812;s:2:"@6";i:3813;s:2:"@8";i:3816;s:2:"@4";i:3819;s:2:"@9";i:3820;}', +'@^Mozilla/.\..*\(.*Linux.*\).*Opera.(\d)\..*$@'=>'a:8:{s:2:"@2";i:3805;s:2:"@3";i:3808;s:2:"@5";i:3809;s:2:"@7";i:3811;s:2:"@4";i:3814;s:2:"@6";i:3815;s:2:"@8";i:3818;s:2:"@9";i:3821;}', +'@^Mozilla/.\..*.*\(.*FreeBSD.*\).*Opera.*$@'=>3806, '@^Mozilla/.\..*\(.*Opera..*FreeBSD.*\).*$@'=>3817, -'@^Bookmark Renewal Check Agent.*$@'=>3822, +'@^Mozilla/5\.0 GurujiBot/1\.0 \(.*\)$@'=>3822, '@^PigBlock \(Windows NT 5\.1; U\).*$@'=>3823, -'@^MFC Foundation Class Library.*$@'=>3824, -'@^Mozilla/5\.0 GurujiBot/1\.0 \(.*\)$@'=>3825, +'@^West Wind Internet Protocols.*$@'=>3824, +'@^MFC Foundation Class Library.*$@'=>3825, '@^SynapticSearch/AI Crawler 1\..$@'=>3826, -'@^West Wind Internet Protocols.*$@'=>3827, -'@^ConveraMultiMediaCrawler/0\.1.*$@'=>3828, +'@^ConveraMultiMediaCrawler/0\.1.*$@'=>3827, +'@^Bookmark Renewal Check Agent.*$@'=>3828, '@^iCab/2\.8.* \(Macintosh; .; PPC\)$@'=>3829, '@^Mozilla/5\.0 Gecko/.* Chimera/.*$@'=>3830, '@^WebIndexer/.* \(Web Indexer; .*\)$@'=>3831, '@^YooW\!/.* \(.http\://www\.yoow\.eu\)$@'=>3832, -'@^ELinks/0\.1(\d).* \(.*Digital Unix.*\)$@'=>'a:4:{s:2:"@2";i:3833;s:2:"@3";i:3835;s:2:"@0";i:3844;s:2:"@1";i:3849;}', -'@^Mozilla/4\..*\(Windows NT (\d)\.(\d).*\).*$@'=>'a:3:{s:4:"@4|0";i:3834;s:4:"@5|0";i:3839;s:4:"@5|1";i:3847;}', -'@^ELinks \(0\.9.*; .*Digital Unix.*\)$@'=>3836, -'@^Jigsaw/.* W3C_CSS_Validator.*/.*$@'=>3837, -'@^.*PlayBook.*RIM Tablet OS (\d)\.0\..*$@'=>'a:2:{s:2:"@1";i:3838;s:2:"@2";i:3840;}', -'@^Mozilla/4\.0 \(.*\) .*NetFront/(\d)\..*$@'=>'a:2:{s:2:"@3";i:3841;s:2:"@2";i:3842;}', -'@^FAST\-WebCrawler/.*.Multimedia.*$@'=>3843, -'@^Samsung\-.* Polaris/(\d)\..* MMP/2\..*$@'=>'a:3:{s:2:"@7";i:3845;s:2:"@5";i:3846;s:2:"@6";i:3848;}', -'@^Opera/12\.1(\d).*\(.*Windows 2000.*\).*$@'=>'a:7:{s:2:"@5";i:3850;s:2:"@3";i:3853;s:2:"@1";i:3854;s:2:"@2";i:3856;s:2:"@0";i:3857;s:2:"@6";i:3862;s:2:"@4";i:3873;}', -'@^Opera/1(\d)\..*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:18:{s:6:"@2|4|0";i:3851;s:6:"@2|5|0";i:3852;s:6:"@2|5|1";i:3859;s:6:"@2|5|2";i:3860;s:6:"@2|6|1";i:3861;s:6:"@2|6|0";i:3863;s:6:"@1|6|0";i:3865;s:6:"@0|6|0";i:3866;s:6:"@0|5|2";i:3867;s:6:"@1|5|2";i:3868;s:6:"@1|5|0";i:3869;s:6:"@0|5|1";i:3870;s:6:"@1|5|1";i:3871;s:6:"@1|6|1";i:3872;s:6:"@0|4|0";i:3874;s:6:"@0|5|0";i:3875;s:6:"@1|4|0";i:3876;s:6:"@0|6|1";i:3877;}', -'@^Opera/.*\(iPhone.*Opera Mini/.*\).*$@'=>3855, -'@^Mozilla/4\.(\d).*\(Macintosh.*PPC.*\).*$@'=>'a:2:{s:2:"@7";i:3858;s:2:"@8";i:3864;}', +'@^ELinks/0\.1(\d).* \(.*Digital Unix.*\)$@'=>'a:4:{s:2:"@1";i:3833;s:2:"@0";i:3836;s:2:"@2";i:3841;s:2:"@3";i:3848;}', +'@^ELinks \(0\.9.*; .*Digital Unix.*\)$@'=>3834, +'@^Mozilla/4\..*\(Windows NT (\d)\.(\d).*\).*$@'=>'a:3:{s:4:"@5|0";i:3835;s:4:"@4|0";i:3839;s:4:"@5|1";i:3840;}', +'@^Mozilla/4\.0 \(.*\) .*NetFront/(\d)\..*$@'=>'a:2:{s:2:"@2";i:3837;s:2:"@3";i:3842;}', +'@^.*PlayBook.*RIM Tablet OS (\d)\.0\..*$@'=>'a:2:{s:2:"@2";i:3838;s:2:"@1";i:3849;}', +'@^Jigsaw/.* W3C_CSS_Validator.*/.*$@'=>3843, +'@^FAST\-WebCrawler/.*.Multimedia.*$@'=>3844, +'@^Samsung\-.* Polaris/(\d)\..* MMP/2\..*$@'=>'a:3:{s:2:"@5";i:3845;s:2:"@6";i:3846;s:2:"@7";i:3847;}', +'@^Opera/1(\d)\..*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:18:{s:6:"@1|5|1";i:3850;s:6:"@2|4|0";i:3851;s:6:"@1|6|1";i:3853;s:6:"@1|5|0";i:3854;s:6:"@0|6|0";i:3855;s:6:"@0|5|2";i:3856;s:6:"@0|5|1";i:3857;s:6:"@1|4|0";i:3858;s:6:"@0|5|0";i:3859;s:6:"@1|5|2";i:3860;s:6:"@0|4|0";i:3861;s:6:"@1|6|0";i:3862;s:6:"@0|6|1";i:3863;s:6:"@2|6|0";i:3864;s:6:"@2|5|0";i:3865;s:6:"@2|5|1";i:3873;s:6:"@2|6|1";i:3876;s:6:"@2|5|2";i:3877;}', +'@^Opera/12\.1(\d).*\(.*Windows 2000.*\).*$@'=>'a:7:{s:2:"@5";i:3852;s:2:"@1";i:3866;s:2:"@2";i:3870;s:2:"@4";i:3871;s:2:"@6";i:3872;s:2:"@3";i:3874;s:2:"@0";i:3875;}', +'@^Opera/.*\(iPhone.*Opera Mini/.*\).*$@'=>3867, +'@^Mozilla/4\.(\d).*\(Macintosh.*PPC.*\).*$@'=>'a:2:{s:2:"@7";i:3868;s:2:"@8";i:3869;}', '@^Opera/.*\(.*SymbOS.*Opera Mobi.*\).*$@'=>3878, '@^KakleBot \- www\.kakle\.com/0\.1$@'=>3879, -'@^Norbert the Spider\(Burf\.com\)$@'=>3880, +'@^HolmesBot \(http\://holmes\.ge\)$@'=>3880, '@^Miva \(AlgoFeedback\@miva\.com\)$@'=>3881, -'@^Mozilla/4\.0 \(stealthBrowser\)$@'=>3882, -'@^ogeb browser , Version 1\.1\.0$@'=>3883, -'@^HolmesBot \(http\://holmes\.ge\)$@'=>3884, -'@^Epsilon SoftWorks\' MailMunky$@'=>3885, +'@^Epsilon SoftWorks\' MailMunky$@'=>3882, +'@^Mozilla/4\.0 \(stealthBrowser\)$@'=>3883, +'@^Norbert the Spider\(Burf\.com\)$@'=>3884, +'@^ogeb browser , Version 1\.1\.0$@'=>3885, '@^Microsoft\-WebDAV\-MiniRedir/.*$@'=>3886, -'@^.*Netcraft Web Server Survey.*$@'=>3887, -'@^Opera/.* \(Nintendo Wii; U; .*\)$@'=>3888, -'@^Irish Blogs Aggregator/.*1\.0.*$@'=>3889, -'@^FAST\-WebCrawler/.*/FirstPage.*$@'=>3890, -'@^Links \((\d)\.(\d).*; CYGWIN_NT\-5\.1.*\)$@'=>'a:2:{s:4:"@0|9";i:3891;s:4:"@1|0";i:3892;}', +'@^FAST\-WebCrawler/.*/FirstPage.*$@'=>3887, +'@^Links \((\d)\.(\d).*; CYGWIN_NT\-5\.1.*\)$@'=>'a:2:{s:4:"@0|9";i:3888;s:4:"@1|0";i:3892;}', +'@^.*Netcraft Web Server Survey.*$@'=>3889, +'@^Opera/.* \(Nintendo Wii; U; .*\)$@'=>3890, +'@^Irish Blogs Aggregator/.*1\.0.*$@'=>3891, '@^Mozilla/4\.0 \(.*NetFront/(\d)\..*\).*$@'=>'a:2:{s:2:"@3";i:3893;s:2:"@2";i:3895;}', '@^ELinks/0\.9.* \(.*Digital Unix.*\)$@'=>3894, -'@^Opera/(\d)\..*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:48:{s:6:"@2|4|0";i:3896;s:6:"@7|6|0";i:3897;s:6:"@4|4|0";i:3898;s:6:"@7|5|2";i:3899;s:6:"@7|6|1";i:3900;s:6:"@4|5|2";i:3901;s:6:"@4|6|0";i:3902;s:6:"@4|5|0";i:3903;s:6:"@6|4|0";i:3904;s:6:"@3|4|0";i:3908;s:6:"@3|5|0";i:3909;s:6:"@3|5|1";i:3910;s:6:"@2|6|1";i:3912;s:6:"@2|5|0";i:3913;s:6:"@2|5|1";i:3914;s:6:"@2|5|2";i:3915;s:6:"@2|6|0";i:3916;s:6:"@3|5|2";i:3917;s:6:"@3|6|0";i:3918;s:6:"@7|5|0";i:3919;s:6:"@7|5|1";i:3920;s:6:"@9|4|0";i:3921;s:6:"@9|5|0";i:3922;s:6:"@7|4|0";i:3923;s:6:"@3|6|1";i:3925;s:6:"@5|6|1";i:3926;s:6:"@6|5|0";i:3928;s:6:"@9|5|1";i:3929;s:6:"@4|5|1";i:3930;s:6:"@5|4|0";i:3931;s:6:"@9|6|1";i:3932;s:6:"@5|5|0";i:3933;s:6:"@5|5|1";i:3934;s:6:"@8|5|1";i:3939;s:6:"@8|5|2";i:3940;s:6:"@9|6|0";i:3941;s:6:"@8|5|0";i:3943;s:6:"@6|6|1";i:3944;s:6:"@5|6|0";i:3945;s:6:"@6|5|2";i:3946;s:6:"@9|5|2";i:3947;s:6:"@4|6|1";i:3949;s:6:"@5|5|2";i:3950;s:6:"@6|5|1";i:3951;s:6:"@8|6|1";i:3952;s:6:"@8|6|0";i:3953;s:6:"@8|4|0";i:3954;s:6:"@6|6|0";i:3955;}', -'@^Opera/12\.1(\d).*\(.*Win 9x 4\.90.*\).*$@'=>'a:7:{s:2:"@6";i:3905;s:2:"@3";i:3911;s:2:"@4";i:3924;s:2:"@0";i:3927;s:2:"@2";i:3936;s:2:"@1";i:3937;s:2:"@5";i:3942;}', -'@^Mozilla/4\..*\(Macintosh.*PPC.*\).*$@'=>3906, -'@^Opera/11\.(\d).*\(.*Windows 2000.*\).*$@'=>'a:3:{s:2:"@1";i:3907;s:2:"@6";i:3935;s:2:"@5";i:3938;}', -'@^Opera/9\.80.*\(.*Windows 2000.*\).*$@'=>3948, -'@^Mozilla/.\..*.*\(.*Linux.*\).*Opera.*$@'=>3956, +'@^Opera/(\d)\..*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:48:{s:6:"@5|6|1";i:3896;s:6:"@6|6|0";i:3897;s:6:"@9|6|0";i:3898;s:6:"@6|5|2";i:3899;s:6:"@6|5|1";i:3901;s:6:"@6|5|0";i:3902;s:6:"@5|4|0";i:3903;s:6:"@5|6|0";i:3904;s:6:"@6|4|0";i:3905;s:6:"@9|4|0";i:3906;s:6:"@5|5|0";i:3907;s:6:"@9|5|0";i:3908;s:6:"@9|5|1";i:3909;s:6:"@9|5|2";i:3910;s:6:"@5|5|2";i:3912;s:6:"@5|5|1";i:3913;s:6:"@9|6|1";i:3914;s:6:"@6|6|1";i:3915;s:6:"@2|4|0";i:3916;s:6:"@8|5|1";i:3917;s:6:"@8|4|0";i:3919;s:6:"@8|5|0";i:3920;s:6:"@2|5|2";i:3921;s:6:"@3|6|1";i:3922;s:6:"@2|5|1";i:3923;s:6:"@3|6|0";i:3924;s:6:"@8|5|2";i:3926;s:6:"@8|6|0";i:3928;s:6:"@3|5|2";i:3929;s:6:"@3|5|1";i:3931;s:6:"@2|5|0";i:3932;s:6:"@3|5|0";i:3933;s:6:"@3|4|0";i:3934;s:6:"@8|6|1";i:3935;s:6:"@2|6|0";i:3937;s:6:"@7|6|1";i:3938;s:6:"@7|5|0";i:3939;s:6:"@2|6|1";i:3940;s:6:"@4|6|0";i:3944;s:6:"@7|4|0";i:3945;s:6:"@4|6|1";i:3946;s:6:"@7|5|1";i:3947;s:6:"@7|5|2";i:3948;s:6:"@4|5|2";i:3950;s:6:"@4|5|1";i:3951;s:6:"@4|5|0";i:3952;s:6:"@7|6|0";i:3953;s:6:"@4|4|0";i:3955;}', +'@^Opera/12\.1(\d).*\(.*Win 9x 4\.90.*\).*$@'=>'a:7:{s:2:"@6";i:3900;s:2:"@0";i:3918;s:2:"@1";i:3925;s:2:"@2";i:3927;s:2:"@4";i:3930;s:2:"@3";i:3942;s:2:"@5";i:3949;}', +'@^Mozilla/4\..*\(Macintosh.*PPC.*\).*$@'=>3911, +'@^Opera/11\.(\d).*\(.*Windows 2000.*\).*$@'=>'a:3:{s:2:"@6";i:3936;s:2:"@1";i:3943;s:2:"@5";i:3954;}', +'@^Opera/9\.80.*\(.*Windows 2000.*\).*$@'=>3941, +'@^Mozilla/.\..*\(.*Opera..*SunOS.*\).*$@'=>3956, '@^Mozilla/.\..*.*\(.*SunOS.*\).*Opera.*$@'=>3957, -'@^Mozilla/.\..*\(.*Opera..*Linux.*\).*$@'=>3958, -'@^Mozilla/.\..*\(.*Opera..*SunOS.*\).*$@'=>3959, -'@^Newsgroupreporter LinkCheck$@'=>3960, -'@^Mozilla/4\.0 \(fantomBrowser\)$@'=>3961, -'@^Live \(http\://www\.live\.com/\)$@'=>3962, -'@^yp\-crawl\@attinteractive\.com$@'=>3963, +'@^Mozilla/.\..*.*\(.*Linux.*\).*Opera.*$@'=>3958, +'@^Mozilla/.\..*\(.*Opera..*Linux.*\).*$@'=>3959, +'@^Live \(http\://www\.live\.com/\)$@'=>3960, +'@^yp\-crawl\@attinteractive\.com$@'=>3961, +'@^PDFBot \(crawler\@pdfind\.com\)$@'=>3962, +'@^Mozilla/4\.0 \(fantomBrowser\)$@'=>3963, '@^Microsoft Internet Explorer$@'=>3964, -'@^PDFBot \(crawler\@pdfind\.com\)$@'=>3965, -'@^POE\-Component\-Client\-HTTP/.*$@'=>3966, -'@^sitecheck\.internetseer\.com.*$@'=>3967, -'@^http\://www\.yellowpages\.com.*$@'=>3968, -'@^FastSearch Web Crawler for.*$@'=>3969, +'@^Newsgroupreporter LinkCheck$@'=>3965, +'@^sitecheck\.internetseer\.com.*$@'=>3966, +'@^FastSearch Web Crawler for.*$@'=>3967, +'@^POE\-Component\-Client\-HTTP/.*$@'=>3968, +'@^http\://www\.yellowpages\.com.*$@'=>3969, '@^.*Netcraft Webserver Survey.*$@'=>3970, '@^Mozilla/.* \(.*\) \- BrowseX \(.*\)$@'=>3971, -'@^Opera/12\.1(\d).*\(.*Windows 9(\d).*\).*$@'=>'a:14:{s:4:"@5|8";i:3972;s:4:"@1|5";i:3974;s:4:"@5|5";i:3975;s:4:"@3|8";i:3976;s:4:"@3|5";i:3981;s:4:"@1|8";i:3982;s:4:"@6|5";i:3986;s:4:"@2|5";i:3988;s:4:"@6|8";i:3989;s:4:"@2|8";i:3991;s:4:"@0|8";i:3992;s:4:"@4|8";i:3994;s:4:"@0|5";i:3997;s:4:"@4|5";i:3998;}', -'@^Opera/12\.1(\d).*\(.*Windows ME.*\).*$@'=>'a:7:{s:2:"@3";i:3973;s:2:"@2";i:3977;s:2:"@1";i:3978;s:2:"@5";i:3984;s:2:"@0";i:3987;s:2:"@6";i:3990;s:2:"@4";i:3995;}', -'@^Opera/9\.80.*\(.*Win 9x 4\.90.*\).*$@'=>3979, -'@^Opera/11\.(\d).*\(.*Win 9x 4\.90.*\).*$@'=>'a:3:{s:2:"@1";i:3980;s:2:"@5";i:3983;s:2:"@6";i:3993;}', -'@^Opera/1(\d)\..*\(.*Windows 2000.*\).*$@'=>'a:3:{s:2:"@1";i:3985;s:2:"@0";i:3996;s:2:"@2";i:3999;}', -'@^Mozilla/.\..*\(.*Opera..*UNIX.*\).*$@'=>4000, -'@^Mozilla/.\..*.*\(.*UNIX.*\).*Opera.*$@'=>4001, +'@^Opera/12\.1(\d).*\(.*Windows ME.*\).*$@'=>'a:7:{s:2:"@2";i:3972;s:2:"@0";i:3975;s:2:"@1";i:3977;s:2:"@6";i:3981;s:2:"@4";i:3982;s:2:"@5";i:3986;s:2:"@3";i:3997;}', +'@^Opera/12\.1(\d).*\(.*Windows 9(\d).*\).*$@'=>'a:14:{s:4:"@1|5";i:3973;s:4:"@1|8";i:3974;s:4:"@0|8";i:3976;s:4:"@0|5";i:3978;s:4:"@5|5";i:3984;s:4:"@5|8";i:3985;s:4:"@4|8";i:3987;s:4:"@4|5";i:3988;s:4:"@2|5";i:3992;s:4:"@2|8";i:3994;s:4:"@3|5";i:3995;s:4:"@3|8";i:3996;s:4:"@6|5";i:3998;s:4:"@6|8";i:3999;}', +'@^Opera/1(\d)\..*\(.*Windows 2000.*\).*$@'=>'a:3:{s:2:"@2";i:3979;s:2:"@1";i:3990;s:2:"@0";i:3993;}', +'@^Opera/11\.(\d).*\(.*Win 9x 4\.90.*\).*$@'=>'a:3:{s:2:"@6";i:3980;s:2:"@5";i:3983;s:2:"@1";i:3989;}', +'@^Opera/9\.80.*\(.*Win 9x 4\.90.*\).*$@'=>3991, +'@^Mozilla/.\..*.*\(.*UNIX.*\).*Opera.*$@'=>4000, +'@^Mozilla/.\..*\(.*Opera..*UNIX.*\).*$@'=>4001, '@^searchbot admin\@google\.com$@'=>4002, -'@^Mozilla/4\.0 \(cloakBrowser\)$@'=>4003, -'@^Yahoo\! Slurp/Site Explorer$@'=>4004, -'@^Der gro\\\xdfe BilderSauger.*$@'=>4005, -'@^DomainsDB\.net MetaCrawler.*$@'=>4006, -'@^Mozilla/5\.0 \(Yahoo\-Test/.*\)$@'=>4007, -'@^AideRSS 2\..* \(postrank\.com\)$@'=>4008, -'@^Nutscrape/.* \(CP/M; 8\-bit.*\)$@'=>4009, -'@^.*E\-Mail Address Extractor.*$@'=>4010, -'@^JoeDog/.* \(X11; I; Siege .*\)$@'=>4011, -'@^Opera/1(\d)\..*\(.*Win 9x 4\.90.*\).*$@'=>'a:3:{s:2:"@0";i:4012;s:2:"@2";i:4016;s:2:"@1";i:4033;}', -'@^Opera/(\d)\..*\(.*Windows 2000.*\).*$@'=>'a:8:{s:2:"@8";i:4013;s:2:"@3";i:4021;s:2:"@7";i:4023;s:2:"@4";i:4030;s:2:"@9";i:4035;s:2:"@2";i:4036;s:2:"@5";i:4037;s:2:"@6";i:4040;}', -'@^Opera/11\.(\d).*\(.*Windows 9(\d).*\).*$@'=>'a:6:{s:4:"@5|5";i:4014;s:4:"@6|8";i:4015;s:4:"@5|8";i:4017;s:4:"@1|5";i:4020;s:4:"@6|5";i:4024;s:4:"@1|8";i:4026;}', -'@^Opera/11\.(\d).*\(.*Windows ME.*\).*$@'=>'a:3:{s:2:"@1";i:4018;s:2:"@6";i:4028;s:2:"@5";i:4031;}', -'@^Opera/.*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:6:{s:4:"@6|0";i:4019;s:4:"@5|2";i:4022;s:4:"@5|1";i:4027;s:4:"@6|1";i:4038;s:4:"@5|0";i:4041;s:4:"@4|0";i:4042;}', -'@^Opera/9\.80.*\(.*Windows ME.*\).*$@'=>4025, -'@^Opera/9\.80.*\(.*Windows 9(\d).*\).*$@'=>'a:2:{s:2:"@5";i:4029;s:2:"@8";i:4032;}', -'@^Opera/9\.80.*\(.*Windows XP.*\).*$@'=>4034, -'@^Opera/9\.80.*\(.*Windows CE.*\).*$@'=>4039, +'@^Yahoo\! Slurp/Site Explorer$@'=>4003, +'@^Mozilla/4\.0 \(cloakBrowser\)$@'=>4004, +'@^DomainsDB\.net MetaCrawler.*$@'=>4005, +'@^AideRSS 2\..* \(postrank\.com\)$@'=>4006, +'@^Der gro\\\xdfe BilderSauger.*$@'=>4007, +'@^Mozilla/5\.0 \(Yahoo\-Test/.*\)$@'=>4008, +'@^.*E\-Mail Address Extractor.*$@'=>4009, +'@^JoeDog/.* \(X11; I; Siege .*\)$@'=>4010, +'@^Nutscrape/.* \(CP/M; 8\-bit.*\)$@'=>4011, +'@^Opera/(\d)\..*\(.*Windows 2000.*\).*$@'=>'a:8:{s:2:"@8";i:4012;s:2:"@3";i:4013;s:2:"@4";i:4014;s:2:"@7";i:4015;s:2:"@9";i:4016;s:2:"@5";i:4017;s:2:"@6";i:4018;s:2:"@2";i:4040;}', +'@^Opera/9\.80.*\(.*Windows 9(\d).*\).*$@'=>'a:2:{s:2:"@5";i:4019;s:2:"@8";i:4024;}', +'@^Opera/1(\d)\..*\(.*Win 9x 4\.90.*\).*$@'=>'a:3:{s:2:"@0";i:4020;s:2:"@2";i:4025;s:2:"@1";i:4026;}', +'@^Opera/.*\(.*Windows NT (\d)\.(\d).*\).*$@'=>'a:6:{s:4:"@5|0";i:4021;s:4:"@4|0";i:4030;s:4:"@5|1";i:4031;s:4:"@5|2";i:4038;s:4:"@6|0";i:4039;s:4:"@6|1";i:4041;}', +'@^Opera/9\.80.*\(.*Windows ME.*\).*$@'=>4022, +'@^Opera/9\.80.*\(.*Windows CE.*\).*$@'=>4023, +'@^Opera/11\.(\d).*\(.*Windows ME.*\).*$@'=>'a:3:{s:2:"@6";i:4027;s:2:"@5";i:4032;s:2:"@1";i:4036;}', +'@^Opera/11\.(\d).*\(.*Windows 9(\d).*\).*$@'=>'a:6:{s:4:"@6|8";i:4028;s:4:"@6|5";i:4029;s:4:"@5|8";i:4033;s:4:"@1|5";i:4034;s:4:"@1|8";i:4035;s:4:"@5|5";i:4037;}', +'@^Opera/9\.80.*\(.*Windows XP.*\).*$@'=>4042, +'@^Lincoln State Web Browser$@'=>4043, '@^AideRSS/2\.0 \(aiderss\.com\)$@'=>4044, -'@^Lincoln State Web Browser$@'=>4045, -'@^Windows\-RSS\-Platform/1\.0.*$@'=>4046, -'@^LucidMedia ClickSense/4\..$@'=>4047, +'@^Windows\-Media\-Player/1(\d)\..*$@'=>'a:2:{s:2:"@1";i:4046;s:2:"@0";i:4049;}', +'@^Mozilla/5\.0 \(YahooYSMcm.*\)$@'=>4047, '@^Fast PartnerSite Crawler.*$@'=>4048, -'@^Mozilla/5\.0 \(YahooYSMcm.*\)$@'=>4049, -'@^Windows\-Media\-Player/1(\d)\..*$@'=>'a:2:{s:2:"@0";i:4050;s:2:"@1";i:4051;}', -'@^Mozilla/5\.0 gURLChecker/.*$@'=>4052, +'@^Mozilla/5\.0 gURLChecker/.*$@'=>4050, +'@^Windows\-RSS\-Platform/1\.0.*$@'=>4051, +'@^LucidMedia ClickSense/4\..$@'=>4052, '@^Google\-Site\-Verification.*$@'=>4053, -'@^Mozilla/5\.0 \(.*\) VoilaBot.*$@'=>4054, -'@^bot/.* \(bot; .*bot\@bot\.bot\)$@'=>4055, -'@^.*FAST Enterprise Crawler.*$@'=>4056, -'@^ELinks \(0\.1(\d).*; .*OpenBSD.*\)$@'=>'a:4:{s:2:"@0";i:4057;s:2:"@1";i:4060;s:2:"@2";i:4064;s:2:"@3";i:4065;}', -'@^ELinks \(0\.1(\d).*; .*Solaris.*\)$@'=>'a:4:{s:2:"@0";i:4058;s:2:"@1";i:4059;s:2:"@2";i:4063;s:2:"@3";i:4066;}', -'@^ELinks \(0\.1(\d).*; .*FreeBSD.*\)$@'=>'a:4:{s:2:"@0";i:4061;s:2:"@1";i:4062;s:2:"@3";i:4067;s:2:"@2";i:4068;}', -'@^Mozilla/4\.(\d).*\(X11.*SunOS.*\).*$@'=>'a:2:{s:2:"@8";i:4069;s:2:"@7";i:4083;}', -'@^Opera/9\.80.*\(.*Macintosh.*\).*$@'=>4070, -'@^Opera/(\d)\..*\(.*Win 9x 4\.90.*\).*$@'=>'a:8:{s:2:"@4";i:4071;s:2:"@5";i:4074;s:2:"@9";i:4089;s:2:"@6";i:4092;s:2:"@3";i:4093;s:2:"@2";i:4094;s:2:"@8";i:4095;s:2:"@7";i:4097;}', -'@^Opera/12\.1(\d).*\(.*Mac OS X.*\).*$@'=>'a:7:{s:2:"@6";i:4072;s:2:"@2";i:4075;s:2:"@4";i:4080;s:2:"@1";i:4081;s:2:"@5";i:4085;s:2:"@0";i:4088;s:2:"@3";i:4091;}', -'@^Mozilla/4\.(\d).*\(X11.*Linux.*\).*$@'=>'a:2:{s:2:"@8";i:4073;s:2:"@7";i:4078;}', -'@^Opera/1(\d)\..*\(.*Windows ME.*\).*$@'=>'a:3:{s:2:"@0";i:4076;s:2:"@2";i:4086;s:2:"@1";i:4090;}', -'@^Opera/1(\d)\..*\(.*Windows 9(\d).*\).*$@'=>'a:6:{s:4:"@0|5";i:4077;s:4:"@0|8";i:4079;s:4:"@2|5";i:4082;s:4:"@2|8";i:4084;s:4:"@1|5";i:4087;s:4:"@1|8";i:4096;}', -'@^Lycos\-Spider_\(modspider\)$@'=>4098, -'@^Oracle Enterprise Search$@'=>4099, -'@^ShowXML/1\.0 libwww/5\.4\.0$@'=>4100, -'@^Mozilla/4\.0 \(VMS_Mosaic\)$@'=>4101, -'@^IPiumBot laurion\(dot\)com$@'=>4102, -'@^BlogPulse \(ISSpider\-3\..*\)$@'=>4103, -'@^Windows\-Media\-Player/(\d)\..*$@'=>'a:3:{s:2:"@7";i:4104;s:2:"@8";i:4106;s:2:"@9";i:4108;}', -'@^Google OpenSocial agent.*$@'=>4105, -'@^appie.*\(www\.walhello\.com\)$@'=>4107, -'@^Nutch/0\.. \(OpenX Spider\)$@'=>4109, -'@^Tcl http client package.*$@'=>4110, -'@^ICRA_Semantic_spider/0\..$@'=>4111, -'@^ICRA_label_generator/1\..$@'=>4112, -'@^IBrowse/1\.22 \(AmigaOS .*\)$@'=>4113, -'@^MOT\-SAP4_/.* UP\.Browser/.*$@'=>4114, -'@^MOT\-8700_/.* UP\.Browser/.*$@'=>4115, -'@^FAST\-WebCrawler/.*/Fresh.*$@'=>4116, -'@^Mozilla/.* \(PLAYSTATION.*\)$@'=>4117, -'@^MOT\-GATW_/.* UP\.Browser/.*$@'=>4118, -'@^ELinks/0\.1(\d).* \(.*FreeBSD.*\)$@'=>'a:4:{s:2:"@2";i:4119;s:2:"@1";i:4120;s:2:"@0";i:4137;s:2:"@3";i:4145;}', -'@^ELinks \(0\.9.*; .*Solaris.*\)$@'=>4121, -'@^ELinks/0\.1(\d).* \(.*OpenBSD.*\)$@'=>'a:4:{s:2:"@3";i:4122;s:2:"@2";i:4123;s:2:"@1";i:4125;s:2:"@0";i:4148;}', -'@^LG\-.* Polaris/(\d)\..* MMP/2\..*$@'=>'a:3:{s:2:"@5";i:4124;s:2:"@6";i:4138;s:2:"@7";i:4142;}', -'@^ELinks \(0\.1(\d).*; .*Darwin.*\)$@'=>'a:4:{s:2:"@2";i:4126;s:2:"@3";i:4139;s:2:"@0";i:4144;s:2:"@1";i:4146;}', -'@^ELinks \(0\.9.*; .*OpenBSD.*\)$@'=>4127, -'@^ELinks \(0\.9.*; .*FreeBSD.*\)$@'=>4128, -'@^ELinks/0\.1(\d).* \(.*Solaris.*\)$@'=>'a:4:{s:2:"@3";i:4129;s:2:"@1";i:4134;s:2:"@2";i:4143;s:2:"@0";i:4147;}', -'@^ELinks \(0\.1(\d).*; .*NetBSD.*\)$@'=>'a:4:{s:2:"@2";i:4130;s:2:"@1";i:4133;s:2:"@3";i:4140;s:2:"@0";i:4141;}', -'@^Kopiczek/.* \(WyderOS.*; .*\)$@'=>4131, -'@^ELinks \(0\.1(\d).*; .*CygWin.*\)$@'=>'a:4:{s:2:"@2";i:4132;s:2:"@1";i:4135;s:2:"@3";i:4136;s:2:"@0";i:4149;}', -'@^Opera/(\d)\..*\(.*Windows 9(\d).*\).*$@'=>'a:16:{s:4:"@6|5";i:4150;s:4:"@6|8";i:4152;s:4:"@7|5";i:4155;s:4:"@7|8";i:4156;s:4:"@2|5";i:4158;s:4:"@3|8";i:4160;s:4:"@3|5";i:4161;s:4:"@8|5";i:4168;s:4:"@8|8";i:4172;s:4:"@2|8";i:4174;s:4:"@4|8";i:4176;s:4:"@4|5";i:4181;s:4:"@9|5";i:4183;s:4:"@9|8";i:4184;s:4:"@5|8";i:4185;s:4:"@5|5";i:4186;}', -'@^Opera/(\d)\..*\(.*Windows ME.*\).*$@'=>'a:8:{s:2:"@6";i:4151;s:2:"@2";i:4153;s:2:"@7";i:4157;s:2:"@5";i:4159;s:2:"@8";i:4171;s:2:"@3";i:4173;s:2:"@4";i:4175;s:2:"@9";i:4187;}', -'@^Opera/12\.1(\d).*\(.*FreeBSD.*\).*$@'=>'a:7:{s:2:"@0";i:4154;s:2:"@3";i:4162;s:2:"@6";i:4163;s:2:"@4";i:4165;s:2:"@5";i:4170;s:2:"@2";i:4179;s:2:"@1";i:4182;}', -'@^Opera/.*\(.*Windows 2000.*\).*$@'=>4164, -'@^Opera/11\.(\d).*\(.*Mac OS X.*\).*$@'=>'a:3:{s:2:"@5";i:4166;s:2:"@6";i:4167;s:2:"@1";i:4169;}', -'@^Opera/9\.80.*\(.*Mac OS X.*\).*$@'=>4177, -'@^Mozilla/4\..*\(X11.*Linux.*\).*$@'=>4178, -'@^Mozilla/4\..*\(X11.*SunOS.*\).*$@'=>4180, +'@^.*FAST Enterprise Crawler.*$@'=>4054, +'@^Mozilla/5\.0 \(.*\) VoilaBot.*$@'=>4055, +'@^bot/.* \(bot; .*bot\@bot\.bot\)$@'=>4056, +'@^ELinks \(0\.1(\d).*; .*Solaris.*\)$@'=>'a:4:{s:2:"@1";i:4057;s:2:"@0";i:4058;s:2:"@2";i:4059;s:2:"@3";i:4067;}', +'@^ELinks \(0\.1(\d).*; .*OpenBSD.*\)$@'=>'a:4:{s:2:"@0";i:4060;s:2:"@2";i:4062;s:2:"@1";i:4063;s:2:"@3";i:4066;}', +'@^ELinks \(0\.1(\d).*; .*FreeBSD.*\)$@'=>'a:4:{s:2:"@0";i:4061;s:2:"@3";i:4064;s:2:"@1";i:4065;s:2:"@2";i:4068;}', +'@^Opera/(\d)\..*\(.*Win 9x 4\.90.*\).*$@'=>'a:8:{s:2:"@7";i:4069;s:2:"@2";i:4072;s:2:"@4";i:4078;s:2:"@9";i:4082;s:2:"@3";i:4085;s:2:"@6";i:4087;s:2:"@5";i:4088;s:2:"@8";i:4089;}', +'@^Opera/1(\d)\..*\(.*Windows 9(\d).*\).*$@'=>'a:6:{s:4:"@1|8";i:4070;s:4:"@1|5";i:4079;s:4:"@2|8";i:4093;s:4:"@0|5";i:4095;s:4:"@2|5";i:4096;s:4:"@0|8";i:4097;}', +'@^Opera/12\.1(\d).*\(.*Mac OS X.*\).*$@'=>'a:7:{s:2:"@4";i:4071;s:2:"@6";i:4075;s:2:"@5";i:4076;s:2:"@3";i:4080;s:2:"@2";i:4084;s:2:"@1";i:4090;s:2:"@0";i:4091;}', +'@^Opera/1(\d)\..*\(.*Windows ME.*\).*$@'=>'a:3:{s:2:"@1";i:4073;s:2:"@0";i:4092;s:2:"@2";i:4094;}', +'@^Mozilla/4\.(\d).*\(X11.*SunOS.*\).*$@'=>'a:2:{s:2:"@7";i:4074;s:2:"@8";i:4086;}', +'@^Mozilla/4\.(\d).*\(X11.*Linux.*\).*$@'=>'a:2:{s:2:"@7";i:4077;s:2:"@8";i:4083;}', +'@^Opera/9\.80.*\(.*Macintosh.*\).*$@'=>4081, +'@^ShowXML/1\.0 libwww/5\.4\.0$@'=>4098, +'@^IPiumBot laurion\(dot\)com$@'=>4099, +'@^Lycos\-Spider_\(modspider\)$@'=>4100, +'@^Oracle Enterprise Search$@'=>4101, +'@^Mozilla/4\.0 \(VMS_Mosaic\)$@'=>4102, +'@^Windows\-Media\-Player/(\d)\..*$@'=>'a:3:{s:2:"@8";i:4103;s:2:"@7";i:4108;s:2:"@9";i:4109;}', +'@^IBrowse/1\.22 \(AmigaOS .*\)$@'=>4104, +'@^Tcl http client package.*$@'=>4105, +'@^ICRA_label_generator/1\..$@'=>4106, +'@^ICRA_Semantic_spider/0\..$@'=>4107, +'@^BlogPulse \(ISSpider\-3\..*\)$@'=>4110, +'@^Nutch/0\.. \(OpenX Spider\)$@'=>4111, +'@^Google OpenSocial agent.*$@'=>4112, +'@^appie.*\(www\.walhello\.com\)$@'=>4113, +'@^MOT\-GATW_/.* UP\.Browser/.*$@'=>4114, +'@^FAST\-WebCrawler/.*/Fresh.*$@'=>4115, +'@^MOT\-8700_/.* UP\.Browser/.*$@'=>4116, +'@^MOT\-SAP4_/.* UP\.Browser/.*$@'=>4117, +'@^Mozilla/.* \(PLAYSTATION.*\)$@'=>4118, +'@^ELinks/0\.1(\d).* \(.*Solaris.*\)$@'=>'a:4:{s:2:"@2";i:4119;s:2:"@1";i:4134;s:2:"@0";i:4143;s:2:"@3";i:4144;}', +'@^LG\-.* Polaris/(\d)\..* MMP/2\..*$@'=>'a:3:{s:2:"@5";i:4120;s:2:"@6";i:4124;s:2:"@7";i:4129;}', +'@^ELinks \(0\.1(\d).*; .*NetBSD.*\)$@'=>'a:4:{s:2:"@1";i:4121;s:2:"@2";i:4125;s:2:"@3";i:4132;s:2:"@0";i:4137;}', +'@^ELinks \(0\.1(\d).*; .*Darwin.*\)$@'=>'a:4:{s:2:"@3";i:4122;s:2:"@2";i:4126;s:2:"@0";i:4138;s:2:"@1";i:4148;}', +'@^Kopiczek/.* \(WyderOS.*; .*\)$@'=>4123, +'@^ELinks/0\.1(\d).* \(.*OpenBSD.*\)$@'=>'a:4:{s:2:"@1";i:4127;s:2:"@2";i:4128;s:2:"@0";i:4141;s:2:"@3";i:4146;}', +'@^ELinks \(0\.1(\d).*; .*CygWin.*\)$@'=>'a:4:{s:2:"@3";i:4130;s:2:"@0";i:4139;s:2:"@1";i:4145;s:2:"@2";i:4147;}', +'@^ELinks/0\.1(\d).* \(.*FreeBSD.*\)$@'=>'a:4:{s:2:"@0";i:4131;s:2:"@1";i:4135;s:2:"@2";i:4142;s:2:"@3";i:4149;}', +'@^ELinks \(0\.9.*; .*FreeBSD.*\)$@'=>4133, +'@^ELinks \(0\.9.*; .*Solaris.*\)$@'=>4136, +'@^ELinks \(0\.9.*; .*OpenBSD.*\)$@'=>4140, +'@^Opera/(\d)\..*\(.*Windows 9(\d).*\).*$@'=>'a:16:{s:4:"@2|8";i:4150;s:4:"@7|5";i:4151;s:4:"@6|5";i:4153;s:4:"@6|8";i:4154;s:4:"@8|8";i:4155;s:4:"@7|8";i:4157;s:4:"@9|8";i:4159;s:4:"@9|5";i:4160;s:4:"@8|5";i:4162;s:4:"@5|5";i:4168;s:4:"@5|8";i:4169;s:4:"@4|8";i:4174;s:4:"@4|5";i:4175;s:4:"@2|5";i:4178;s:4:"@3|5";i:4184;s:4:"@3|8";i:4185;}', +'@^Opera/(\d)\..*\(.*Windows ME.*\).*$@'=>'a:8:{s:2:"@8";i:4152;s:2:"@6";i:4156;s:2:"@9";i:4158;s:2:"@7";i:4161;s:2:"@2";i:4163;s:2:"@3";i:4167;s:2:"@5";i:4170;s:2:"@4";i:4173;}', +'@^Opera/9\.80.*\(.*Mac OS X.*\).*$@'=>4164, +'@^Opera/12\.1(\d).*\(.*FreeBSD.*\).*$@'=>'a:7:{s:2:"@5";i:4165;s:2:"@4";i:4166;s:2:"@6";i:4176;s:2:"@3";i:4180;s:2:"@2";i:4182;s:2:"@0";i:4183;s:2:"@1";i:4186;}', +'@^Opera/11\.(\d).*\(.*Mac OS X.*\).*$@'=>'a:3:{s:2:"@1";i:4171;s:2:"@5";i:4172;s:2:"@6";i:4179;}', +'@^Mozilla/4\..*\(X11.*SunOS.*\).*$@'=>4177, +'@^Opera/.*\(.*Windows 2000.*\).*$@'=>4181, +'@^Mozilla/4\..*\(X11.*Linux.*\).*$@'=>4187, '@^Mozilla/.*\(.*MSIE.*AOL.*Mac.*$@'=>4188, '@^Mozilla/.*\(.*MSIE.*AOL.*Win.*$@'=>4189, -'@^spider \(tspyyp\@tom\.com\)$@'=>4190, -'@^WebTrends Link Analyzer$@'=>4191, -'@^Titanium 2005 \(4\.02\.01\)$@'=>4192, -'@^Morfeus Fucking Scanner$@'=>4193, -'@^blogsearchbot\-pumpkin\-2$@'=>4195, -'@^ATA\-Translation\-Service$@'=>4196, -'@^Shelob \(shelob\@gmx\.net\)$@'=>4197, -'@^gazz/.*\(gazz\@nttr\.co\.jp\)$@'=>4198, -'@^Open Web Analytics Bot.*$@'=>4199, -'@^Favorites Sweeper v\.3\..*$@'=>4200, -'@^XML Sitemaps Generator.*$@'=>4201, +'@^blogsearchbot\-pumpkin\-2$@'=>4190, +'@^spider \(tspyyp\@tom\.com\)$@'=>4191, +'@^ATA\-Translation\-Service$@'=>4192, +'@^Shelob \(shelob\@gmx\.net\)$@'=>4193, +'@^Titanium 2005 \(4\.02\.01\)$@'=>4194, +'@^Morfeus Fucking Scanner$@'=>4195, +'@^WebTrends Link Analyzer$@'=>4196, +'@^sitemonitor\@dnsvr\.com/.*$@'=>4198, +'@^http\://Anonymouse\.org/.*$@'=>4199, +'@^Domain Dossier utility.*$@'=>4200, +'@^Open Web Analytics Bot.*$@'=>4201, '@^Bloglines Title Fetch/.*$@'=>4202, -'@^IBrowse/2\.(\d) \(AmigaOS .*\)$@'=>'a:3:{s:2:"@1";i:4203;s:2:"@3";i:4207;s:2:"@2";i:4209;}', -'@^http\://Anonymouse\.org/.*$@'=>4204, -'@^Myst Monitor Service v.*$@'=>4205, -'@^Domain Dossier utility.*$@'=>4206, -'@^CyberSpyder Link Test/.*$@'=>4208, -'@^SocialSpider\-Finder/0\..*$@'=>4210, -'@^Mozilla/5\.0 \(Twiceler.*\)$@'=>4211, -'@^sitemonitor\@dnsvr\.com/.*$@'=>4212, -'@^MOT\-A\-2B/.* UP\.Browser/.*$@'=>4213, +'@^Mozilla/5\.0 \(Twiceler.*\)$@'=>4203, +'@^gazz/.*\(gazz\@nttr\.co\.jp\)$@'=>4204, +'@^Favorites Sweeper v\.3\..*$@'=>4205, +'@^Myst Monitor Service v.*$@'=>4206, +'@^CyberSpyder Link Test/.*$@'=>4207, +'@^SocialSpider\-Finder/0\..*$@'=>4208, +'@^IBrowse/2\.(\d) \(AmigaOS .*\)$@'=>'a:3:{s:2:"@2";i:4209;s:2:"@3";i:4210;s:2:"@1";i:4212;}', +'@^XML Sitemaps Generator.*$@'=>4211, +'@^MOT\-A\-0A/.* UP\.Browser/.*$@'=>4213, '@^MOT\-A\-88/.* UP\.Browser/.*$@'=>4214, -'@^MOT\-A\-0A/.* UP\.Browser/.*$@'=>4215, +'@^MOT\-A\-2B/.* UP\.Browser/.*$@'=>4215, '@^PubSub\-RSS\-Reader/.* \(.*\)$@'=>4216, -'@^ELinks/0\.1(\d).* \(.*Darwin.*\)$@'=>'a:4:{s:2:"@2";i:4217;s:2:"@3";i:4218;s:2:"@0";i:4234;s:2:"@1";i:4236;}', -'@^ELinks/0\.1(\d).* \(.*NetBSD.*\)$@'=>'a:4:{s:2:"@3";i:4219;s:2:"@1";i:4232;s:2:"@2";i:4233;s:2:"@0";i:4237;}', -'@^ELinks/0\.1(\d).* \(.*CygWin.*\)$@'=>'a:4:{s:2:"@3";i:4220;s:2:"@2";i:4223;s:2:"@0";i:4235;s:2:"@1";i:4240;}', -'@^ELinks \(0\.1(\d).*; .*Linux.*\)$@'=>'a:4:{s:2:"@3";i:4221;s:2:"@2";i:4222;s:2:"@0";i:4238;s:2:"@1";i:4239;}', -'@^ELinks \(0\.9.*; .*CygWin.*\)$@'=>4224, -'@^ELinks \(0\.9.*; .*Darwin.*\)$@'=>4225, -'@^Mozilla/4\.(\d).*\(Win2000.*\).*$@'=>'a:2:{s:2:"@8";i:4226;s:2:"@7";i:4227;}', -'@^ELinks/0\.9.* \(.*Solaris.*\)$@'=>4228, -'@^ELinks/0\.9.* \(.*OpenBSD.*\)$@'=>4229, -'@^ELinks \(0\.9.*; .*NetBSD.*\)$@'=>4230, -'@^ELinks/0\.9.* \(.*FreeBSD.*\)$@'=>4231, -'@^Opera/9\.80.*\(.*FreeBSD.*\).*$@'=>4241, -'@^Opera/1(\d)\..*\(.*Mac OS X.*\).*$@'=>'a:3:{s:2:"@0";i:4242;s:2:"@1";i:4243;s:2:"@2";i:4246;}', -'@^Opera/11\.(\d).*\(.*FreeBSD.*\).*$@'=>'a:3:{s:2:"@5";i:4244;s:2:"@6";i:4245;s:2:"@1";i:4248;}', -'@^Opera/.*\(.*Win 9x 4\.90.*\).*$@'=>4247, -'@^Extreme Picture Finder$@'=>4249, -'@^TargetYourNews\.com bot$@'=>4251, -'@^AndroidDownloadManager$@'=>4253, -'@^WinScripter iNet Tools$@'=>4254, -'@^Sogou develop spider/.*$@'=>4256, -'@^iSiloX/4\.(\d).* Windows/32$@'=>'a:4:{s:2:"@2";i:4257;s:2:"@1";i:4258;s:2:"@0";i:4259;s:2:"@3";i:4261;}', -'@^YahooSeeker/CafeKelsa.*$@'=>4260, -'@^HuaweiSymantecSpider/.*$@'=>4262, -'@^websitepulse checker/.*$@'=>4263, -'@^IE/6\.01 \(CP/M; 8\-bit.*\)$@'=>4264, +'@^ELinks/0\.1(\d).* \(.*Darwin.*\)$@'=>'a:4:{s:2:"@3";i:4217;s:2:"@0";i:4223;s:2:"@1";i:4224;s:2:"@2";i:4233;}', +'@^ELinks/0\.1(\d).* \(.*NetBSD.*\)$@'=>'a:4:{s:2:"@1";i:4218;s:2:"@0";i:4221;s:2:"@3";i:4228;s:2:"@2";i:4239;}', +'@^ELinks \(0\.9.*; .*CygWin.*\)$@'=>4219, +'@^ELinks/0\.1(\d).* \(.*CygWin.*\)$@'=>'a:4:{s:2:"@1";i:4220;s:2:"@0";i:4222;s:2:"@2";i:4229;s:2:"@3";i:4236;}', +'@^ELinks \(0\.9.*; .*NetBSD.*\)$@'=>4225, +'@^Mozilla/4\.(\d).*\(Win2000.*\).*$@'=>'a:2:{s:2:"@8";i:4226;s:2:"@7";i:4238;}', +'@^ELinks \(0\.9.*; .*Darwin.*\)$@'=>4227, +'@^ELinks/0\.9.* \(.*FreeBSD.*\)$@'=>4230, +'@^ELinks \(0\.1(\d).*; .*Linux.*\)$@'=>'a:4:{s:2:"@3";i:4231;s:2:"@1";i:4232;s:2:"@0";i:4235;s:2:"@2";i:4240;}', +'@^ELinks/0\.9.* \(.*OpenBSD.*\)$@'=>4234, +'@^ELinks/0\.9.* \(.*Solaris.*\)$@'=>4237, +'@^Opera/1(\d)\..*\(.*Mac OS X.*\).*$@'=>'a:3:{s:2:"@1";i:4241;s:2:"@2";i:4244;s:2:"@0";i:4247;}', +'@^Opera/.*\(.*Win 9x 4\.90.*\).*$@'=>4242, +'@^Opera/11\.(\d).*\(.*FreeBSD.*\).*$@'=>'a:3:{s:2:"@6";i:4243;s:2:"@1";i:4245;s:2:"@5";i:4246;}', +'@^Opera/9\.80.*\(.*FreeBSD.*\).*$@'=>4248, +'@^WinScripter iNet Tools$@'=>4249, +'@^TargetYourNews\.com bot$@'=>4250, +'@^Extreme Picture Finder$@'=>4253, +'@^AndroidDownloadManager$@'=>4254, +'@^HuaweiSymantecSpider/.*$@'=>4256, +'@^websitepulse checker/.*$@'=>4257, +'@^IE/6\.01 \(CP/M; 8\-bit.*\)$@'=>4258, +'@^YahooSeeker/CafeKelsa.*$@'=>4259, +'@^iSiloX/4\.(\d).* Windows/32$@'=>'a:4:{s:2:"@3";i:4260;s:2:"@2";i:4261;s:2:"@1";i:4263;s:2:"@0";i:4264;}', +'@^JetBrains Omea Reader.*$@'=>4262, '@^Microsoft URL Control.*$@'=>4265, -'@^JetBrains Omea Reader.*$@'=>4266, -'@^Links \(2\.(\d).*; OpenBSD.*\)$@'=>'a:3:{s:2:"@3";i:4267;s:2:"@2";i:4268;s:2:"@1";i:4275;}', -'@^Links \((\d)\.(\d).*; FreeBSD.*\)$@'=>'a:5:{s:4:"@2|3";i:4269;s:4:"@0|9";i:4270;s:4:"@2|2";i:4272;s:4:"@1|0";i:4273;s:4:"@2|1";i:4274;}', -'@^Iltrovatore\-.etaccio/.*$@'=>4271, -'@^ELinks \(0\.1(\d).*; .*HPUX.*\)$@'=>'a:4:{s:2:"@3";i:4276;s:2:"@2";i:4277;s:2:"@0";i:4290;s:2:"@1";i:4301;}', -'@^ELinks \(0\.1(\d).*; .*BeOS.*\)$@'=>'a:4:{s:2:"@2";i:4278;s:2:"@3";i:4281;s:2:"@0";i:4291;s:2:"@1";i:4300;}', -'@^ELinks \(0\.1(\d).*; .*IRIX.*\)$@'=>'a:4:{s:2:"@3";i:4279;s:2:"@2";i:4285;s:2:"@0";i:4287;s:2:"@1";i:4299;}', -'@^ELinks \(0\.1(\d).*; .*OS/2.*\)$@'=>'a:4:{s:2:"@2";i:4280;s:2:"@0";i:4288;s:2:"@3";i:4295;s:2:"@1";i:4298;}', -'@^ELinks/0\.1(\d).* \(.*Linux.*\)$@'=>'a:4:{s:2:"@2";i:4282;s:2:"@0";i:4286;s:2:"@1";i:4302;s:2:"@3";i:4303;}', -'@^ELinks \(0\.1(\d).*; .*Unix.*\)$@'=>'a:4:{s:2:"@2";i:4283;s:2:"@0";i:4294;s:2:"@1";i:4297;s:2:"@3";i:4310;}', -'@^ELinks \(0\.1(\d).*; .*RISC.*\)$@'=>'a:4:{s:2:"@2";i:4284;s:2:"@0";i:4289;s:2:"@1";i:4296;s:2:"@3";i:4306;}', -'@^SAMSUNG.* .*NetFront/(\d)\..*$@'=>'a:2:{s:2:"@2";i:4292;s:2:"@3";i:4293;}', -'@^.*Konqueror/3\..*FreeBSD.*$@'=>4304, -'@^.*Konqueror/3\..*OpenBSD.*$@'=>4305, -'@^Mozilla/4\..*\(Win2000.*\).*$@'=>4307, -'@^ELinks/0\.9.* \(.*Darwin.*\)$@'=>4308, -'@^ELinks/0\.9.* \(.*NetBSD.*\)$@'=>4309, -'@^ELinks/0\.9.* \(.*CygWin.*\)$@'=>4311, -'@^ELinks \(0\.9.*; .*Linux.*\)$@'=>4312, -'@^Opera/12\.1(\d).*\(.*SunOS.*\).*$@'=>'a:7:{s:2:"@5";i:4313;s:2:"@3";i:4316;s:2:"@4";i:4317;s:2:"@6";i:4327;s:2:"@2";i:4330;s:2:"@0";i:4336;s:2:"@1";i:4339;}', -'@^Opera/12\.1(\d).*\(.*Linux.*\).*$@'=>'a:7:{s:2:"@6";i:4314;s:2:"@5";i:4315;s:2:"@4";i:4318;s:2:"@3";i:4323;s:2:"@1";i:4328;s:2:"@0";i:4329;s:2:"@2";i:4340;}', -'@^Opera/(\d)\..*\(.*Mac OS X.*\).*$@'=>'a:8:{s:2:"@5";i:4319;s:2:"@6";i:4321;s:2:"@7";i:4322;s:2:"@4";i:4324;s:2:"@2";i:4325;s:2:"@3";i:4326;s:2:"@8";i:4337;s:2:"@9";i:4338;}', -'@^Opera/.*\(.*Windows XP.*\).*$@'=>4320, -'@^Opera/1(\d)\..*\(.*FreeBSD.*\).*$@'=>'a:3:{s:2:"@2";i:4331;s:2:"@1";i:4332;s:2:"@0";i:4334;}', -'@^Opera/.*\(.*Windows ME.*\).*$@'=>4333, -'@^Opera/.*\(.*Windows 9(\d).*\).*$@'=>'a:2:{s:2:"@5";i:4335;s:2:"@8";i:4341;}', -'@^Opera/.*\(.*Windows CE.*\).*$@'=>4342, -'@^Browscap Mirror v1\.30$@'=>4343, -'@^NSO_Debugger_User/2\.0$@'=>4344, -'@^Mozilla/3\.0 \(INGRID/.*$@'=>4346, -'@^multiBlocker browser.*$@'=>4347, -'@^MSNBot\-NewsBlogs/1\.0.*$@'=>4348, +'@^Sogou develop spider/.*$@'=>4266, +'@^Iltrovatore\-.etaccio/.*$@'=>4267, +'@^Links \((\d)\.(\d).*; FreeBSD.*\)$@'=>'a:5:{s:4:"@2|1";i:4268;s:4:"@2|2";i:4270;s:4:"@2|3";i:4272;s:4:"@1|0";i:4274;s:4:"@0|9";i:4275;}', +'@^Links \(2\.(\d).*; OpenBSD.*\)$@'=>'a:3:{s:2:"@1";i:4269;s:2:"@2";i:4271;s:2:"@3";i:4273;}', +'@^ELinks \(0\.1(\d).*; .*BeOS.*\)$@'=>'a:4:{s:2:"@2";i:4276;s:2:"@3";i:4288;s:2:"@0";i:4295;s:2:"@1";i:4306;}', +'@^ELinks \(0\.1(\d).*; .*Unix.*\)$@'=>'a:4:{s:2:"@2";i:4277;s:2:"@1";i:4284;s:2:"@0";i:4302;s:2:"@3";i:4309;}', +'@^ELinks \(0\.1(\d).*; .*OS/2.*\)$@'=>'a:4:{s:2:"@1";i:4278;s:2:"@2";i:4282;s:2:"@0";i:4299;s:2:"@3";i:4311;}', +'@^ELinks \(0\.1(\d).*; .*RISC.*\)$@'=>'a:4:{s:2:"@1";i:4279;s:2:"@2";i:4283;s:2:"@0";i:4289;s:2:"@3";i:4310;}', +'@^ELinks/0\.1(\d).* \(.*Linux.*\)$@'=>'a:4:{s:2:"@2";i:4280;s:2:"@1";i:4285;s:2:"@3";i:4287;s:2:"@0";i:4305;}', +'@^ELinks \(0\.1(\d).*; .*HPUX.*\)$@'=>'a:4:{s:2:"@2";i:4281;s:2:"@0";i:4296;s:2:"@3";i:4303;s:2:"@1";i:4307;}', +'@^ELinks \(0\.1(\d).*; .*IRIX.*\)$@'=>'a:4:{s:2:"@2";i:4286;s:2:"@0";i:4297;s:2:"@1";i:4308;s:2:"@3";i:4312;}', +'@^.*Konqueror/3\..*OpenBSD.*$@'=>4290, +'@^.*Konqueror/3\..*FreeBSD.*$@'=>4291, +'@^Mozilla/4\..*\(Win2000.*\).*$@'=>4292, +'@^SAMSUNG.* .*NetFront/(\d)\..*$@'=>'a:2:{s:2:"@2";i:4293;s:2:"@3";i:4294;}', +'@^ELinks/0\.9.* \(.*NetBSD.*\)$@'=>4298, +'@^ELinks/0\.9.* \(.*Darwin.*\)$@'=>4300, +'@^ELinks/0\.9.* \(.*CygWin.*\)$@'=>4301, +'@^ELinks \(0\.9.*; .*Linux.*\)$@'=>4304, +'@^Opera/.*\(.*Windows XP.*\).*$@'=>4313, +'@^Opera/.*\(.*Windows ME.*\).*$@'=>4314, +'@^Opera/.*\(.*Windows CE.*\).*$@'=>4315, +'@^Opera/.*\(.*Windows 9(\d).*\).*$@'=>'a:2:{s:2:"@8";i:4316;s:2:"@5";i:4317;}', +'@^Opera/(\d)\..*\(.*Mac OS X.*\).*$@'=>'a:8:{s:2:"@9";i:4318;s:2:"@7";i:4319;s:2:"@2";i:4320;s:2:"@3";i:4322;s:2:"@4";i:4326;s:2:"@5";i:4331;s:2:"@6";i:4335;s:2:"@8";i:4337;}', +'@^Opera/12\.1(\d).*\(.*SunOS.*\).*$@'=>'a:7:{s:2:"@2";i:4321;s:2:"@6";i:4323;s:2:"@5";i:4327;s:2:"@4";i:4329;s:2:"@3";i:4332;s:2:"@0";i:4340;s:2:"@1";i:4342;}', +'@^Opera/12\.1(\d).*\(.*Linux.*\).*$@'=>'a:7:{s:2:"@6";i:4324;s:2:"@5";i:4328;s:2:"@4";i:4330;s:2:"@3";i:4333;s:2:"@2";i:4334;s:2:"@0";i:4339;s:2:"@1";i:4341;}', +'@^Opera/1(\d)\..*\(.*FreeBSD.*\).*$@'=>'a:3:{s:2:"@1";i:4325;s:2:"@2";i:4336;s:2:"@0";i:4338;}', +'@^NSO_Debugger_User/2\.0$@'=>4343, +'@^Browscap Mirror v1\.30$@'=>4345, +'@^Atomic_Email_Hunter/.*$@'=>4346, +'@^ezic\.com http agent .*$@'=>4347, +'@^AdsBot\-Google\-Mobile.*$@'=>4348, '@^Mediapartners\-Google.*$@'=>4349, -'@^Netchart Adv Crawler.*$@'=>4350, -'@^iCopyright Conductor.*$@'=>4351, +'@^Mozilla/5\.0 NewsFox/.*$@'=>4350, +'@^http\://arachnode\.net.*$@'=>4351, '@^Infoseek SideWinder/.*$@'=>4352, -'@^copyright sheriff \(.*\)$@'=>4353, -'@^Atomic_Email_Hunter/.*$@'=>4354, -'@^AdsBot\-Google\-Mobile.*$@'=>4355, -'@^http\://arachnode\.net.*$@'=>4356, -'@^Bookmark search tool.*$@'=>4357, -'@^ezic\.com http agent .*$@'=>4358, -'@^Mozilla/5\.0 NewsFox/.*$@'=>4359, -'@^.*BecomeBot\@exava\.com.*$@'=>4360, +'@^multiBlocker browser.*$@'=>4353, +'@^Mozilla/3\.0 \(INGRID/.*$@'=>4354, +'@^iCopyright Conductor.*$@'=>4355, +'@^MSNBot\-NewsBlogs/1\.0.*$@'=>4356, +'@^Netchart Adv Crawler.*$@'=>4357, +'@^copyright sheriff \(.*\)$@'=>4358, +'@^Bookmark search tool.*$@'=>4359, +'@^Links \(2\.(\d).*; NetBSD.*\)$@'=>'a:2:{s:2:"@3";i:4360;s:2:"@2";i:4366;}', '@^.*maxamine\.com\-\-robot.*$@'=>4361, -'@^Links \(0\.9.*; Darwin.*\)$@'=>4362, -'@^Links \(2\.(\d).*; NetBSD.*\)$@'=>'a:2:{s:2:"@3";i:4363;s:2:"@2";i:4367;}', -'@^Links \(2\.(\d).*; Linux .*\)$@'=>'a:2:{s:2:"@1";i:4364;s:2:"@2";i:4368;}', -'@^google \(.*Enterprise.*\)$@'=>4365, -'@^.*Googlebot\-Mobile/2\..*$@'=>4366, -'@^Mozilla/4\.(\d).*\(WinNT.*\).*$@'=>'a:2:{s:2:"@7";i:4369;s:2:"@8";i:4372;}', -'@^Mozilla/4\.(\d).*\(Win9(\d).*\).*$@'=>'a:4:{s:4:"@7|8";i:4370;s:4:"@8|5";i:4371;s:4:"@7|5";i:4373;s:4:"@8|8";i:4374;}', -'@^ELinks/0\.1(\d).* \(.*IRIX.*\)$@'=>'a:4:{s:2:"@3";i:4375;s:2:"@1";i:4378;s:2:"@0";i:4388;s:2:"@2";i:4392;}', -'@^ELinks/0\.1(\d).* \(.*RISC.*\)$@'=>'a:4:{s:2:"@1";i:4376;s:2:"@0";i:4389;s:2:"@3";i:4402;s:2:"@2";i:4404;}', -'@^ELinks/0\.1(\d).* \(.*OS/2.*\)$@'=>'a:4:{s:2:"@1";i:4377;s:2:"@2";i:4393;s:2:"@3";i:4407;s:2:"@0";i:4410;}', -'@^ELinks/0\.1(\d).* \(.*Unix.*\)$@'=>'a:4:{s:2:"@1";i:4379;s:2:"@0";i:4391;s:2:"@3";i:4401;s:2:"@2";i:4403;}', -'@^ELinks \(0\.1(\d).*; .*AIX.*\)$@'=>'a:4:{s:2:"@2";i:4380;s:2:"@0";i:4387;s:2:"@1";i:4390;s:2:"@3";i:4405;}', -'@^ELinks/0\.1(\d).* \(.*HPUX.*\)$@'=>'a:4:{s:2:"@2";i:4381;s:2:"@1";i:4383;s:2:"@0";i:4385;s:2:"@3";i:4408;}', -'@^ELinks/0\.1(\d).* \(.*BeOS.*\)$@'=>'a:4:{s:2:"@2";i:4382;s:2:"@1";i:4384;s:2:"@0";i:4386;s:2:"@3";i:4406;}', -'@^ELinks \(0\.9.*; .*IRIX.*\)$@'=>4394, -'@^ELinks \(0\.9.*; .*HPUX.*\)$@'=>4395, -'@^ELinks \(0\.9.*; .*BeOS.*\)$@'=>4396, -'@^ELinks \(0\.9.*; .*OS/2.*\)$@'=>4397, -'@^ELinks \(0\.9.*; .*RISC.*\)$@'=>4398, -'@^ELinks/0\.9.* \(.*Linux.*\)$@'=>4399, -'@^ELinks \(0\.9.*; .*Unix.*\)$@'=>4400, -'@^Cocoal\.icio\.us/.* \(.*\).*$@'=>4409, -'@^MOT\-1.*/.* UP\.Browser/.*$@'=>4411, -'@^MOT\-M.*/.* UP\.Browser/.*$@'=>4412, -'@^MOT\-V.*/.* UP\.Browser/.*$@'=>4413, -'@^Opera/11\.(\d).*\(.*SunOS.*\).*$@'=>'a:3:{s:2:"@5";i:4414;s:2:"@6";i:4417;s:2:"@1";i:4419;}', -'@^Opera/(\d)\..*\(.*FreeBSD.*\).*$@'=>'a:8:{s:2:"@4";i:4415;s:2:"@7";i:4418;s:2:"@9";i:4421;s:2:"@3";i:4424;s:2:"@8";i:4425;s:2:"@6";i:4426;s:2:"@2";i:4429;s:2:"@5";i:4431;}', -'@^Opera/11\.(\d).*\(.*Linux.*\).*$@'=>'a:3:{s:2:"@6";i:4416;s:2:"@1";i:4420;s:2:"@5";i:4427;}', -'@^Opera/.*\(.*Macintosh.*\).*$@'=>4422, -'@^Mozilla/.* \(.*MSIE 6.*\).*$@'=>4423, -'@^Opera/9\.80.*\(.*Linux.*\).*$@'=>4428, -'@^Opera/9\.80.*\(.*SunOS.*\).*$@'=>4430, -'@^Lycos\-Spider_\(T\-Rex\)$@'=>4432, -'@^Wizz RSS News Reader$@'=>4433, -'@^googlebot\-urlconsole$@'=>4435, -'@^Poodle_predictor_1\.0$@'=>4436, -'@^Microsoft Visio MSIE$@'=>4437, -'@^SOFTWING_TEAR_AGENT.*$@'=>4439, -'@^Sogou Orion spider/.*$@'=>4440, -'@^Funnel Web Profiler.*$@'=>4441, -'@^HenryTheMiragoRobot.*$@'=>4442, -'@^TeragramWebcrawler/.*$@'=>4443, -'@^Web Image Collector.*$@'=>4444, -'@^GoogleFriendConnect.*$@'=>4445, -'@^Internet Exploiter/.*$@'=>4446, -'@^8484 Boston Project.*$@'=>4447, -'@^NetCarta_WebMapper/.*$@'=>4448, -'@^MSNBot\-Academic/1\.0.*$@'=>4449, -'@^Radiation Retriever.*$@'=>4450, -'@^BackStreet Browser .*$@'=>4451, -'@^LinkLint\-checkonly/.*$@'=>4452, -'@^.*Web Link Validator.*$@'=>4453, -'@^Links \((\d)\.(\d).*; Linux.*\)$@'=>'a:4:{s:4:"@0|9";i:4454;s:4:"@2|3";i:4457;s:4:"@1|0";i:4459;s:4:"@2|0";i:4461;}', -'@^.*Baiduspider\-mobile.*$@'=>4455, -'@^Links \((\d)\.(\d).*; Win32.*\)$@'=>'a:2:{s:4:"@0|9";i:4456;s:4:"@1|0";i:4460;}', -'@^.*Google Web Preview.*$@'=>4458, -'@^Mozilla/4\..*\(WinNT.*\).*$@'=>4462, -'@^ELinks/0\.9.* \(.*BeOS.*\)$@'=>4463, +'@^.*BecomeBot\@exava\.com.*$@'=>4362, +'@^google \(.*Enterprise.*\)$@'=>4363, +'@^Links \(0\.9.*; Darwin.*\)$@'=>4364, +'@^.*Googlebot\-Mobile/2\..*$@'=>4365, +'@^Links \(2\.(\d).*; Linux .*\)$@'=>'a:2:{s:2:"@2";i:4367;s:2:"@1";i:4368;}', +'@^ELinks \(0\.1(\d).*; .*AIX.*\)$@'=>'a:4:{s:2:"@2";i:4369;s:2:"@3";i:4402;s:2:"@1";i:4405;s:2:"@0";i:4408;}', +'@^MOT\-V.*/.* UP\.Browser/.*$@'=>4370, +'@^ELinks/0\.1(\d).* \(.*OS/2.*\)$@'=>'a:4:{s:2:"@2";i:4371;s:2:"@3";i:4375;s:2:"@1";i:4379;s:2:"@0";i:4406;}', +'@^ELinks/0\.1(\d).* \(.*IRIX.*\)$@'=>'a:4:{s:2:"@2";i:4372;s:2:"@1";i:4380;s:2:"@3";i:4386;s:2:"@0";i:4410;}', +'@^ELinks/0\.1(\d).* \(.*HPUX.*\)$@'=>'a:4:{s:2:"@2";i:4373;s:2:"@1";i:4381;s:2:"@3";i:4391;s:2:"@0";i:4411;}', +'@^ELinks/0\.1(\d).* \(.*BeOS.*\)$@'=>'a:4:{s:2:"@2";i:4374;s:2:"@1";i:4383;s:2:"@3";i:4387;s:2:"@0";i:4409;}', +'@^ELinks/0\.1(\d).* \(.*Unix.*\)$@'=>'a:4:{s:2:"@2";i:4376;s:2:"@1";i:4377;s:2:"@3";i:4382;s:2:"@0";i:4407;}', +'@^ELinks/0\.1(\d).* \(.*RISC.*\)$@'=>'a:4:{s:2:"@1";i:4378;s:2:"@2";i:4384;s:2:"@3";i:4398;s:2:"@0";i:4412;}', +'@^ELinks \(0\.9.*; .*HPUX.*\)$@'=>4385, +'@^ELinks \(0\.9.*; .*IRIX.*\)$@'=>4388, +'@^ELinks \(0\.9.*; .*OS/2.*\)$@'=>4389, +'@^Mozilla/4\.(\d).*\(WinNT.*\).*$@'=>'a:2:{s:2:"@7";i:4390;s:2:"@8";i:4395;}', +'@^ELinks \(0\.9.*; .*RISC.*\)$@'=>4392, +'@^ELinks \(0\.9.*; .*Unix.*\)$@'=>4393, +'@^ELinks \(0\.9.*; .*BeOS.*\)$@'=>4394, +'@^ELinks/0\.9.* \(.*Linux.*\)$@'=>4396, +'@^Mozilla/4\.(\d).*\(Win9(\d).*\).*$@'=>'a:4:{s:4:"@8|8";i:4397;s:4:"@8|5";i:4399;s:4:"@7|8";i:4400;s:4:"@7|5";i:4401;}', +'@^MOT\-1.*/.* UP\.Browser/.*$@'=>4403, +'@^MOT\-M.*/.* UP\.Browser/.*$@'=>4404, +'@^Cocoal\.icio\.us/.* \(.*\).*$@'=>4413, +'@^Opera/11\.(\d).*\(.*Linux.*\).*$@'=>'a:3:{s:2:"@1";i:4414;s:2:"@6";i:4424;s:2:"@5";i:4429;}', +'@^Opera/9\.80.*\(.*SunOS.*\).*$@'=>4415, +'@^Opera/.*\(.*Macintosh.*\).*$@'=>4416, +'@^Opera/(\d)\..*\(.*FreeBSD.*\).*$@'=>'a:8:{s:2:"@2";i:4417;s:2:"@7";i:4419;s:2:"@3";i:4420;s:2:"@5";i:4421;s:2:"@9";i:4425;s:2:"@8";i:4427;s:2:"@4";i:4430;s:2:"@6";i:4431;}', +'@^Opera/11\.(\d).*\(.*SunOS.*\).*$@'=>'a:3:{s:2:"@1";i:4418;s:2:"@6";i:4423;s:2:"@5";i:4428;}', +'@^Opera/9\.80.*\(.*Linux.*\).*$@'=>4422, +'@^Mozilla/.* \(.*MSIE 6.*\).*$@'=>4426, +'@^googlebot\-urlconsole$@'=>4432, +'@^Lycos\-Spider_\(T\-Rex\)$@'=>4433, +'@^Poodle_predictor_1\.0$@'=>4434, +'@^Microsoft Visio MSIE$@'=>4435, +'@^Wizz RSS News Reader$@'=>4437, +'@^MSNBot\-Academic/1\.0.*$@'=>4439, +'@^NetCarta_WebMapper/.*$@'=>4440, +'@^BackStreet Browser .*$@'=>4441, +'@^Sogou Orion spider/.*$@'=>4442, +'@^Funnel Web Profiler.*$@'=>4443, +'@^HenryTheMiragoRobot.*$@'=>4444, +'@^LinkLint\-checkonly/.*$@'=>4445, +'@^SOFTWING_TEAR_AGENT.*$@'=>4446, +'@^GoogleFriendConnect.*$@'=>4447, +'@^Radiation Retriever.*$@'=>4448, +'@^Internet Exploiter/.*$@'=>4449, +'@^8484 Boston Project.*$@'=>4450, +'@^Web Image Collector.*$@'=>4451, +'@^TeragramWebcrawler/.*$@'=>4452, +'@^Links \((\d)\.(\d).*; Linux.*\)$@'=>'a:4:{s:4:"@2|3";i:4453;s:4:"@1|0";i:4455;s:4:"@2|0";i:4457;s:4:"@0|9";i:4458;}', +'@^.*Baiduspider\-mobile.*$@'=>4454, +'@^Links \((\d)\.(\d).*; Win32.*\)$@'=>'a:2:{s:4:"@1|0";i:4456;s:4:"@0|9";i:4460;}', +'@^.*Web Link Validator.*$@'=>4459, +'@^.*Google Web Preview.*$@'=>4461, +'@^ELinks/0\.9.* \(.*IRIX.*\)$@'=>4462, +'@^ELinks/0\.9.* \(.*OS/2.*\)$@'=>4463, '@^ELinks/0\.9.* \(.*HPUX.*\)$@'=>4464, -'@^ELinks/0\.1(\d).* \(.*AIX.*\)$@'=>'a:4:{s:2:"@2";i:4465;s:2:"@1";i:4467;s:2:"@3";i:4471;s:2:"@0";i:4476;}', -'@^Mozilla/4\..*\(Win9(\d).*\).*$@'=>'a:2:{s:2:"@5";i:4466;s:2:"@8";i:4469;}', -'@^ELinks \(0\.9.*; .*AIX.*\)$@'=>4468, -'@^.*Konqueror/3\..*Linux.*$@'=>4470, -'@^ELinks/0\.9.* \(.*Unix.*\)$@'=>4472, -'@^ELinks/0\.9.* \(.*OS/2.*\)$@'=>4473, -'@^ELinks/0\.9.* \(.*RISC.*\)$@'=>4474, -'@^ELinks/0\.9.* \(.*IRIX.*\)$@'=>4475, -'@^Opera/1(\d)\..*\(.*Linux.*\).*$@'=>'a:3:{s:2:"@0";i:4477;s:2:"@1";i:4478;s:2:"@2";i:4484;}', -'@^Opera/1(\d)\..*\(.*SunOS.*\).*$@'=>'a:3:{s:2:"@1";i:4479;s:2:"@0";i:4481;s:2:"@2";i:4483;}', -'@^Opera/.*\(.*Mac OS X.*\).*$@'=>4480, -'@^Mozilla/.*\(.*MSIE.*AOL.*$@'=>4482, -'@^Opera/9\.80.*\(.*UNIX.*\).*$@'=>4485, -'@^MetaGer\-LinkChecker$@'=>4487, -'@^Seeker\.lookseek\.com$@'=>4489, -'@^QuickFinder Crawler$@'=>4490, -'@^Oracle Ultra Search$@'=>4491, -'@^Internet Explorer .*$@'=>4492, -'@^Website Downloader.*$@'=>4493, -'@^wadaino\.jp\-crawler.*$@'=>4494, -'@^GigabotSiteSearch/.*$@'=>4495, -'@^WordPress\-Do\-P\-/2\..*$@'=>4496, -'@^ExactSeek Crawler/.*$@'=>4497, -'@^LightningDownload/.*$@'=>4498, -'@^Offline Downloader.*$@'=>4499, -'@^Sogou Push Spider/.*$@'=>4500, +'@^ELinks/0\.9.* \(.*RISC.*\)$@'=>4465, +'@^ELinks/0\.9.* \(.*BeOS.*\)$@'=>4466, +'@^ELinks/0\.1(\d).* \(.*AIX.*\)$@'=>'a:4:{s:2:"@0";i:4467;s:2:"@2";i:4470;s:2:"@1";i:4471;s:2:"@3";i:4472;}', +'@^ELinks/0\.9.* \(.*Unix.*\)$@'=>4468, +'@^ELinks \(0\.9.*; .*AIX.*\)$@'=>4469, +'@^Mozilla/4\..*\(Win9(\d).*\).*$@'=>'a:2:{s:2:"@8";i:4473;s:2:"@5";i:4474;}', +'@^Mozilla/4\..*\(WinNT.*\).*$@'=>4475, +'@^.*Konqueror/3\..*Linux.*$@'=>4476, +'@^Mozilla/.*\(.*MSIE.*AOL.*$@'=>4477, +'@^Opera/.*\(.*Mac OS X.*\).*$@'=>4478, +'@^Opera/1(\d)\..*\(.*Linux.*\).*$@'=>'a:3:{s:2:"@2";i:4479;s:2:"@1";i:4482;s:2:"@0";i:4484;}', +'@^Opera/1(\d)\..*\(.*SunOS.*\).*$@'=>'a:3:{s:2:"@1";i:4480;s:2:"@0";i:4483;s:2:"@2";i:4485;}', +'@^Opera/9\.80.*\(.*UNIX.*\).*$@'=>4481, +'@^QuickFinder Crawler$@'=>4486, +'@^Seeker\.lookseek\.com$@'=>4487, +'@^MetaGer\-LinkChecker$@'=>4488, +'@^Oracle Ultra Search$@'=>4489, +'@^WordPress\-Do\-P\-/2\..*$@'=>4492, +'@^GigabotSiteSearch/.*$@'=>4493, +'@^ExactSeek Crawler/.*$@'=>4494, +'@^Z\-Add Link Checker.*$@'=>4495, +'@^wadaino\.jp\-crawler.*$@'=>4496, +'@^LightningDownload/.*$@'=>4497, +'@^Feedfetcher\-Google.*$@'=>4498, +'@^Internet Explorer .*$@'=>4499, +'@^Website Downloader.*$@'=>4500, '@^PlantyNet_WebRobot.*$@'=>4501, -'@^Z\-Add Link Checker.*$@'=>4502, -'@^Sogou\-Test\-Spider/.*$@'=>4503, -'@^Feedfetcher\-Google.*$@'=>4504, -'@^semanticdiscovery/.*$@'=>4505, -'@^Dumbot \(version .*\).*$@'=>4506, -'@^Links \((\d)\.(\d).*; OS/2.*\)$@'=>'a:2:{s:4:"@0|9";i:4507;s:4:"@1|0";i:4515;}', -'@^Links \((\d)\.(\d).*; Unix.*\)$@'=>'a:2:{s:4:"@0|9";i:4508;s:4:"@1|0";i:4516;}', -'@^.*Fluffy the spider.*$@'=>4509, -'@^Emacs/W3/(\d)\..* \(Unix.*$@'=>'a:3:{s:2:"@4";i:4510;s:2:"@2";i:4513;s:2:"@3";i:4514;}', +'@^Sogou\-Test\-Spider/.*$@'=>4502, +'@^semanticdiscovery/.*$@'=>4503, +'@^Sogou Push Spider/.*$@'=>4504, +'@^Offline Downloader.*$@'=>4505, +'@^Links \((\d)\.(\d).*; Unix.*\)$@'=>'a:2:{s:4:"@1|0";i:4506;s:4:"@0|9";i:4516;}', +'@^.*Baiduspider\-video.*$@'=>4507, +'@^Emacs/W3/(\d)\..* \(Unix.*$@'=>'a:3:{s:2:"@2";i:4508;s:2:"@3";i:4510;s:2:"@4";i:4512;}', +'@^Links \((\d)\.(\d).*; OS/2.*\)$@'=>'a:2:{s:4:"@0|9";i:4509;s:4:"@1|0";i:4515;}', '@^.*Baiduspider\-image.*$@'=>4511, -'@^.*Baiduspider\-video.*$@'=>4512, -'@^SEC\-.* .*NetFront/(\d)\..*$@'=>'a:2:{s:2:"@2";i:4517;s:2:"@3";i:4518;}', -'@^ELinks/0\.9.* \(.*AIX.*\)$@'=>4519, -'@^Opera/(\d)\..*\(.*SunOS.*\).*$@'=>'a:8:{s:2:"@8";i:4520;s:2:"@7";i:4521;s:2:"@9";i:4523;s:2:"@3";i:4529;s:2:"@4";i:4531;s:2:"@2";i:4532;s:2:"@6";i:4535;s:2:"@5";i:4536;}', -'@^Opera/(\d)\..*\(.*Linux.*\).*$@'=>'a:8:{s:2:"@7";i:4522;s:2:"@9";i:4524;s:2:"@8";i:4525;s:2:"@2";i:4527;s:2:"@3";i:4528;s:2:"@4";i:4530;s:2:"@6";i:4533;s:2:"@5";i:4534;}', -'@^Opera/.*\(.*FreeBSD.*\).*$@'=>4526, -'@^BrowscapUpdater1\.0$@'=>4537, -'@^YahooExternalCache$@'=>4539, -'@^Twisted PageGetter$@'=>4541, -'@^A \.NET Web Crawler$@'=>4543, -'@^Forschungsportal/.*$@'=>4544, -'@^Flaming AttackBot.*$@'=>4545, -'@^FollowSite\.com \(.*\)$@'=>4546, -'@^Sogou Pic Spider/.*$@'=>4547, -'@^Link Valet Online.*$@'=>4548, -'@^Internet Explore .*$@'=>4549, -'@^AppleSyndication/.*$@'=>4550, -'@^DomainWatcher Bot.*$@'=>4551, -'@^NetZip Downloader.*$@'=>4552, -'@^Artera \(Version .*\)$@'=>4553, +'@^Dumbot \(version .*\).*$@'=>4513, +'@^.*Fluffy the spider.*$@'=>4514, +'@^ELinks/0\.9.* \(.*AIX.*\)$@'=>4517, +'@^SEC\-.* .*NetFront/(\d)\..*$@'=>'a:2:{s:2:"@2";i:4518;s:2:"@3";i:4519;}', +'@^Opera/(\d)\..*\(.*SunOS.*\).*$@'=>'a:8:{s:2:"@5";i:4520;s:2:"@3";i:4527;s:2:"@2";i:4528;s:2:"@6";i:4531;s:2:"@7";i:4533;s:2:"@4";i:4534;s:2:"@9";i:4535;s:2:"@8";i:4536;}', +'@^Opera/(\d)\..*\(.*Linux.*\).*$@'=>'a:8:{s:2:"@8";i:4521;s:2:"@2";i:4522;s:2:"@6";i:4524;s:2:"@5";i:4525;s:2:"@3";i:4526;s:2:"@4";i:4529;s:2:"@9";i:4530;s:2:"@7";i:4532;}', +'@^Opera/.*\(.*FreeBSD.*\).*$@'=>4523, +'@^Twisted PageGetter$@'=>4537, +'@^A \.NET Web Crawler$@'=>4541, +'@^YahooExternalCache$@'=>4542, +'@^BrowscapUpdater1\.0$@'=>4543, +'@^Site Valet Online.*$@'=>4544, +'@^Artera \(Version .*\)$@'=>4545, +'@^NexTools WebAgent.*$@'=>4546, +'@^DomainWatcher Bot.*$@'=>4547, +'@^PEAR HTTP_Request.*$@'=>4548, +'@^NetZip Downloader.*$@'=>4549, +'@^Sogou head spider.*$@'=>4550, +'@^boitho\.com\-robot/.*$@'=>4551, +'@^W3C\-mobileOK/DDC\-.*$@'=>4552, +'@^LetsCrawl\.com/1\.0.*$@'=>4553, '@^Website eXtractor.*$@'=>4554, -'@^boitho\.com\-robot/.*$@'=>4555, -'@^Links4US\-Crawler,.*$@'=>4556, -'@^masidani_bot_v0\.6.*$@'=>4557, -'@^Searchmee\! Spider.*$@'=>4558, -'@^PEAR HTTP_Request.*$@'=>4559, -'@^magpie\-crawler/1\..*$@'=>4560, -'@^Site Valet Online.*$@'=>4561, -'@^W3C\-mobileOK/DDC\-.*$@'=>4562, -'@^Sogou head spider.*$@'=>4563, -'@^NexTools WebAgent.*$@'=>4564, -'@^LetsCrawl\.com/1\.0.*$@'=>4565, -'@^.*Baiduspider\-cpro.*$@'=>4566, -'@^Emacs/W3/(\d)\..* \(X11.*$@'=>'a:3:{s:2:"@3";i:4567;s:2:"@2";i:4571;s:2:"@4";i:4572;}', -'@^.*Exabot\@exava\.com.*$@'=>4568, -'@^.*Baiduspider\-news.*$@'=>4569, -'@^.*Baiduspider\-favo.*$@'=>4570, -'@^Feed43 Proxy/.* \(.*\)$@'=>4573, -'@^Xenu.* Link Sleuth.*$@'=>4574, +'@^Sogou Pic Spider/.*$@'=>4555, +'@^FollowSite\.com \(.*\)$@'=>4556, +'@^Link Valet Online.*$@'=>4557, +'@^masidani_bot_v0\.6.*$@'=>4558, +'@^Forschungsportal/.*$@'=>4559, +'@^Flaming AttackBot.*$@'=>4560, +'@^AppleSyndication/.*$@'=>4561, +'@^Internet Explore .*$@'=>4562, +'@^Searchmee\! Spider.*$@'=>4563, +'@^Links4US\-Crawler,.*$@'=>4564, +'@^magpie\-crawler/1\..*$@'=>4565, +'@^Emacs/W3/(\d)\..* \(X11.*$@'=>'a:3:{s:2:"@4";i:4566;s:2:"@3";i:4569;s:2:"@2";i:4570;}', +'@^.*Exabot\@exava\.com.*$@'=>4567, +'@^Xenu.* Link Sleuth.*$@'=>4568, +'@^.*Baiduspider\-news.*$@'=>4571, +'@^.*Baiduspider\-favo.*$@'=>4572, +'@^.*Baiduspider\-cpro.*$@'=>4573, +'@^Feed43 Proxy/.* \(.*\)$@'=>4574, '@^.*LinksManager\.com.*$@'=>4575, -'@^Crawl_Application$@'=>4583, -'@^Exabot\-Images/1\.0$@'=>4586, -'@^Inet \- Eureka App$@'=>4588, -'@^Offline Explorer.*$@'=>4595, -'@^Xaldon WebSpider.*$@'=>4596, -'@^Hatena\:\:Crawler/.*$@'=>4597, -'@^iSiloX/4\.(\d).* MacOS$@'=>'a:4:{s:2:"@1";i:4598;s:2:"@2";i:4602;s:2:"@3";i:4603;s:2:"@0";i:4610;}', -'@^msnbot\-media/1\.(\d).*$@'=>'a:2:{s:2:"@1";i:4599;s:2:"@0";i:4620;}', -'@^BaiduImageSpider.*$@'=>4600, +'@^Crawl_Application$@'=>4577, +'@^Inet \- Eureka App$@'=>4587, +'@^Exabot\-Images/1\.0$@'=>4590, +'@^YahooVideoSearch.*$@'=>4595, +'@^REL Link Checker.*$@'=>4596, +'@^Download Express.*$@'=>4597, +'@^Talkro Web\-Shot/.*$@'=>4598, +'@^VLC media player.*$@'=>4599, +'@^LinkextractorPro.*$@'=>4600, '@^EVE\-minibrowser/.*$@'=>4601, -'@^WWWeasel Robot v.*$@'=>4604, -'@^Y\!J SearchMonkey.*$@'=>4605, -'@^Talkro Web\-Shot/.*$@'=>4606, -'@^LinkextractorPro.*$@'=>4607, -'@^Missigua Locator.*$@'=>4608, -'@^Franklin Locator.*$@'=>4609, -'@^sogou js robot\(.*\)$@'=>4611, -'@^FAST\-WebCrawler/.*$@'=>4612, -'@^HatenaScreenshot.*$@'=>4613, -'@^sogou web spider.*$@'=>4614, -'@^Tutorial Crawler.*$@'=>4615, -'@^VLC media player.*$@'=>4616, -'@^AppEngine\-Google.*$@'=>4617, -'@^Download Express.*$@'=>4618, -'@^Xerka WebBot v1\..*$@'=>4619, -'@^InternetArchive/.*$@'=>4621, -'@^WebsiteExtractor.*$@'=>4622, -'@^YahooVideoSearch.*$@'=>4623, -'@^WebAlta Crawler/.*$@'=>4624, -'@^DomainsBotBot/1\..*$@'=>4625, -'@^BabalooSpider/1\..*$@'=>4626, -'@^NewsGatorOnline/.*$@'=>4627, -'@^Scooter/.*Y\!CrawlX$@'=>4628, -'@^REL Link Checker.*$@'=>4629, -'@^Keyword Density/.*$@'=>4630, -'@^Hatena Bookmark/.*$@'=>4631, +'@^Y\!J SearchMonkey.*$@'=>4602, +'@^NewsGatorOnline/.*$@'=>4603, +'@^Scooter/.*Y\!CrawlX$@'=>4604, +'@^Xaldon WebSpider.*$@'=>4605, +'@^Missigua Locator.*$@'=>4606, +'@^BaiduImageSpider.*$@'=>4607, +'@^WebAlta Crawler/.*$@'=>4608, +'@^Hatena\:\:Crawler/.*$@'=>4609, +'@^InternetArchive/.*$@'=>4610, +'@^Hatena Bookmark/.*$@'=>4611, +'@^Franklin Locator.*$@'=>4612, +'@^iSiloX/4\.(\d).* MacOS$@'=>'a:4:{s:2:"@0";i:4613;s:2:"@1";i:4614;s:2:"@2";i:4615;s:2:"@3";i:4617;}', +'@^AppEngine\-Google.*$@'=>4616, +'@^DomainsBotBot/1\..*$@'=>4618, +'@^WebsiteExtractor.*$@'=>4619, +'@^WWWeasel Robot v.*$@'=>4620, +'@^HatenaScreenshot.*$@'=>4621, +'@^Xerka WebBot v1\..*$@'=>4622, +'@^BabalooSpider/1\..*$@'=>4623, +'@^Keyword Density/.*$@'=>4624, +'@^msnbot\-media/1\.(\d).*$@'=>'a:2:{s:2:"@1";i:4625;s:2:"@0";i:4630;}', +'@^Tutorial Crawler.*$@'=>4626, +'@^Offline Explorer.*$@'=>4627, +'@^FAST\-WebCrawler/.*$@'=>4628, +'@^sogou js robot\(.*\)$@'=>4629, +'@^sogou web spider.*$@'=>4631, '@^.*Baiduspider\-ads.*$@'=>4632, '@^Star.*Downloader/.*$@'=>4633, -'@^niXXieBot.Foster.*$@'=>4634, -'@^.*NetPositive/2\.2.*$@'=>4635, +'@^.*NetPositive/2\.2.*$@'=>4634, +'@^niXXieBot.Foster.*$@'=>4635, '@^Opera/.*\(.*SunOS.*\).*$@'=>4636, '@^Opera/.*\(.*Linux.*\).*$@'=>4637, -'@^BlueCoat ProxySG$@'=>4640, -'@^Zend_Http_Client$@'=>4642, -'@^MPlayer HEAD CVS$@'=>4644, -'@^Browscap updater$@'=>4645, -'@^Sony PS2 \(Linux\)$@'=>4647, -'@^UtilMind HTTPGet$@'=>4648, -'@^VLC Media Player$@'=>4650, -'@^STEROID Download$@'=>4652, -'@^Bookmark\-Manager$@'=>4653, -'@^MSN Feed Manager$@'=>4654, -'@^Taiga web spider$@'=>4655, -'@^TencentTraveler.*$@'=>4659, -'@^Download Wonder.*$@'=>4660, -'@^Yahoo\-MMCrawler.*$@'=>4661, -'@^Web Downloader/.*$@'=>4662, -'@^Toata dragostea.*$@'=>4663, -'@^ActiveBookmark .*$@'=>4664, -'@^Google\-Sitemaps.*$@'=>4665, -'@^Net\:\:Trackback/.*$@'=>4666, -'@^Download Master.*$@'=>4667, -'@^USyd\-NLP\-Spider.*$@'=>4668, -'@^librabot/1\.0 \(.*\)$@'=>4669, -'@^Microsoft BITS/.*$@'=>4670, -'@^WordPress\-B\-/2\..*$@'=>4671, -'@^Hatena Antenna/.*$@'=>4672, -'@^ConveraCrawler/.*$@'=>4673, -'@^MSNBot\-News/1\.0.*$@'=>4674, -'@^SquigglebotBot/.*$@'=>4675, -'@^NuSearch Spider.*$@'=>4676, -'@^URL Spider Pro/.*$@'=>4677, -'@^CerberianDrtrs/.*$@'=>4678, -'@^fetch libfetch/.*$@'=>4679, -'@^Googlebot\-Image.*$@'=>4680, -'@^YahooFeedSeeker.*$@'=>4681, -'@^RPT\-HTTPClient/.*$@'=>4682, -'@^Go\-Ahead\-Got\-It.*$@'=>4683, -'@^WebFilter Robot.*$@'=>4684, -'@^DownloadSession.*$@'=>4685, -'@^Googlebot\-Video.*$@'=>4686, -'@^Desktop Sidebar.*$@'=>4687, -'@^PluckItCrawler/.*$@'=>4688, -'@^ZeBot_www\.ze\.bz.*$@'=>4689, -'@^.*WinHttpRequest.*$@'=>4690, -'@^MOT\-TA02/.* MIB/.*$@'=>4691, -'@^YodaoBot/1\..* \(.*\)$@'=>4692, -'@^.*W3C\-checklink/.*$@'=>4693, -'@^.*altervista\.org.*$@'=>4694, -'@^FeedDigest/.* \(.*\)$@'=>4695, -'@^.*PhotoStickies/.*$@'=>4696, +'@^STEROID Download$@'=>4638, +'@^Zend_Http_Client$@'=>4640, +'@^Taiga web spider$@'=>4641, +'@^MPlayer HEAD CVS$@'=>4642, +'@^VLC Media Player$@'=>4643, +'@^UtilMind HTTPGet$@'=>4644, +'@^Bookmark\-Manager$@'=>4647, +'@^Browscap updater$@'=>4649, +'@^MSN Feed Manager$@'=>4650, +'@^BlueCoat ProxySG$@'=>4655, +'@^Sony PS2 \(Linux\)$@'=>4656, +'@^Googlebot\-Video.*$@'=>4659, +'@^CerberianDrtrs/.*$@'=>4660, +'@^Net\:\:Trackback/.*$@'=>4661, +'@^librabot/1\.0 \(.*\)$@'=>4662, +'@^NuSearch Spider.*$@'=>4663, +'@^Desktop Sidebar.*$@'=>4664, +'@^ZeBot_www\.ze\.bz.*$@'=>4665, +'@^Toata dragostea.*$@'=>4666, +'@^URL Spider Pro/.*$@'=>4667, +'@^Web Downloader/.*$@'=>4668, +'@^MSNBot\-News/1\.0.*$@'=>4669, +'@^fetch libfetch/.*$@'=>4670, +'@^YahooFeedSeeker.*$@'=>4671, +'@^WebFilter Robot.*$@'=>4672, +'@^Google\-Sitemaps.*$@'=>4673, +'@^TencentTraveler.*$@'=>4674, +'@^RPT\-HTTPClient/.*$@'=>4675, +'@^Hatena Antenna/.*$@'=>4676, +'@^WordPress\-B\-/2\..*$@'=>4677, +'@^ConveraCrawler/.*$@'=>4678, +'@^Microsoft BITS/.*$@'=>4679, +'@^USyd\-NLP\-Spider.*$@'=>4680, +'@^PluckItCrawler/.*$@'=>4681, +'@^ActiveBookmark .*$@'=>4682, +'@^Googlebot\-Image.*$@'=>4683, +'@^Yahoo\-MMCrawler.*$@'=>4684, +'@^Go\-Ahead\-Got\-It.*$@'=>4685, +'@^DownloadSession.*$@'=>4686, +'@^SquigglebotBot/.*$@'=>4687, +'@^Download Wonder.*$@'=>4688, +'@^Download Master.*$@'=>4689, +'@^.*PhotoStickies/.*$@'=>4690, +'@^YodaoBot/1\..* \(.*\)$@'=>4691, +'@^.*W3C\-checklink/.*$@'=>4692, +'@^.*altervista\.org.*$@'=>4693, +'@^FeedDigest/.* \(.*\)$@'=>4694, +'@^.*WinHttpRequest.*$@'=>4695, +'@^MOT\-TA02/.* MIB/.*$@'=>4696, '@^Opera/.*\(.*UNIX.*\).*$@'=>4697, '@^MOT\-C.../.* MIB/.*$@'=>4698, -'@^Website Quester$@'=>4701, -'@^Webclipping\.com$@'=>4703, -'@^YRL_ODP_CRAWLER$@'=>4705, -'@^msnbot\-products$@'=>4708, -'@^Tagyu Agent/1\.0$@'=>4711, -'@^Visicom Toolbar$@'=>4712, -'@^MFC_Tear_Sample$@'=>4713, -'@^MSR\-ISRCCrawler$@'=>4716, -'@^Sogou Pic Agent$@'=>4717, -'@^FLATARTS_FAVICO$@'=>4719, -'@^Lsearch/sondeur$@'=>4723, -'@^URL Spider SQL.*$@'=>4725, -'@^Googlebot\-News.*$@'=>4726, -'@^HyperEstraier/.*$@'=>4727, -'@^Yahoo\-MMAudVid.*$@'=>4728, -'@^WWW\-Mechanize/.*$@'=>4729, -'@^Enigma Browser.*$@'=>4730, -'@^UpdateBrowscap.*$@'=>4731, -'@^FreshDownload/.*$@'=>4732, -'@^OpenISearch/1\..*$@'=>4733, -'@^LinkedInBot/1\..*$@'=>4734, -'@^Pete\-Spider/1\..*$@'=>4735, -'@^ObjectsSearch/.*$@'=>4736, -'@^Kontiki Client.*$@'=>4737, -'@^UpTime Checker.*$@'=>4738, -'@^W3C_Validator/.*$@'=>4739, -'@^Internet Ninja.*$@'=>4740, -'@^boitho\.com\-dc/.*$@'=>4741, -'@^CopyRightCheck.*$@'=>4742, -'@^VMS_Mosaic/3\.(\d).*$@'=>'a:2:{s:2:"@7";i:4743;s:2:"@8";i:4754;}', -'@^SmartDownload/.*$@'=>4744, -'@^JUST\-CRAWLER\(.*\)$@'=>4745, -'@^Download Demon.*$@'=>4746, -'@^Googlebot/Test.*$@'=>4747, -'@^ScollSpider/2\..*$@'=>4748, -'@^Download Ninja.*$@'=>4749, -'@^EmailCollector.*$@'=>4750, -'@^libWeb/clsHTTP.*$@'=>4751, -'@^virus_detector.*$@'=>4752, -'@^libcurl\-agent/.*$@'=>4753, -'@^FeedValidator/.*$@'=>4755, -'@^BitTorrentMac/.*$@'=>4756, -'@^SpeedDownload/.*$@'=>4757, -'@^Web Downloader.*$@'=>4758, -'@^Technoratibot/.*$@'=>4759, -'@^Bookmark Buddy.*$@'=>4760, -'@^.*SEMC\-Browser/.*$@'=>4761, -'@^NewsAlloy/.* \(.*\)$@'=>4762, -'@^.*Googlebot/2\.1.*$@'=>4763, -'@^CherryPicker.*/.*$@'=>4764, -'@^MagpieRSS/.* \(.*\)$@'=>4765, -'@^Protopage/.* \(.*\)$@'=>4766, -'@^FeedDemon/.* \(.*\)$@'=>4767, +'@^Lsearch/sondeur$@'=>4701, +'@^MFC_Tear_Sample$@'=>4702, +'@^Website Quester$@'=>4703, +'@^FLATARTS_FAVICO$@'=>4704, +'@^Sogou Pic Agent$@'=>4705, +'@^YRL_ODP_CRAWLER$@'=>4707, +'@^Webclipping\.com$@'=>4708, +'@^Tagyu Agent/1\.0$@'=>4709, +'@^msnbot\-products$@'=>4716, +'@^Visicom Toolbar$@'=>4718, +'@^MSR\-ISRCCrawler$@'=>4720, +'@^Bookmark Buddy.*$@'=>4725, +'@^Download Ninja.*$@'=>4726, +'@^Enigma Browser.*$@'=>4727, +'@^VMS_Mosaic/3\.(\d).*$@'=>'a:2:{s:2:"@8";i:4728;s:2:"@7";i:4730;}', +'@^Yahoo\-MMAudVid.*$@'=>4729, +'@^FreshDownload/.*$@'=>4731, +'@^JUST\-CRAWLER\(.*\)$@'=>4732, +'@^UpTime Checker.*$@'=>4733, +'@^boitho\.com\-dc/.*$@'=>4734, +'@^virus_detector.*$@'=>4735, +'@^Googlebot\-News.*$@'=>4736, +'@^Googlebot/Test.*$@'=>4737, +'@^UpdateBrowscap.*$@'=>4738, +'@^Internet Ninja.*$@'=>4739, +'@^W3C_Validator/.*$@'=>4740, +'@^LinkedInBot/1\..*$@'=>4741, +'@^Kontiki Client.*$@'=>4742, +'@^CopyRightCheck.*$@'=>4743, +'@^Download Demon.*$@'=>4744, +'@^OpenISearch/1\..*$@'=>4745, +'@^ObjectsSearch/.*$@'=>4746, +'@^ScollSpider/2\..*$@'=>4747, +'@^BitTorrentMac/.*$@'=>4748, +'@^SpeedDownload/.*$@'=>4749, +'@^Pete\-Spider/1\..*$@'=>4750, +'@^Web Downloader.*$@'=>4751, +'@^libcurl\-agent/.*$@'=>4752, +'@^libWeb/clsHTTP.*$@'=>4753, +'@^URL Spider SQL.*$@'=>4754, +'@^EmailCollector.*$@'=>4755, +'@^Technoratibot/.*$@'=>4756, +'@^SmartDownload/.*$@'=>4757, +'@^FeedValidator/.*$@'=>4758, +'@^HyperEstraier/.*$@'=>4759, +'@^WWW\-Mechanize/.*$@'=>4760, +'@^.*Googlebot/2\.1.*$@'=>4761, +'@^Protopage/.* \(.*\)$@'=>4762, +'@^NewsAlloy/.* \(.*\)$@'=>4763, +'@^MagpieRSS/.* \(.*\)$@'=>4764, +'@^CherryPicker.*/.*$@'=>4765, +'@^FeedDemon/.* \(.*\)$@'=>4766, +'@^.*SEMC\-Browser/.*$@'=>4767, '@^MOT\-V4.*/.* MIB/.*$@'=>4768, '@^MOT\-T7.*/.* MIB/.*$@'=>4769, -'@^Yahoo\! Mindset$@'=>4772, -'@^shaboyi spider$@'=>4781, -'@^Kenjin Spider.*$@'=>4793, -'@^FairAd Client.*$@'=>4794, -'@^Transmission/.*$@'=>4795, +'@^shaboyi spider$@'=>4771, +'@^Yahoo\! Mindset$@'=>4787, +'@^ActiveRefresh.*$@'=>4793, +'@^WebDownloader.*$@'=>4794, +'@^HiddenMarket\-.*$@'=>4795, '@^Kevin http\://.*$@'=>4796, -'@^naoFavicon4IE.*$@'=>4797, -'@^CydralSpider/.*$@'=>4798, -'@^VCI WebViewer.*$@'=>4799, -'@^RealDownload/.*$@'=>4800, -'@^W3C\-mobileOK/.*$@'=>4801, -'@^Apple\-PubSub/.*$@'=>4802, -'@^ActiveRefresh.*$@'=>4803, -'@^Netprospector.*$@'=>4804, -'@^WebDownloader.*$@'=>4805, -'@^WebCrawler_1\..*$@'=>4806, -'@^AdsBot\-Google.*$@'=>4807, -'@^NetID\.com Bot.*$@'=>4808, -'@^HiddenMarket\-.*$@'=>4809, -'@^ALeadSoftbot/.*$@'=>4810, -'@^StackRambler/.*$@'=>4811, -'@^BigCliqueBOT/.*$@'=>4812, -'@^YadowsCrawler.*$@'=>4813, -'@^hitcrawler_0\..*$@'=>4814, -'@^Jayde Crawler.*$@'=>4815, -'@^Y\!J\-BRP/YFSBJ.*$@'=>4816, -'@^favorstarbot/.*$@'=>4817, -'@^.*avantbrowser.*$@'=>4818, -'@^.*Konqueror/3\..*$@'=>4819, +'@^YadowsCrawler.*$@'=>4797, +'@^FairAd Client.*$@'=>4798, +'@^W3C\-mobileOK/.*$@'=>4799, +'@^favorstarbot/.*$@'=>4800, +'@^CydralSpider/.*$@'=>4801, +'@^Transmission/.*$@'=>4802, +'@^WebCrawler_1\..*$@'=>4803, +'@^Y\!J\-BRP/YFSBJ.*$@'=>4804, +'@^AdsBot\-Google.*$@'=>4805, +'@^naoFavicon4IE.*$@'=>4806, +'@^NetID\.com Bot.*$@'=>4807, +'@^hitcrawler_0\..*$@'=>4808, +'@^Kenjin Spider.*$@'=>4809, +'@^RealDownload/.*$@'=>4810, +'@^Netprospector.*$@'=>4811, +'@^VCI WebViewer.*$@'=>4812, +'@^Jayde Crawler.*$@'=>4813, +'@^StackRambler/.*$@'=>4814, +'@^BigCliqueBOT/.*$@'=>4815, +'@^ALeadSoftbot/.*$@'=>4816, +'@^Apple\-PubSub/.*$@'=>4817, +'@^MOT\-V3/.* MIB/.*$@'=>4818, +'@^NetNewsWire.*/.*$@'=>4819, '@^Cogentbot/1\...*$@'=>4820, -'@^Feedshow/.* \(.*\)$@'=>4821, -'@^.*NetVisualize.*$@'=>4822, -'@^MOT\-L(\d)/.* MIB/.*$@'=>'a:2:{s:2:"@7";i:4823;s:2:"@6";i:4824;}', -'@^.*NetNewsWire/.*$@'=>4825, -'@^MOT\-V3/.* MIB/.*$@'=>4826, -'@^NetNewsWire.*/.*$@'=>4827, +'@^MOT\-L(\d)/.* MIB/.*$@'=>'a:2:{s:2:"@6";i:4821;s:2:"@7";i:4823;}', +'@^.*NetNewsWire/.*$@'=>4822, +'@^.*NetVisualize.*$@'=>4824, +'@^.*Konqueror/3\..*$@'=>4825, +'@^Feedshow/.* \(.*\)$@'=>4826, +'@^.*avantbrowser.*$@'=>4827, '@^MOT\-V.*/.* MIB/.*$@'=>4828, -'@^GreatNews/1\.0$@'=>4834, -'@^EMAILsearcher$@'=>4837, +'@^GreatNews/1\.0$@'=>4830, +'@^EMAILsearcher$@'=>4834, +'@^Twingly Recon$@'=>4838, +'@^www\.zatka\.com$@'=>4840, +'@^exactseek\.com$@'=>4849, +'@^panscient\.com$@'=>4850, '@^BlockNote\.Net$@'=>4851, -'@^panscient\.com$@'=>4858, -'@^exactseek\.com$@'=>4869, -'@^P3P Validator$@'=>4875, -'@^Yahoo Mindset$@'=>4878, -'@^Twingly Recon$@'=>4881, -'@^www\.zatka\.com$@'=>4883, -'@^TheInformant.*$@'=>4888, -'@^Exabot\-Test/.*$@'=>4889, -'@^NSPlayer/1(\d)\..*$@'=>'a:2:{s:2:"@1";i:4890;s:2:"@0";i:4922;}', -'@^GetRightPro/.*$@'=>4891, -'@^FeedGhost/1\..*$@'=>4892, -'@^Net Vampire/.*$@'=>4893, -'@^Covario\-IDS/.*$@'=>4894, -'@^MovableType/.*$@'=>4895, -'@^CrawlConvera.*$@'=>4896, -'@^LinkChecker/.*$@'=>4897, -'@^ProWebWalker.*$@'=>4898, -'@^Y\!J\-VSC/ViSe.*$@'=>4899, -'@^metatagsdir/.*$@'=>4900, -'@^uTorrentMac/.*$@'=>4901, -'@^ExtractorPro.*$@'=>4902, -'@^GameSpyHTTP/.*$@'=>4903, -'@^AC\-BaiduBot/.*$@'=>4904, -'@^MonkeyCrawl/.*$@'=>4905, -'@^WWW_Browser/.*$@'=>4906, -'@^ShopWiki/1\.0.*$@'=>4907, -'@^W3CLineMode/.*$@'=>4908, -'@^IrssiUrlLog/.*$@'=>4909, -'@^LinkSweeper/.*$@'=>4910, -'@^JCheckLinks/.*$@'=>4911, -'@^Theme Spider.*$@'=>4912, -'@^TerrawizBot/.*$@'=>4913, -'@^LocalcomBot/.*$@'=>4914, -'@^SharpReader/.*$@'=>4915, -'@^CazoodleBot/.*$@'=>4916, -'@^i1searchbot/.*$@'=>4917, -'@^Anonymisiert.*$@'=>4918, -'@^flatlandbot/.*$@'=>4919, -'@^Y\!J\-BRO/YFSJ.*$@'=>4920, -'@^MSFrontPage/.*$@'=>4921, -'@^URLy Warning.*$@'=>4923, -'@^TurnitinBot/.*$@'=>4924, -'@^TutorGigBot/.*$@'=>4925, -'@^Y\!J\-BRQ/DLCK.*$@'=>4926, -'@^GoGuidesBot/.*$@'=>4927, -'@^GurujiBot/1\..*$@'=>4928, -'@^RedCell/.* \(.*\)$@'=>4929, -'@^.*TweakMASTER.*$@'=>4930, -'@^.*NetFront/(\d)\..*$@'=>'a:2:{s:2:"@3";i:4931;s:2:"@2";i:4932;}', -'@^Shim.Crawler.*$@'=>4933, -'@^.*Powermarks/.*$@'=>4934, -'@^.*UP\.Browser/.*$@'=>4935, -'@^Space.*Bison/.*$@'=>4936, -'@^.*Baiduspider.*$@'=>4937, -'@^.*MSIECrawler.*$@'=>4938, -'@^GreenBrowser$@'=>4941, -'@^Ace Explorer$@'=>4952, -'@^sogou spider$@'=>4954, -'@^webcrawl\.net$@'=>4962, -'@^Seram Server$@'=>4964, -'@^http generic$@'=>4979, -'@^Atomic_Email$@'=>4985, -'@^iexplore\.exe$@'=>4986, -'@^URL_Access/.*$@'=>4987, -'@^CheckLinks/.*$@'=>4988, -'@^Exalead NG/.*$@'=>4989, -'@^UbiCrawler/.*$@'=>4990, -'@^NetMechanic.*$@'=>4991, -'@^Twitterbot/.*$@'=>4992, -'@^Gulper Web .*$@'=>4993, -'@^MPlayer 0\.9.*$@'=>4994, -'@^ProxyTester.*$@'=>4995, -'@^URL Control.*$@'=>4996, -'@^BitTorrent/.*$@'=>4997, -'@^BitTornado/.*$@'=>4998, -'@^WebGatherer.*$@'=>4999, -'@^Omnipelagos.*$@'=>5000, -'@^IconSurf/2\..*$@'=>5001, -'@^Webster Pro.*$@'=>5002, -'@^ia_archiver.*$@'=>5003, -'@^WebSnatcher.*$@'=>5004, -'@^Anonymizer/.*$@'=>5005, -'@^Anonymizied.*$@'=>5006, -'@^GroschoBot/.*$@'=>5007, -'@^URI\:\:Fetch/.*$@'=>5008, -'@^FyberSpider.*$@'=>5009, -'@^libtorrent/.*$@'=>5010, -'@^WebStripper.*$@'=>5011, -'@^Mnogosearch.*$@'=>5012, -'@^SiteParser/.*$@'=>5013, -'@^WebEnhancer.*$@'=>5014, -'@^msnbot/2\.0b.*$@'=>5015, -'@^gsa\-crawler.*$@'=>5016, -'@^Hatena RSS/.*$@'=>5017, -'@^Yahoo Pipes.*$@'=>5018, -'@^MSMOBOT/1\.1.*$@'=>5019, -'@^Yahoo\-Blogs.*$@'=>5020, -'@^Nudelsalat/.*$@'=>5021, -'@^DeepIndexer.*$@'=>5022, -'@^ContactBot/.*$@'=>5023, -'@^EmailSiphon.*$@'=>5024, -'@^HTMLParser/.*$@'=>5025, -'@^NextopiaBOT.*$@'=>5026, -'@^Sleipnir/2\..*$@'=>5027, -'@^DISCo Pump .*$@'=>5028, -'@^Feed\:\:Find/.*$@'=>5029, -'@^RLinkCheker.*$@'=>5030, -'@^W3C\-WebCon/.*$@'=>5031, -'@^NSPlayer/(\d)\..*$@'=>'a:4:{s:2:"@4";i:5032;s:2:"@7";i:5034;s:2:"@8";i:5040;s:2:"@9";i:5048;}', -'@^intraVnews/.*$@'=>5033, -'@^NetRecorder.*$@'=>5035, -'@^SiteSnagger.*$@'=>5036, -'@^WinampMPEG/.*$@'=>5037, -'@^Netvibes \(.*\)$@'=>5038, -'@^SiteSucker/.*$@'=>5039, -'@^LMQueueBot/.*$@'=>5041, -'@^Net_Vampire.*$@'=>5042, +'@^P3P Validator$@'=>4884, +'@^Yahoo Mindset$@'=>4887, +'@^ShopWiki/1\.0.*$@'=>4888, +'@^i1searchbot/.*$@'=>4889, +'@^LocalcomBot/.*$@'=>4890, +'@^uTorrentMac/.*$@'=>4891, +'@^Theme Spider.*$@'=>4892, +'@^GurujiBot/1\..*$@'=>4893, +'@^ProWebWalker.*$@'=>4894, +'@^Anonymisiert.*$@'=>4895, +'@^GoGuidesBot/.*$@'=>4896, +'@^CazoodleBot/.*$@'=>4897, +'@^TheInformant.*$@'=>4898, +'@^IrssiUrlLog/.*$@'=>4899, +'@^JCheckLinks/.*$@'=>4900, +'@^Net Vampire/.*$@'=>4901, +'@^TurnitinBot/.*$@'=>4902, +'@^FeedGhost/1\..*$@'=>4903, +'@^Covario\-IDS/.*$@'=>4904, +'@^LinkChecker/.*$@'=>4905, +'@^TerrawizBot/.*$@'=>4906, +'@^WWW_Browser/.*$@'=>4907, +'@^LinkSweeper/.*$@'=>4908, +'@^GetRightPro/.*$@'=>4909, +'@^metatagsdir/.*$@'=>4910, +'@^TutorGigBot/.*$@'=>4911, +'@^GameSpyHTTP/.*$@'=>4912, +'@^SharpReader/.*$@'=>4913, +'@^ExtractorPro.*$@'=>4914, +'@^flatlandbot/.*$@'=>4915, +'@^MovableType/.*$@'=>4916, +'@^AC\-BaiduBot/.*$@'=>4917, +'@^Y\!J\-VSC/ViSe.*$@'=>4918, +'@^Y\!J\-BRQ/DLCK.*$@'=>4919, +'@^URLy Warning.*$@'=>4920, +'@^Y\!J\-BRO/YFSJ.*$@'=>4921, +'@^NSPlayer/1(\d)\..*$@'=>'a:2:{s:2:"@1";i:4922;s:2:"@0";i:4923;}', +'@^W3CLineMode/.*$@'=>4924, +'@^CrawlConvera.*$@'=>4925, +'@^Exabot\-Test/.*$@'=>4926, +'@^MonkeyCrawl/.*$@'=>4927, +'@^MSFrontPage/.*$@'=>4928, +'@^Space.*Bison/.*$@'=>4929, +'@^RedCell/.* \(.*\)$@'=>4930, +'@^.*NetFront/(\d)\..*$@'=>'a:2:{s:2:"@3";i:4931;s:2:"@2";i:4933;}', +'@^.*MSIECrawler.*$@'=>4932, +'@^.*TweakMASTER.*$@'=>4934, +'@^.*Baiduspider.*$@'=>4935, +'@^.*Powermarks/.*$@'=>4936, +'@^Shim.Crawler.*$@'=>4937, +'@^.*UP\.Browser/.*$@'=>4938, +'@^sogou spider$@'=>4943, +'@^Atomic_Email$@'=>4950, +'@^Seram Server$@'=>4959, +'@^iexplore\.exe$@'=>4967, +'@^http generic$@'=>4970, +'@^Ace Explorer$@'=>4979, +'@^GreenBrowser$@'=>4983, +'@^webcrawl\.net$@'=>4984, +'@^FeedBurner/.*$@'=>4987, +'@^ProxyTester.*$@'=>4988, +'@^NSPlayer/(\d)\..*$@'=>'a:4:{s:2:"@4";i:4989;s:2:"@9";i:4990;s:2:"@8";i:4991;s:2:"@7";i:4992;}', +'@^RLinkCheker.*$@'=>4993, +'@^Anonymizied.*$@'=>4994, +'@^Anonymizer/.*$@'=>4995, +'@^WinampMPEG/.*$@'=>4996, +'@^W3C\-WebCon/.*$@'=>4997, +'@^Mnogosearch.*$@'=>4998, +'@^ContactBot/.*$@'=>4999, +'@^MPlayer 0\.9.*$@'=>5000, +'@^EmailSiphon.*$@'=>5001, +'@^NetRecorder.*$@'=>5002, +'@^Exalead NG/.*$@'=>5003, +'@^Netvibes \(.*\)$@'=>5004, +'@^WebEnhancer.*$@'=>5005, +'@^Omnipelagos.*$@'=>5006, +'@^CheckLinks/.*$@'=>5007, +'@^URL Control.*$@'=>5008, +'@^YahooSeeker.*$@'=>5009, +'@^ia_archiver.*$@'=>5010, +'@^NextopiaBOT.*$@'=>5011, +'@^libtorrent/.*$@'=>5012, +'@^Yahoo\-Blogs.*$@'=>5013, +'@^DISCo Pump .*$@'=>5014, +'@^WebGatherer.*$@'=>5015, +'@^Nudelsalat/.*$@'=>5016, +'@^Twitterbot/.*$@'=>5017, +'@^UbiCrawler/.*$@'=>5018, +'@^HTMLParser/.*$@'=>5019, +'@^URI\:\:Fetch/.*$@'=>5020, +'@^bitlybot/2\..*$@'=>5021, +'@^BitTornado/.*$@'=>5022, +'@^GroschoBot/.*$@'=>5023, +'@^Hatena RSS/.*$@'=>5024, +'@^BitTorrent/.*$@'=>5025, +'@^Feed\:\:Find/.*$@'=>5026, +'@^SiteSucker/.*$@'=>5027, +'@^SiteSnagger.*$@'=>5028, +'@^SiteParser/.*$@'=>5029, +'@^FyberSpider.*$@'=>5030, +'@^gsa\-crawler.*$@'=>5031, +'@^DeepIndexer.*$@'=>5032, +'@^IconSurf/2\..*$@'=>5033, +'@^MSMOBOT/1\.1.*$@'=>5034, +'@^Yahoo Pipes.*$@'=>5035, +'@^Gulper Web .*$@'=>5036, +'@^Net_Vampire.*$@'=>5037, +'@^URL_Access/.*$@'=>5038, +'@^LMQueueBot/.*$@'=>5039, +'@^Y\!J\-BRG/GSC.*$@'=>5040, +'@^NetMechanic.*$@'=>5041, +'@^intraVnews/.*$@'=>5042, '@^CyberPatrol.*$@'=>5043, -'@^YahooSeeker.*$@'=>5044, -'@^FeedBurner/.*$@'=>5045, -'@^bitlybot/2\..*$@'=>5046, -'@^Y\!J\-BRG/GSC.*$@'=>5047, -'@^.*BecomeBot/.*$@'=>5049, -'@^User.*Agent\:.*$@'=>5050, -'@^.*AgentName/.*$@'=>5051, -'@^.*WebGrabber.*$@'=>5052, -'@^.*FDSE robot.*$@'=>5053, -'@^.*SqwidgeBot.*$@'=>5054, -'@^.*BlackBerry.*$@'=>5055, +'@^Sleipnir/2\..*$@'=>5044, +'@^msnbot/2\.0b.*$@'=>5045, +'@^WebSnatcher.*$@'=>5046, +'@^Webster Pro.*$@'=>5047, +'@^WebStripper.*$@'=>5048, +'@^.*BlackBerry.*$@'=>5049, +'@^.*BecomeBot/.*$@'=>5050, +'@^.*WebGrabber.*$@'=>5051, +'@^.*SqwidgeBot.*$@'=>5052, +'@^User.*Agent\:.*$@'=>5053, +'@^.*FDSE robot.*$@'=>5054, +'@^.*AgentName/.*$@'=>5055, '@^IP.*Works\!.*/.*$@'=>5056, -'@^Lycos\-Proxy$@'=>5058, -'@^Marvin v0\.3$@'=>5062, -'@^Surf Knight$@'=>5065, -'@^Cynthia 1\.0$@'=>5066, -'@^Mail\.Ru/1\.0$@'=>5072, -'@^FOTOCHECKER$@'=>5078, -'@^llssbot/1\.0$@'=>5081, -'@^SurfControl$@'=>5082, -'@^HttpSession$@'=>5097, -'@^SITECHECKER$@'=>5104, -'@^Zao\-Crawler$@'=>5110, -'@^ICE_GetFile$@'=>5130, -'@^SlimBrowser$@'=>5141, -'@^Mozdex/0\.7.*$@'=>5145, -'@^SlySearch/.*$@'=>5146, -'@^webbandit/.*$@'=>5147, -'@^BitBeamer/.*$@'=>5148, -'@^KBeeBot/0\..*$@'=>5149, -'@^RepoMonkey.*$@'=>5150, -'@^FANGCrawl/.*$@'=>5151, -'@^Blaiz\-Bee/.*$@'=>5152, -'@^SiteWinder.*$@'=>5153, -'@^Emacs\-w3m/.*$@'=>5154, -'@^SuperHTTP/.*$@'=>5155, +'@^llssbot/1\.0$@'=>5075, +'@^Surf Knight$@'=>5077, +'@^FOTOCHECKER$@'=>5083, +'@^Mail\.Ru/1\.0$@'=>5101, +'@^Marvin v0\.3$@'=>5104, +'@^Cynthia 1\.0$@'=>5109, +'@^Zao\-Crawler$@'=>5111, +'@^SlimBrowser$@'=>5113, +'@^SITECHECKER$@'=>5114, +'@^SurfControl$@'=>5117, +'@^Lycos\-Proxy$@'=>5129, +'@^ICE_GetFile$@'=>5132, +'@^HttpSession$@'=>5138, +'@^FANGCrawl/.*$@'=>5145, +'@^OutfoxBot/.*$@'=>5146, +'@^gnome\-vfs/.*$@'=>5147, +'@^WebPatrol/.*$@'=>5148, +'@^LapozzBot/.*$@'=>5149, +'@^Emacs\-w3m/.*$@'=>5150, +'@^RepoMonkey.*$@'=>5151, +'@^SmallProxy.*$@'=>5152, +'@^ColdFusion.*$@'=>5153, +'@^ScoutAbout.*$@'=>5154, +'@^shelob v1\..*$@'=>5155, '@^PicaLoader.*$@'=>5156, -'@^Web Magnet.*$@'=>5157, -'@^NewsGator/.*$@'=>5158, -'@^WebTrends/.*$@'=>5159, -'@^Tarantula/.*$@'=>5160, -'@^webcollage.*$@'=>5161, -'@^MPlayer 1\..*$@'=>5162, -'@^Sqeobot/0\..*$@'=>5163, -'@^Search\-10/.*$@'=>5164, -'@^IIITBOT/1\..*$@'=>5165, -'@^LapozzBot/.*$@'=>5166, -'@^Amfibibot/.*$@'=>5167, -'@^Popdexter/.*$@'=>5168, -'@^RealPlayer.*$@'=>5169, -'@^DoCoMo/(\d)\.0.*$@'=>'a:2:{s:2:"@1";i:5170;s:2:"@2";i:5177;}', -'@^Unicorn/1\..*$@'=>5171, -'@^WebPatrol/.*$@'=>5172, -'@^RedCarpet/.*$@'=>5173, -'@^NetReality.*$@'=>5174, -'@^SeznamBot/.*$@'=>5175, -'@^shelob v1\..*$@'=>5176, -'@^SurveyBot/.*$@'=>5178, -'@^Sunrise/0\..*$@'=>5179, -'@^WebWhacker.*$@'=>5180, -'@^ScoutAbout.*$@'=>5181, -'@^Camcrawler.*$@'=>5182, -'@^Anonymous/.*$@'=>5183, -'@^DataCha0s/.*$@'=>5184, -'@^CFSCHEDULE.*$@'=>5185, -'@^Mister PIX.*$@'=>5186, -'@^pixfinder/.*$@'=>5187, -'@^Gregarius/.*$@'=>5188, -'@^msnbot/1\.(\d).*$@'=>'a:2:{s:2:"@0";i:5189;s:2:"@1";i:5192;}', -'@^YahooYSMcm.*$@'=>5190, -'@^Ad Muncher.*$@'=>5191, -'@^RssBandit/.*$@'=>5193, -'@^OutfoxBot/.*$@'=>5194, -'@^NG\-Search/.*$@'=>5195, -'@^gnome\-vfs/.*$@'=>5196, -'@^RssBar/1\.2.*$@'=>5197, -'@^SilentSurf.*$@'=>5198, -'@^SmallProxy.*$@'=>5199, -'@^SimplePie/.*$@'=>5200, -'@^ColdFusion.*$@'=>5201, -'@^Akregator/.*$@'=>5202, -'@^Robozilla/.*$@'=>5203, -'@^CFNetwork/.*$@'=>5204, -'@^HTTPFetch/.*$@'=>5205, -'@^LinkAlarm/.*$@'=>5206, -'@^LinkWalker.*$@'=>5207, -'@^FindLinks/.*$@'=>5208, -'@^WordPress/.*$@'=>5209, -'@^httpclient.*$@'=>5210, -'@^BasicHTTP/.*$@'=>5211, -'@^INGRID/.\.0.*$@'=>5212, -'@^Eule.Robot.*$@'=>5213, -'@^.*Check&Get.*$@'=>5214, -'@^.*EasyRider.*$@'=>5215, -'@^.*CFNetwork.*$@'=>5216, -'@^.*www4mail/.*$@'=>5217, +'@^SeznamBot/.*$@'=>5157, +'@^DoCoMo/(\d)\.0.*$@'=>'a:2:{s:2:"@2";i:5158;s:2:"@1";i:5159;}', +'@^CFSCHEDULE.*$@'=>5160, +'@^Sunrise/0\..*$@'=>5161, +'@^NetReality.*$@'=>5162, +'@^Web Magnet.*$@'=>5163, +'@^SlySearch/.*$@'=>5164, +'@^HTTPFetch/.*$@'=>5165, +'@^httpclient.*$@'=>5166, +'@^BasicHTTP/.*$@'=>5167, +'@^Ad Muncher.*$@'=>5168, +'@^msnbot/1\.(\d).*$@'=>'a:2:{s:2:"@0";i:5169;s:2:"@1";i:5173;}', +'@^WebWhacker.*$@'=>5170, +'@^BitBeamer/.*$@'=>5171, +'@^WebTrends/.*$@'=>5172, +'@^webbandit/.*$@'=>5174, +'@^SurveyBot/.*$@'=>5175, +'@^IIITBOT/1\..*$@'=>5176, +'@^SuperHTTP/.*$@'=>5177, +'@^SiteWinder.*$@'=>5178, +'@^webcollage.*$@'=>5179, +'@^CFNetwork/.*$@'=>5180, +'@^DataCha0s/.*$@'=>5181, +'@^SilentSurf.*$@'=>5182, +'@^pixfinder/.*$@'=>5183, +'@^LinkAlarm/.*$@'=>5184, +'@^NG\-Search/.*$@'=>5185, +'@^Tarantula/.*$@'=>5186, +'@^SimplePie/.*$@'=>5187, +'@^FindLinks/.*$@'=>5188, +'@^RssBar/1\.2.*$@'=>5189, +'@^RssBandit/.*$@'=>5190, +'@^Search\-10/.*$@'=>5191, +'@^Mozdex/0\.7.*$@'=>5192, +'@^MPlayer 1\..*$@'=>5193, +'@^Gregarius/.*$@'=>5194, +'@^NewsGator/.*$@'=>5195, +'@^Amfibibot/.*$@'=>5196, +'@^Sqeobot/0\..*$@'=>5197, +'@^LinkWalker.*$@'=>5198, +'@^Robozilla/.*$@'=>5199, +'@^Akregator/.*$@'=>5200, +'@^Blaiz\-Bee/.*$@'=>5201, +'@^Popdexter/.*$@'=>5202, +'@^Unicorn/1\..*$@'=>5203, +'@^KBeeBot/0\..*$@'=>5204, +'@^Mister PIX.*$@'=>5205, +'@^RedCarpet/.*$@'=>5206, +'@^Anonymous/.*$@'=>5207, +'@^YahooYSMcm.*$@'=>5208, +'@^RealPlayer.*$@'=>5209, +'@^WordPress/.*$@'=>5210, +'@^Camcrawler.*$@'=>5211, +'@^.*EasyRider.*$@'=>5212, +'@^.*Check&Get.*$@'=>5213, +'@^INGRID/.\.0.*$@'=>5214, +'@^Eule.Robot.*$@'=>5215, +'@^.*www4mail/.*$@'=>5216, +'@^.*CFNetwork.*$@'=>5217, '@^.*WebMon .\..*$@'=>5218, -'@^My Browser$@'=>5224, -'@^AutoHotkey$@'=>5226, -'@^CE\-Preload$@'=>5227, -'@^NavissoBot$@'=>5233, -'@^KRetrieve/$@'=>5234, -'@^USER_AGENT$@'=>5241, -'@^Exabot/(\d)\.0$@'=>'a:2:{s:2:"@2";i:5242;s:2:"@3";i:5248;}', -'@^SiteSpider$@'=>5245, -'@^MFHttpScan$@'=>5247, -'@^Search Fst$@'=>5249, -'@^TouchStone$@'=>5256, -'@^DiamondBot$@'=>5260, -'@^lftp/3\.2\.1$@'=>5263, -'@^P3P Client$@'=>5264, -'@^NetSucker.*$@'=>5265, -'@^Tkensaku/.*$@'=>5266, -'@^EuripBot/.*$@'=>5267, -'@^YodaoBot/.*$@'=>5268, -'@^ZipppBot/.*$@'=>5269, -'@^JetBrains.*$@'=>5270, -'@^WebSauger.*$@'=>5271, -'@^EmailWolf.*$@'=>5272, -'@^Anonymous.*$@'=>5273, -'@^Drupal \(.*\)$@'=>5274, -'@^PageNest/.*$@'=>5275, -'@^NetPumper.*$@'=>5276, -'@^search\.ch.*$@'=>5277, -'@^httpunit/.*$@'=>5278, -'@^MaSagool/.*$@'=>5279, -'@^miniRank/.*$@'=>5280, -'@^Linknzbot.*$@'=>5281, -'@^Dillo/0\.(\d).*$@'=>'a:3:{s:2:"@8";i:5282;s:2:"@7";i:5283;s:2:"@6";i:5285;}', -'@^iSEEKbot/.*$@'=>5284, -'@^DNSGroup/.*$@'=>5286, -'@^BitComet/.*$@'=>5287, -'@^BilgiBot/.*$@'=>5288, -'@^LinkScan/.*$@'=>5289, -'@^InetURL\:/.*$@'=>5290, -'@^SuperBot/.*$@'=>5291, -'@^antibot\-V.*$@'=>5292, -'@^WorQmada/.*$@'=>5293, -'@^VengaBot/.*$@'=>5294, -'@^URL2File/.*$@'=>5295, -'@^amaya/1(\d)\..*$@'=>'a:2:{s:2:"@1";i:5296;s:2:"@0";i:5307;}', -'@^uTorrent/.*$@'=>5297, -'@^rtorrent/.*$@'=>5298, -'@^sherlock/.*$@'=>5299, -'@^GetRight/.*$@'=>5300, -'@^WebCopier.*$@'=>5301, -'@^Twitturly.*$@'=>5302, -'@^Pajaczek/.*$@'=>5303, -'@^WebReaper.*$@'=>5304, -'@^webfetch/.*$@'=>5305, -'@^Webcheck .*$@'=>5306, -'@^KTorrent/.*$@'=>5308, -'@^W3CRobot/.*$@'=>5309, +'@^DiamondBot$@'=>5223, +'@^SiteSpider$@'=>5225, +'@^USER_AGENT$@'=>5227, +'@^TouchStone$@'=>5232, +'@^AutoHotkey$@'=>5236, +'@^CE\-Preload$@'=>5239, +'@^P3P Client$@'=>5241, +'@^KRetrieve/$@'=>5243, +'@^lftp/3\.2\.1$@'=>5245, +'@^Exabot/(\d)\.0$@'=>'a:2:{s:2:"@3";i:5254;s:2:"@2";i:5260;}', +'@^MFHttpScan$@'=>5256, +'@^Search Fst$@'=>5257, +'@^NavissoBot$@'=>5259, +'@^My Browser$@'=>5263, +'@^antibot\-V.*$@'=>5265, +'@^search\.ch.*$@'=>5266, +'@^BitComet/.*$@'=>5267, +'@^miniRank/.*$@'=>5268, +'@^Linknzbot.*$@'=>5269, +'@^iSEEKbot/.*$@'=>5270, +'@^MaSagool/.*$@'=>5271, +'@^Tkensaku/.*$@'=>5272, +'@^ZipppBot/.*$@'=>5273, +'@^KTorrent/.*$@'=>5274, +'@^YodaoBot/.*$@'=>5275, +'@^Webcheck .*$@'=>5276, +'@^VengaBot/.*$@'=>5277, +'@^Twitturly.*$@'=>5278, +'@^SuperBot/.*$@'=>5279, +'@^EmailWolf.*$@'=>5280, +'@^WebSauger.*$@'=>5281, +'@^Drupal \(.*\)$@'=>5282, +'@^EuripBot/.*$@'=>5283, +'@^PageNest/.*$@'=>5284, +'@^HooWWWer/.*$@'=>5285, +'@^JetBrains.*$@'=>5286, +'@^NetPumper.*$@'=>5287, +'@^Anonymous.*$@'=>5288, +'@^W3CRobot/.*$@'=>5289, +'@^NewsFire/.*$@'=>5290, +'@^rtorrent/.*$@'=>5291, +'@^WorQmada/.*$@'=>5292, +'@^LinkScan/.*$@'=>5293, +'@^Pajaczek/.*$@'=>5294, +'@^NetSucker.*$@'=>5295, +'@^BilgiBot/.*$@'=>5296, +'@^RSS Menu/.*$@'=>5297, +'@^httpunit/.*$@'=>5298, +'@^uTorrent/.*$@'=>5299, +'@^sherlock/.*$@'=>5300, +'@^Dillo/0\.(\d).*$@'=>'a:3:{s:2:"@8";i:5301;s:2:"@7";i:5302;s:2:"@6";i:5303;}', +'@^amaya/1(\d)\..*$@'=>'a:2:{s:2:"@1";i:5304;s:2:"@0";i:5305;}', +'@^WebReaper.*$@'=>5306, +'@^InetURL\:/.*$@'=>5307, +'@^URL2File/.*$@'=>5308, +'@^WebCopier.*$@'=>5309, '@^GetSmart/.*$@'=>5310, -'@^HooWWWer/.*$@'=>5311, -'@^RSS Menu/.*$@'=>5312, -'@^NewsFire/.*$@'=>5313, -'@^.*LinkLint.*$@'=>5314, -'@^.*UP\.Link/.*$@'=>5315, -'@^.*heritrix.*$@'=>5316, -'@^.*research.*$@'=>5317, -'@^Net Probe$@'=>5324, -'@^WebRipper$@'=>5328, -'@^Dillo/2\.0$@'=>5331, -'@^AutoMate5$@'=>5335, -'@^TMCrawler$@'=>5343, -'@^Nutscrape$@'=>5352, -'@^cisco\-IOS$@'=>5354, -'@^Deepindex$@'=>5356, -'@^ASPSeek/.*$@'=>5361, -'@^amaya/(\d)\..*$@'=>'a:3:{s:2:"@8";i:5362;s:2:"@7";i:5373;s:2:"@9";i:5374;}', -'@^Lynx/2\.(\d).*$@'=>'a:6:{s:2:"@6";i:5363;s:2:"@5";i:5364;s:2:"@7";i:5365;s:2:"@8";i:5366;s:2:"@4";i:5370;s:2:"@3";i:5375;}', -'@^IlseBot/.*$@'=>5367, -'@^Snapbot/.*$@'=>5368, -'@^eventax/.*$@'=>5369, -'@^Sleipnir.*$@'=>5371, -'@^MOT\-T721.*$@'=>5372, -'@^SpankBot.*$@'=>5376, -'@^Scrubby/.*$@'=>5377, -'@^MarsEdit.*$@'=>5378, -'@^MSProxy/.*$@'=>5379, -'@^MediaGet.*$@'=>5380, -'@^woriobot.*$@'=>5381, -'@^sna\-0\.0\..*$@'=>5382, -'@^Bookdog/.*$@'=>5383, -'@^Checkbot.*$@'=>5384, -'@^WebCorp/.*$@'=>5385, -'@^updated/.*$@'=>5386, -'@^WISEbot/.*$@'=>5387, -'@^WebAuto/.*$@'=>5388, -'@^URLBase/.*$@'=>5389, -'@^Steeler/.*$@'=>5390, -'@^iGetter/.*$@'=>5391, -'@^Privoxy/.*$@'=>5392, -'@^Harvest/.*$@'=>5393, -'@^Vegas95/.*$@'=>5394, -'@^Chilkat/.*$@'=>5395, -'@^LOOQ/0\.1.*$@'=>5396, -'@^WinkBot/.*$@'=>5397, -'@^httperf/.*$@'=>5398, -'@^Teleport.*$@'=>5399, -'@^Weblide/.*$@'=>5400, -'@^WebMiner.*$@'=>5401, -'@^IWAgent/.*$@'=>5402, -'@^Go\!Zilla.*$@'=>5403, -'@^zibber\-v.*$@'=>5404, -'@^SygolBot.*$@'=>5405, -'@^PageDown.*$@'=>5406, -'@^shareaza.*$@'=>5407, -'@^OCN\-SOC/.*$@'=>5408, -'@^sproose/.*$@'=>5409, -'@^sEasyDL/.*$@'=>5410, -'@^Gozilla/.*$@'=>5411, -'@^Seekbot/.*$@'=>5412, -'@^Prozilla.*$@'=>5413, -'@^OSSProxy.*$@'=>5414, -'@^Hotzonu/.*$@'=>5415, -'@^INetURL/.*$@'=>5416, -'@^SiteBar/.*$@'=>5417, -'@^Faxobot/.*$@'=>5418, -'@^Filangy/.*$@'=>5419, -'@^Gaisbot/.*$@'=>5420, -'@^Pageload.*$@'=>5421, -'@^LeechGet.*$@'=>5422, -'@^geniebot.*$@'=>5423, -'@^Szukacz/.*$@'=>5424, -'@^.*Pingdom.*$@'=>5425, -'@^.*Linkman.*$@'=>5426, -'@^.*ickHTTP.*$@'=>5427, -'@^.*HTTrack.*$@'=>5428, -'@^polybot..*$@'=>5429, +'@^GetRight/.*$@'=>5311, +'@^webfetch/.*$@'=>5312, +'@^DNSGroup/.*$@'=>5313, +'@^.*research.*$@'=>5314, +'@^.*heritrix.*$@'=>5315, +'@^.*LinkLint.*$@'=>5316, +'@^.*UP\.Link/.*$@'=>5317, +'@^cisco\-IOS$@'=>5318, +'@^Net Probe$@'=>5319, +'@^Nutscrape$@'=>5320, +'@^WebRipper$@'=>5323, +'@^Deepindex$@'=>5325, +'@^TMCrawler$@'=>5331, +'@^AutoMate5$@'=>5339, +'@^Dillo/2\.0$@'=>5343, +'@^SpankBot.*$@'=>5361, +'@^IlseBot/.*$@'=>5362, +'@^ASPSeek/.*$@'=>5363, +'@^Snapbot/.*$@'=>5364, +'@^eventax/.*$@'=>5365, +'@^SygolBot.*$@'=>5366, +'@^Faxobot/.*$@'=>5367, +'@^LeechGet.*$@'=>5368, +'@^SiteBar/.*$@'=>5369, +'@^WinkBot/.*$@'=>5370, +'@^WebAuto/.*$@'=>5371, +'@^Go\!Zilla.*$@'=>5372, +'@^Gozilla/.*$@'=>5373, +'@^Pageload.*$@'=>5374, +'@^OSSProxy.*$@'=>5375, +'@^OCN\-SOC/.*$@'=>5376, +'@^PageDown.*$@'=>5377, +'@^Prozilla.*$@'=>5378, +'@^sEasyDL/.*$@'=>5379, +'@^shareaza.*$@'=>5380, +'@^Vegas95/.*$@'=>5381, +'@^Filangy/.*$@'=>5382, +'@^INetURL/.*$@'=>5383, +'@^LOOQ/0\.1.*$@'=>5384, +'@^Chilkat/.*$@'=>5385, +'@^httperf/.*$@'=>5386, +'@^Harvest/.*$@'=>5387, +'@^sna\-0\.0\..*$@'=>5388, +'@^WebMiner.*$@'=>5389, +'@^woriobot.*$@'=>5390, +'@^Steeler/.*$@'=>5391, +'@^Weblide/.*$@'=>5392, +'@^Privoxy/.*$@'=>5393, +'@^Teleport.*$@'=>5394, +'@^iGetter/.*$@'=>5395, +'@^MSProxy/.*$@'=>5396, +'@^Bookdog/.*$@'=>5397, +'@^Checkbot.*$@'=>5398, +'@^MarsEdit.*$@'=>5399, +'@^IWAgent/.*$@'=>5400, +'@^URLBase/.*$@'=>5401, +'@^Seekbot/.*$@'=>5402, +'@^WebCorp/.*$@'=>5403, +'@^amaya/(\d)\..*$@'=>'a:3:{s:2:"@8";i:5404;s:2:"@9";i:5406;s:2:"@7";i:5419;}', +'@^Szukacz/.*$@'=>5405, +'@^Lynx/2\.(\d).*$@'=>'a:6:{s:2:"@3";i:5407;s:2:"@4";i:5409;s:2:"@5";i:5412;s:2:"@6";i:5413;s:2:"@7";i:5414;s:2:"@8";i:5415;}', +'@^sproose/.*$@'=>5408, +'@^Scrubby/.*$@'=>5410, +'@^WISEbot/.*$@'=>5411, +'@^Hotzonu/.*$@'=>5416, +'@^geniebot.*$@'=>5417, +'@^Gaisbot/.*$@'=>5418, +'@^updated/.*$@'=>5420, +'@^MOT\-T721.*$@'=>5421, +'@^MediaGet.*$@'=>5422, +'@^Sleipnir.*$@'=>5423, +'@^zibber\-v.*$@'=>5424, +'@^.*ickHTTP.*$@'=>5425, +'@^.*Pingdom.*$@'=>5426, +'@^polybot..*$@'=>5427, +'@^.*Linkman.*$@'=>5428, +'@^.*HTTrack.*$@'=>5429, '@^.*Nokia.*/.*$@'=>5430, -'@^Particls$@'=>5431, -'@^FlashGet$@'=>5432, -'@^WinTools$@'=>5433, -'@^LeechFTP$@'=>5434, -'@^WebFetch$@'=>5437, -'@^HTTPGrab$@'=>5439, -'@^Lachesis$@'=>5440, +'@^Lachesis$@'=>5436, +'@^WebTrans$@'=>5439, '@^Moozilla$@'=>5442, -'@^URLCHECK$@'=>5446, -'@^VadixBot$@'=>5447, +'@^URLCHECK$@'=>5443, +'@^HTTPGrab$@'=>5444, +'@^LeechFTP$@'=>5446, +'@^WebFetch$@'=>5447, +'@^Particls$@'=>5453, '@^WhizBang$@'=>5454, -'@^WebTrans$@'=>5455, -'@^PhpDig/.*$@'=>5458, -'@^Gigabot.*$@'=>5459, -'@^Spinne/.*$@'=>5460, -'@^w3m/0\.(\d).*$@'=>'a:5:{s:2:"@1";i:5461;s:2:"@2";i:5463;s:2:"@3";i:5475;s:2:"@4";i:5477;s:2:"@5";i:5478;}', -'@^XSpider.*$@'=>5462, -'@^Y\!J\-BSC.*$@'=>5464, -'@^NetAnts.*$@'=>5465, -'@^Ocelli/.*$@'=>5466, -'@^3D\-FTP/.*$@'=>5467, -'@^Y\!J\-SRD.*$@'=>5468, -'@^PEERbot.*$@'=>5469, -'@^Y\!J\-NSC.*$@'=>5470, -'@^JPluck/.*$@'=>5471, -'@^Y\!J\-DSC.*$@'=>5472, -'@^Pompos/.*$@'=>5473, -'@^Linkbot.*$@'=>5474, -'@^Y\!J\-PSC.*$@'=>5476, -'@^CobWeb/.*$@'=>5479, -'@^PycURL/.*$@'=>5480, -'@^Scooter.*$@'=>5481, -'@^Azureus.*$@'=>5482, -'@^Holmes/.*$@'=>5483, -'@^NetSurf.*$@'=>5484, -'@^WinHttp.*$@'=>5485, -'@^Y\!J\-BRI.*$@'=>5486, -'@^Y\!J\-BRE.*$@'=>5487, -'@^n4p_bot.*$@'=>5488, -'@^EasyDL/.*$@'=>5489, -'@^Wotbox/.*$@'=>5490, -'@^Sqworm/.*$@'=>5491, -'@^SBL\-BOT.*$@'=>5492, -'@^Y\!OASIS.*$@'=>5493, -'@^SBIder/.*$@'=>5494, +'@^VadixBot$@'=>5455, +'@^FlashGet$@'=>5456, +'@^WinTools$@'=>5457, +'@^EasyDL/.*$@'=>5458, +'@^Azureus.*$@'=>5459, +'@^SBL\-BOT.*$@'=>5460, +'@^PEERbot.*$@'=>5461, +'@^3D\-FTP/.*$@'=>5462, +'@^PycURL/.*$@'=>5463, +'@^Y\!J\-BRI.*$@'=>5464, +'@^Pompos/.*$@'=>5465, +'@^Spinne/.*$@'=>5466, +'@^CobWeb/.*$@'=>5467, +'@^Y\!J\-BRE.*$@'=>5468, +'@^NetAnts.*$@'=>5469, +'@^WinHttp.*$@'=>5470, +'@^SBIder/.*$@'=>5471, +'@^Gigabot.*$@'=>5472, +'@^Scooter.*$@'=>5473, +'@^Holmes/.*$@'=>5474, +'@^JPluck/.*$@'=>5475, +'@^Wotbox/.*$@'=>5476, +'@^PhpDig/.*$@'=>5477, +'@^Y\!J\-BSC.*$@'=>5478, +'@^w3m/0\.(\d).*$@'=>'a:5:{s:2:"@1";i:5479;s:2:"@5";i:5485;s:2:"@4";i:5487;s:2:"@3";i:5489;s:2:"@2";i:5494;}', +'@^n4p_bot.*$@'=>5480, +'@^Linkbot.*$@'=>5481, +'@^Y\!OASIS.*$@'=>5482, +'@^XSpider.*$@'=>5483, +'@^Y\!J\-SRD.*$@'=>5484, +'@^NetSurf.*$@'=>5486, +'@^Y\!J\-PSC.*$@'=>5488, +'@^Y\!J\-NSC.*$@'=>5490, +'@^Ocelli/.*$@'=>5491, +'@^Y\!J\-DSC.*$@'=>5492, +'@^Sqworm/.*$@'=>5493, '@^Gaisbot.*$@'=>5495, '@^MOT\-T.*/.*$@'=>5496, -'@^.*Larbin.*$@'=>5497, -'@^MOT\-V.*/.*$@'=>5498, -'@^.*libwww.*$@'=>5499, -'@^HLoader$@'=>5503, -'@^BDFetch$@'=>5505, -'@^PMAFind$@'=>5507, -'@^SynoBot$@'=>5512, -'@^IECheck$@'=>5513, -'@^SyncMgr$@'=>5514, -'@^Myzilla$@'=>5517, -'@^nicebot$@'=>5519, -'@^FDM 1\.x$@'=>5520, -'@^3wGet/.*$@'=>5524, -'@^Foobot.*$@'=>5525, -'@^WebPix.*$@'=>5526, -'@^Reblog.*$@'=>5527, -'@^CTerm/.*$@'=>5528, -'@^pavuk/.*$@'=>5529, -'@^htdig/.*$@'=>5530, -'@^Python.*$@'=>5531, +'@^.*libwww.*$@'=>5497, +'@^.*Larbin.*$@'=>5498, +'@^MOT\-V.*/.*$@'=>5499, +'@^FDM 1\.x$@'=>5500, +'@^SyncMgr$@'=>5501, +'@^IECheck$@'=>5502, +'@^BDFetch$@'=>5509, +'@^Myzilla$@'=>5515, +'@^nicebot$@'=>5516, +'@^HLoader$@'=>5518, +'@^PMAFind$@'=>5519, +'@^SynoBot$@'=>5521, +'@^Reblog.*$@'=>5524, +'@^cosmos.*$@'=>5525, +'@^htdig/.*$@'=>5526, +'@^Deluge.*$@'=>5527, +'@^eCatch.*$@'=>5528, +'@^3wGet/.*$@'=>5529, +'@^Qweery.*$@'=>5530, +'@^CTerm/.*$@'=>5531, '@^Pockey.*$@'=>5532, -'@^Dumbot.*$@'=>5533, -'@^Beamer.*$@'=>5534, -'@^Deluge.*$@'=>5535, -'@^SMBot/.*$@'=>5536, -'@^MSRBOT.*$@'=>5537, -'@^moget/.*$@'=>5538, -'@^VMBot/.*$@'=>5539, -'@^Snoopy.*$@'=>5540, -'@^eCatch.*$@'=>5541, -'@^Qweery.*$@'=>5542, -'@^WeBoX/.*$@'=>5543, -'@^btbot/.*$@'=>5544, -'@^AIBOT/.*$@'=>5545, -'@^cosmos.*$@'=>5546, -'@^Abacho.*$@'=>5547, -'@^WebZIP.*$@'=>5548, +'@^Abacho.*$@'=>5533, +'@^WebPix.*$@'=>5534, +'@^Foobot.*$@'=>5535, +'@^btbot/.*$@'=>5536, +'@^AIBOT/.*$@'=>5537, +'@^Dumbot.*$@'=>5538, +'@^pavuk/.*$@'=>5539, +'@^Beamer.*$@'=>5540, +'@^MSRBOT.*$@'=>5541, +'@^moget/.*$@'=>5542, +'@^WebZIP.*$@'=>5543, +'@^WeBoX/.*$@'=>5544, +'@^SMBot/.*$@'=>5545, +'@^Python.*$@'=>5546, +'@^Snoopy.*$@'=>5547, +'@^VMBot/.*$@'=>5548, '@^.*Amiga.*$@'=>5549, -'@^.*squid.*$@'=>5550, -'@^.*Nutch.*$@'=>5551, +'@^.*Nutch.*$@'=>5550, +'@^.*squid.*$@'=>5551, '@^.*naver.*$@'=>5552, '@^MOT\-.*/.*$@'=>5553, -'@^UCmore$@'=>5560, -'@^FavOrg$@'=>5562, -'@^vobsub$@'=>5564, -'@^cz32ts$@'=>5568, -'@^NV32ts$@'=>5580, -'@^WebGet$@'=>5585, -'@^MQbot.*$@'=>5589, -'@^NPBot.*$@'=>5590, -'@^abot/.*$@'=>5591, -'@^BTSP/.*$@'=>5592, +'@^FavOrg$@'=>5569, +'@^NV32ts$@'=>5570, +'@^cz32ts$@'=>5571, +'@^WebGet$@'=>5581, +'@^UCmore$@'=>5582, +'@^vobsub$@'=>5586, +'@^nabot.*$@'=>5589, +'@^BTSP/.*$@'=>5590, +'@^Lycos.*$@'=>5591, +'@^hcat/.*$@'=>5592, '@^Lynx .*$@'=>5593, -'@^nabot.*$@'=>5594, +'@^Custo.*$@'=>5594, '@^WWWC/.*$@'=>5595, -'@^Custo.*$@'=>5596, -'@^Lycos.*$@'=>5597, -'@^hcat/.*$@'=>5598, -'@^.*Zeus.*$@'=>5599, -'@^.*grub.*$@'=>5600, -'@^.*java.*$@'=>5601, -'@^12345$@'=>5606, -'@^slurp$@'=>5613, -'@^RMA/.*$@'=>5616, -'@^FGet.*$@'=>5617, -'@^vlc/.*$@'=>5618, +'@^NPBot.*$@'=>5596, +'@^MQbot.*$@'=>5597, +'@^abot/.*$@'=>5598, +'@^.*java.*$@'=>5599, +'@^.*Zeus.*$@'=>5600, +'@^.*grub.*$@'=>5601, +'@^12345$@'=>5605, +'@^slurp$@'=>5611, +'@^FGet.*$@'=>5616, +'@^vlc/.*$@'=>5617, +'@^DLC/.*$@'=>5618, '@^VSE/.*$@'=>5619, -'@^DLC/.*$@'=>5620, +'@^sohu.*$@'=>5620, '@^Wget.*$@'=>5621, -'@^curl.*$@'=>5622, -'@^Zao/.*$@'=>5623, -'@^b2w/.*$@'=>5624, -'@^sohu.*$@'=>5625, -'@^CAST$@'=>5629, +'@^Zao/.*$@'=>5622, +'@^b2w/.*$@'=>5623, +'@^curl.*$@'=>5624, +'@^RMA/.*$@'=>5625, '@^oBot$@'=>5630, -'@^FDM.*$@'=>5635, -'@^DA .*$@'=>5636, +'@^CAST$@'=>5631, +'@^lwp.*$@'=>5635, +'@^NP/.*$@'=>5636, '@^ng/.*$@'=>5637, -'@^NP/.*$@'=>5638, -'@^PHP.*$@'=>5639, -'@^lwp.*$@'=>5640, +'@^PHP.*$@'=>5638, +'@^DA .*$@'=>5639, +'@^FDM.*$@'=>5640, '@^.*$@'=>5645 ); diff --git a/src/Php-Sql-Parser/php-sql-parser.php b/src/Php-Sql-Parser/php-sql-parser.php index fbf9a0ce..687e8a41 100644 --- a/src/Php-Sql-Parser/php-sql-parser.php +++ b/src/Php-Sql-Parser/php-sql-parser.php @@ -179,7 +179,7 @@ protected function endsWith($haystack, $needle) { class LexerSplitter { - private static $splitters = array("\r\n", "!=", ">=", "<=", "<>", "\\", "&&", ">", "<", "|", "=", "^", "(", ")", "\t", "\n", + private static array $splitters = array("\r\n", "!=", ">=", "<=", "<>", "\\", "&&", ">", "<", "|", "=", "^", "(", ")", "\t", "\n", "'", "\"", "`", ",", "@", " ", "+", "-", "*", "/", ";"); private $tokenSize; private $hashSet; @@ -265,7 +265,7 @@ private function balanceComments($tokens) { $result = array(); $i = 0; - $cnt = count($tokens); + $cnt = is_countable($tokens) ? count($tokens) : 0; $comment = false; while ($i < $cnt) { @@ -311,7 +311,7 @@ private function isBacktick($token) { private function balanceBackticks($tokens) { $i = 0; - $cnt = count($tokens); + $cnt = is_countable($tokens) ? count($tokens) : 0; while ($i < $cnt) { if (!isset($tokens[$i])) { @@ -335,7 +335,7 @@ private function balanceBackticks($tokens) { # to re-combine some tokens private function balanceCharacter($tokens, $idx, $char) { - $token_count = count($tokens); + $token_count = is_countable($tokens) ? count($tokens) : 0; $i = $idx + 1; while ($i < $token_count) { @@ -366,7 +366,7 @@ private function balanceCharacter($tokens, $idx, $char) { */ private function concatColReferences($tokens) { - $cnt = count($tokens); + $cnt = is_countable($tokens) ? count($tokens) : 0; $i = 0; while ($i < $cnt) { @@ -414,7 +414,7 @@ private function concatColReferences($tokens) { } private function concatEscapeSequences($tokens) { - $tokenCount = count($tokens); + $tokenCount = is_countable($tokens) ? count($tokens) : 0; $i = 0; while ($i < $tokenCount) { @@ -431,7 +431,7 @@ private function concatEscapeSequences($tokens) { } private function balanceParenthesis($tokens) { - $token_count = count($tokens); + $token_count = is_countable($tokens) ? count($tokens) : 0; $i = 0; while ($i < $token_count) { if ($tokens[$i] !== '(') { @@ -468,6 +468,8 @@ private function balanceParenthesis($tokens) { class PHPSQLParser extends PHPSQLParserUtils { private $lexer; + /** @var array|false|mixed */ + private $parsed; public function __construct($sql = false, $calcPositions = false) { $this->lexer = new PHPSQLLexer(); @@ -539,7 +541,7 @@ private function processUnion($inputArray) { $unionType = "UNION"; # we are looking for an ALL token right after UNION - for ($i = $key + 1; $i < count($inputArray); ++$i) { + for ($i = $key + 1; $i < (is_countable($inputArray) ? count($inputArray) : 0); ++$i) { if (trim($inputArray[$i]) === "") { continue; } @@ -633,7 +635,7 @@ private function processSQL(&$tokens) { $skip_next = false; $out = false; - $tokenCount = count($tokens); + $tokenCount = is_countable($tokens) ? count($tokens) : 0; for ($tokenNumber = 0; $tokenNumber < $tokenCount; ++$tokenNumber) { $token = $tokens[$tokenNumber]; @@ -927,11 +929,11 @@ private function processSQLParts($out) { } if (!empty($out['GROUP'])) { # set empty array if we have partial SQL statement - $out['GROUP'] = $this->process_group($out['GROUP'], isset($out['SELECT']) ? $out['SELECT'] : array()); + $out['GROUP'] = $this->process_group($out['GROUP'], $out['SELECT'] ?? array()); } if (!empty($out['ORDER'])) { # set empty array if we have partial SQL statement - $out['ORDER'] = $this->process_order($out['ORDER'], isset($out['SELECT']) ? $out['SELECT'] : array()); + $out['ORDER'] = $this->process_order($out['ORDER'], $out['SELECT'] ?? array()); } if (!empty($out['LIMIT'])) { $out['LIMIT'] = $this->process_limit($out['LIMIT']); @@ -1009,7 +1011,7 @@ private function process_limit($tokens) { $comma = -1; $exchange = false; - for ($i = 0; $i < count($tokens); ++$i) { + for ($i = 0; $i < (is_countable($tokens) ? count($tokens) : 0); ++$i) { $trim = trim($tokens[$i]); if ($trim === ",") { $comma = $i; @@ -1030,7 +1032,7 @@ private function process_limit($tokens) { } } - for ($i = $comma + 1; $i < count($tokens); ++$i) { + for ($i = $comma + 1; $i < (is_countable($tokens) ? count($tokens) : 0); ++$i) { if ($exchange) { $offset .= $tokens[$i]; } else { @@ -1078,7 +1080,7 @@ private function revokeEscaping($sql) { private function process_select_expr($expression) { $tokens = $this->split_sql($expression); - $token_count = count($tokens); + $token_count = is_countable($tokens) ? count($tokens) : 0; /* Determine if there is an explicit alias after the AS clause. If AS is found, then the next non-whitespace token is captured as the alias. @@ -1153,7 +1155,7 @@ private function process_select_expr($expression) { # if there is only one part, we copy the expr_type # in all other cases we use "expression" as global type $type = 'expression'; - if (count($processed) == 1) { + if ((is_countable($processed) ? count($processed) : 0) == 1) { if ($processed[0]['expr_type'] != 'subquery') { $type = $processed[0]['expr_type']; $base_expr = $processed[0]['base_expr']; @@ -1303,7 +1305,7 @@ private function processFromExpression(&$parseInfo) { # exchange the join types (join_type is save now, saved_join_type holds the next one) $parseInfo['join_type'] = $parseInfo['saved_join_type']; # initialized with JOIN - $parseInfo['saved_join_type'] = ($parseInfo['next_join_type'] ? $parseInfo['next_join_type'] : 'JOIN'); + $parseInfo['saved_join_type'] = ($parseInfo['next_join_type'] ?: 'JOIN'); # we have a reg_expr, so we have to parse it if ($parseInfo['ref_expr'] !== false) { @@ -1577,7 +1579,7 @@ private function process_expr_list($tokens) { if ($parseInfo['prevToken'] == 'AGAINST') { $tmptokens = $this->split_sql($this->removeParenthesisFromStart($parseInfo['trim'])); - if (count($tmptokens) > 1) { + if ((is_countable($tmptokens) ? count($tmptokens) : 0) > 1) { $match_mode = implode('', array_slice($tmptokens, 1)); $parseInfo['processed'] = array($list[0], $match_mode); } else { @@ -1747,7 +1749,7 @@ private function process_expr_list($tokens) { $parseInfo['processed'] = $this->process_expr_list($this->split_sql($local_expr)); $parseInfo['tokenType'] = 'expression'; - if (count($parseInfo['processed']) === 1) { + if ((is_countable($parseInfo['processed']) ? count($parseInfo['processed']) : 0) === 1) { $parseInfo['tokenType'] = $parseInfo['processed'][0]['expr_type']; $parseInfo['base_expr'] = $parseInfo['processed'][0]['base_expr']; $parseInfo['processed'] = $parseInfo['processed'][0]['sub_tree']; @@ -1879,8 +1881,8 @@ private function process_into($tokens) { */ class PositionCalculator extends PHPSQLParserUtils { - private static $allowedOnOperator = array("\t", "\n", "\r", " ", ",", "(", ")", "_", "'"); - private static $allowedOnOther = array("\t", "\n", "\r", " ", ",", "(", ")", "<", ">", "*", "+", "-", "/", "|", "&", "=", "!", ";"); + private static array $allowedOnOperator = array("\t", "\n", "\r", " ", ",", "(", ")", "_", "'"); + private static array $allowedOnOther = array("\t", "\n", "\r", " ", ",", "(", ")", "<", ">", "*", "+", "-", "/", "|", "&", "=", "!", ";"); private function printPos($text, $sql, $charPos, $key, $parsed, $backtracking) { if (!isset($_ENV['DEBUG'])) { @@ -1912,7 +1914,7 @@ private function findPositionWithinString($sql, $value, $expr_type) { $ok = false; while (true) { - $pos = strpos($sql, $value, $offset); + $pos = strpos($sql, (string) $value, $offset); if ($pos === false) { break; } @@ -1982,21 +1984,21 @@ private function lookForBaseExpression($sql, &$charPos, &$parsed, $key, &$backtr # there is an array of sub-elements before (!) the base_expr clause of the current element # so we go through the sub-elements and must come at the end $backtracking[] = $charPos; - for ($i = 1; $i < count($parsed); $i++) { + for ($i = 1; $i < (is_countable($parsed) ? count($parsed) : 0); $i++) { $backtracking[] = false; # backtracking only after n base_expr! } } elseif ($key === 'sub_tree' && $parsed !== false) { # we prevent wrong backtracking on subtrees (too much array_pop()) # there is an array of sub-elements after(!) the base_expr clause of the current element # so we go through the sub-elements and must not come back at the end - for ($i = 1; $i < count($parsed); $i++) { + for ($i = 1; $i < (is_countable($parsed) ? count($parsed) : 0); $i++) { $backtracking[] = false; } } else { # move the current pos after the keyword # SELECT, WHERE, INSERT etc. if (in_array($key, parent::$reserved)) { - $charPos = stripos($sql, $key, $charPos); + $charPos = stripos($sql, (string) $key, $charPos); $charPos += strlen($key); } } @@ -2013,7 +2015,7 @@ private function lookForBaseExpression($sql, &$charPos, &$parsed, $key, &$backtr $subject = substr($sql, $charPos); $pos = $this->findPositionWithinString($subject, $value, - isset($parsed['expr_type']) ? $parsed['expr_type'] : 'alias'); + $parsed['expr_type'] ?? 'alias'); if ($pos === false) { throw new UnableToCalculatePositionException($value, $subject); } @@ -2073,4 +2075,3 @@ public function getArgument() { define('HAVE_PHP_SQL_PARSER', 1); } - diff --git a/src/PhpThumb/GdThumb.inc.php b/src/PhpThumb/GdThumb.inc.php index db819c16..534acb94 100644 --- a/src/PhpThumb/GdThumb.inc.php +++ b/src/PhpThumb/GdThumb.inc.php @@ -303,8 +303,8 @@ public function adaptiveResize ($width, $height, $cropX = null, $cropY = null) $cropY = intval(($this->currentDimensions['height'] - $this->maxHeight) / 2); } - $cropX = ( null === $cropX ) ? 0 : $cropX; - $cropY = ( null === $cropY ) ? 0 : $cropY; + $cropX ??= 0; + $cropY ??= 0; imagecopyresampled ( @@ -994,6 +994,7 @@ protected function calcImageSize ($width, $height) */ protected function calcImageSizeStrict ($width, $height) { + $newDimensions = null; // first, we need to determine what the longest resize dimension is.. if ($this->maxWidth >= $this->maxHeight) { @@ -1088,7 +1089,7 @@ protected function determineFormat () return; } - $mimeType = isset($formatInfo['mime']) ? $formatInfo['mime'] : null; + $mimeType = $formatInfo['mime'] ?? null; switch ($mimeType) { diff --git a/src/PhpThumb/ThumbLib.inc.php b/src/PhpThumb/ThumbLib.inc.php index c53f4f7b..dc64e2a7 100644 --- a/src/PhpThumb/ThumbLib.inc.php +++ b/src/PhpThumb/ThumbLib.inc.php @@ -28,7 +28,7 @@ */ // define some useful constants -define('THUMBLIB_BASE_PATH', dirname(__FILE__)); +define('THUMBLIB_BASE_PATH', __DIR__); define('THUMBLIB_PLUGIN_PATH', THUMBLIB_BASE_PATH . '/thumb_plugins/'); define('DEFAULT_THUMBLIB_IMPLEMENTATION', 'gd'); @@ -143,4 +143,4 @@ public static function create ($filename = null, $options = array(), $isDataStre $toReturn->importPlugins($registry); return $toReturn; } -} \ No newline at end of file +} diff --git a/src/PhpThumb/thumb_plugins/gd_reflection.inc.php b/src/PhpThumb/thumb_plugins/gd_reflection.inc.php index 7d51f373..4dfd8be3 100644 --- a/src/PhpThumb/thumb_plugins/gd_reflection.inc.php +++ b/src/PhpThumb/thumb_plugins/gd_reflection.inc.php @@ -96,7 +96,7 @@ public function createReflection ($percent, $reflection, $white, $border, $borde { $rgb = $this->hex2rgb($borderColor, false); $colorToPaint = imagecolorallocate($this->workingImage, $rgb[0], $rgb[1], $rgb[2]); - + imageline($this->workingImage, 0, 0, $width, 0, $colorToPaint); //top line imageline($this->workingImage, 0, $height, $width, $height, $colorToPaint); //bottom line imageline($this->workingImage, 0, 0, 0, $height, $colorToPaint); //left line @@ -177,4 +177,4 @@ protected function hex2rgb ($hex, $asString = false) } $pt = PhpThumb::getInstance(); -$pt->registerPlugin('GdReflectionLib', 'gd'); \ No newline at end of file +$pt->registerPlugin('GdReflectionLib', 'gd'); diff --git a/src/RSS_PHP/rss_php.php b/src/RSS_PHP/rss_php.php old mode 100755 new mode 100644 index 43772ad6..90069b11 --- a/src/RSS_PHP/rss_php.php +++ b/src/RSS_PHP/rss_php.php @@ -99,6 +99,7 @@ private function valueReturner($valueBlock=false) { private function extractDOM($nodeList,$parentNodeName=false) { $itemCounter = 0; + $tempNode = null; foreach($nodeList as $values) { if(substr($values->nodeName,0,1) != '#') { if($values->nodeName == 'item') { @@ -139,9 +140,9 @@ private function extractDOM($nodeList,$parentNodeName=false) { private function randomContext() { $headerstrings = array(); - $headerstrings['User-Agent'] = 'Mozilla/5.0 (Windows; U; Windows NT 5.'.rand(0,2).'; en-US; rv:1.'.rand(2,9).'.'.rand(0,4).'.'.rand(1,9).') Gecko/2007'.rand(10,12).rand(10,30).' Firefox/2.0.'.rand(0,1).'.'.rand(1,9); - $headerstrings['Accept-Charset'] = rand(0,1) ? 'en-gb,en;q=0.'.rand(3,8) : 'en-us,en;q=0.'.rand(3,8); - $headerstrings['Accept-Language'] = 'en-us,en;q=0.'.rand(4,6); + $headerstrings['User-Agent'] = 'Mozilla/5.0 (Windows; U; Windows NT 5.'.random_int(0,2).'; en-US; rv:1.'.random_int(2,9).'.'.random_int(0,4).'.'.random_int(1,9).') Gecko/2007'.random_int(10,12).random_int(10,30).' Firefox/2.0.'.random_int(0,1).'.'.random_int(1,9); + $headerstrings['Accept-Charset'] = random_int(0,1) ? 'en-gb,en;q=0.'.random_int(3,8) : 'en-us,en;q=0.'.random_int(3,8); + $headerstrings['Accept-Language'] = 'en-us,en;q=0.'.random_int(4,6); $setHeaders = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'."\r\n". 'Accept-Charset: '.$headerstrings['Accept-Charset']."\r\n". 'Accept-Language: '.$headerstrings['Accept-Language']."\r\n". @@ -156,5 +157,3 @@ private function randomContext() { } } - -?> diff --git a/src/Sifo/API/Twitter.php b/src/Sifo/API/Twitter.php deleted file mode 100644 index 0c22e238..00000000 --- a/src/Sifo/API/Twitter.php +++ /dev/null @@ -1,814 +0,0 @@ -setAccount( 'user1', 'plainpass1' ) ); - * $twitter->getFavorites(); // The function call must be done after all accounts are added. - * (loop suggested with all your accounts) - * $twitter->setAccount( 'user2', 'pass2' ) ); - * $twitter->getFavorites(); // The function call must be done after all accounts are added. - * (end of loop) - * $result = $twitter->fetch(); - * - * The code above would return the favorites for all added accounts inside an array: - * - * Limitations: Public methods don't need setAccount, but YOU CAN'T MIX REQUESTS THAT ARE DIFFERENT IN THE $require_authentication. - * - * @author Albert Lombarte - * @deprecated Use Epi Classes (see vendor/sifophp/sifo/src/) instead. - * - */ -class APITwitter { - - /** - * Twitter API return format. You can request the following formats: xml, json, rss, atom. - * - */ - const RETURN_FORMAT = 'json'; - - /** - * A name where requests with no-auth will pe placed in the array. - * - */ - const NO_ACCOUNT_NAME ='@public'; - - /** - * Client sending the updates. - * - */ - const SOURCE = 'splitweet'; - - /** - * Stores the singleton. Creates an object for every different return format. - * - * @var Config - */ - static protected $instance; - - /** - * Multi account storage. - * - * @var string - */ - static protected $accounts; - - /** - * Current working account. Uses the twitter username. - * - * @var string - */ - static protected $active_account; - - /** - * Private constructor. Not allowed to instantiate classe using new APITwitter(). - * - * @param $output_format Format you want to get the results. Twitter supports: xml, json, rss and atom. - */ - private function __construct( $output_format ) - { - $this->format = $output_format; - $this->setAccount( self::NO_ACCOUNT_NAME , 'unused' ); - } - - /** - * Singleton of the Twitter class. - * - * @param $output_format Format you want to get the results. Twitter supports: xml, json, rss and atom. Not all methods are available for every format. Read Twitter API. - * - * @return object Config - */ - public static function getInstance( $output_format = self::RETURN_FORMAT ) - { - if ( !isset ( self::$instance[$output_format] ) ) - { - self::$instance[$output_format] = new self( $output_format ); - } - - return self::$instance[$output_format]; - } - - /** - * Add an account in the stack. You need to call this method when you need to perform non-public operations. - * - * @param string $username Twitter username. - * @param string $password Twitter password, plain, as Twitter needs it. - */ - public function setAccount( $username, $password ) - { - self::$accounts[$username] = array( - 'credentials' => sprintf( "%s:%s", $username, $password ), - 'methods' => array() - ); - - self::$active_account = $username; - - return $username; - } - - /** - * Empties the accounts array, so another function can be called with new accounts. - * - */ - public function resetAccounts() - { - self::$accounts = null; - } - - - /** - * Returns the 20 most recent statuses from non-protected users who have set a custom user icon. - * Does not require authentication. - * Note that the public timeline is cached for 60 seconds so requesting it more often than that is a waste of resources. - * - * formats: xml, json, rss, atom - */ - public function getPublicTimeline() - { - $url = sprintf( "http://twitter.com/statuses/public_timeline.%s", $this->format ); - return $this->addRequest( 'getPublicTimeline', $url ); - } - - /** - * Returns the 20 most recent statuses posted by the authenticating user and that user's friends. This is the equivalent of /home on the Web. - * - * formats: xml, json, rss, atom - * - * @param integer $page Number of page to retrieve,. - * @param integer $count Specifies the number of statuses to retrieve. May not be greater than 200. - * @param integer $since_id Returns only statuses with an ID greater than (that is, more recent than) the specified ID. - * @param string $max_id Returns only statuses with an ID less than (that is, older than) the specified ID.. - * @return array - */ - public function getFriendsTimeline( $page = false, $count = 10, $since_id= false, $max_id= false ) - { - $url = sprintf("http://twitter.com/statuses/friends_timeline.%s", $this->format); - - if ( $page ) $params[] = "page=$page"; - if ( $count ) $params[] = "count=$count"; - if ( $max_id ) $params[] = "max_id=$max_id"; - if ( $since_id ) $params[] = "since_id=$since_id"; - - if ( $page || $count || $max_id || $since_id ) - { - $url .= '?' . implode( '&', $params ); - } - - return $this->addRequest( 'getFriendsTimeline', $url, true ); - } - - /** - * Returns the 20 most recent statuses posted from the authenticating user. It's also possible to request - * another user's timeline via the id parameter below. This is the equivalent of the Web /archive page - * for your own user, or the profile page for a third party. - * - * @param string $id Specifies the ID or screen name of the user for whom to return the friends_timeline. E.g: 1234, or 'bob' - * @param integer $count Specifies the number of statuses to retrieve. May not be greater than 200, default 20. - * @param string $since Narrows the returned results to just those statuses created after the specified HTTP-formatted date, up to 24 hours old. The same behavior is available by setting an If-Modified-Since header in your HTTP request. - * @param integer $since_id Returns only statuses with an ID greater than (that is, more recent than) the specified ID - * @param integer $page Page to retrieve. - * @return array - */ - public function getUserTimeline( $id = false, $count = false, $since = false, $since_id = false, $page = false ) - { - if ( false !== $id ) - { - $url = sprintf("http://twitter.com/statuses/user_timeline/%s.%s", $id, $this->format); - } - else - { - $url = sprintf("http://twitter.com/statuses/user_timeline.%s", $this->format); - } - - if ( $page ) $params[] = "page=$page"; - if ( $count ) $params[] = "count=$count"; - if ( $since ) $params[] = "since=".urlencode( $since ); - if ( $since_id ) $params[] = "since_id=$since_id"; - - if ( $page || $count || $since || $since_id ) - { - $url .= '?' . implode( '&', $params ); - } - - return $this->addRequest( 'getUserTimeline', $url, false ); - } - - /** - * Returns a single status, specified by the id parameter below. The status's author will be returned inline. - * - * @param integer $id The numerical ID of the status you're trying to retrieve (passed as string for non 64-bit machines) - * @return array - */ - public function showStatus( $id ) - { - $url = sprintf( "http://twitter.com/statuses/show/%s.%s", $id, $this->format ); - return $this->addRequest( 'showStatus', $url ); - } - - /** - * Updates the authenticating user's status. Requires the status parameter specified below. - * - * @param string $status The text of your status update. - * @param integer $in_reply_to_id The ID of an existing status that the status to be posted is in reply to. - * This implicitly sets the in_reply_to_user_id attribute of the resulting status to the user ID of the message being replied to. - * Invalid/missing status IDs will be ignored. - * @return array - */ - public function updateStatus( $status, $in_reply_to_id = false ) - { - $status = urlencode( stripslashes( $status ) ); - $url = sprintf( "http://twitter.com/statuses/update.xml?source=" . self::SOURCE . "&status=%s", $status ); - - if ( $in_reply_to_id ) - { - $url .= "&in_reply_to_status_id=$in_reply_to_id"; - } - - return $this->addRequest( 'updateStatus', $url, true, true ); - } - - /** - * Returns the 20 most recent @replies (status updates prefixed with @username) for the authenticating user. - * - * @param integer $page Retrieves the 20 next most recent replies - * @param string $since Narrows the returned results to just those replies created after the specified HTTP-formatted date, up to 24 hours old. - * @param integer $since_id Returns only statuses with an ID greater than (that is, more recent than) the specified ID - * @return array - */ - public function getReplies($page = false, $count = 10, $since_id = false, $max_id = false ) - { - $url = sprintf( "http://twitter.com/statuses/mentions.%s", $this->format ); - - if ( $page ) $params[] = "page=$page"; - if ( $count ) $params[] = "count=$count"; - if ( $since_id ) $params[] = "since_id=$since_id"; - if ( $max_id ) $params[] = "max_id=$max_id"; - - if ( $page || $count || $since_id || $max_id ) - { - $url .= '?' . implode( '&', $params ); - } - - return $this->addRequest( 'getReplies', $url, true ); - } - - /** - * Destroys the status specified by the required ID parameter. The authenticating user must be the author of the specified status. - * - * @param string $id The ID of the status to destroy. (Marked as string to allow LARGE numbers) - * @return array - */ - public function destroyStatus( $id ) - { - $url = sprintf( "http://twitter.com/statuses/destroy/%s.%s", $id, $this->format ); - return $this->addRequest( 'destroyStatus', $url, true, true ); - } - - /** - * Returns up to 100 of the authenticating user's friends who have most recently updated, each with current status inline. - * - * @param string $id Optional. The ID or screen name of the user for whom to request a list of friends. - * @param integer $page Retrieves the next 100 friends. - * @return array - */ - public function getFriends( $id = false, $page = false ) - { - if ( false !== $id ) - { - $url = sprintf( "http://twitter.com/statuses/friends/%s.%s", $id, $this->format ); - $require_credentials = false; - } - else - { - $url = sprintf( "http://twitter.com/statuses/friends.%s", $this->format ); - $require_credentials = true; - } - if ( $page ) - { - $url .= "?page=$page"; - } - - return $this->addRequest( 'getFriends', $url, $require_credentials ); - } - - /** - * Returns the authenticating user's followers, each with current status inline. They are ordered by the order in which they joined Twitter (this is going to be changed). - * - * @param string $id Optional. The ID or screen name of the user for whom to request a list of friends. - * @param integer $page Retrieves the next 100 followers. - * @return array - */ - public function getFollowers( $id = false, $page = false ) - { - if ( false !== $id ) - { - $url = sprintf( "http://twitter.com/statuses/followers/%s.%s", $id, $this->format ); - } - else - { - $url = sprintf( "http://twitter.com/statuses/followers.%s", $this->format ); - } - if ( $page ) - { - $url .= "?page=$page"; - } - - return $this->addRequest( 'getFollowers', $url, true ); - } - - - /** - * Returns extended information of a given user, specified by ID or screen name as per the required id parameter below. - * This information includes design settings, so third party developers can theme their widgets according to a given user's preferences. - * You must be properly authenticated to request the page of a protected user. - * - * @param string $id The ID or screen name of a user - * @param unknown_type $email May be used in place of "id" parameter above. - * @return array - */ - public function showUser( $id, $email = false ) - { - // If an email is passed retrieve info by email instead of ID. - if ( false !== $email ) - { - $url = sprintf( "http://twitter.com/users/show.%s?email=%s", $this->format, $email ); - } - else - { - $url = sprintf( "http://twitter.com/users/show/%s.%s", $id, $this->format ); - } - - return $this->addRequest( 'showUser', $url, false ); - } - - - /** - * Returns a list of the 20 most recent direct messages sent to the authenticating user. - * The XML and JSON versions include detailed information about the sending and recipient users. - * - * @param string $since Narrows the resulting list of direct messages to just those sent after the specified HTTP-formatted date, up to 24 hours old - * @param integer $since_id Returns only direct messages with an ID greater than (that is, more recent than) the specified ID - * @param integer $page Retrieves the 20 next most recent direct messages. - * @return array - */ - public function getDirectMessages( $page = false, $count = 10, $since_id = false, $max_id = false ) - { - - $url = sprintf( "http://twitter.com/direct_messages.%s", $this->format ); - - if ( $page ) $params[] = "page=$page"; - if ( $count ) $params[] = "count=$count"; - if ( $since_id ) $params[] = "since_id=$since_id"; - if ( $max_id ) $params[] = "max_id=$max_id"; - - if ( $page || $count || $since_id || $max_id ) - { - $url .= '?' . implode( '&', $params ); - } - - return $this->addRequest( 'getDirectMessages', $url, true ); - } - - /** - * Returns a list of the 20 most recent direct messages sent by the authenticating user. - * The XML and JSON versions include detailed information about the sending and recipient users. - * - * @param string $since Narrows the resulting list of direct messages to just those sent after the specified HTTP-formatted date, up to 24 hours old - * @param integer $since_id Returns only direct messages with an ID greater than (that is, more recent than) the specified ID - * @param integer $page Retrieves the 20 next most recent direct messages. - * @return array - */ - public function getSentMessages( $page = false, $since = false, $since_id = false ) - { - $url = sprintf( "http://twitter.com/direct_messages/sent.%s", $this->format ); - - if ( $page ) $params[] = "page=$page"; - if ( $since ) $params[] = "since=".urlencode( $since ); - if ( $since_id ) $params[] = "since_id=$since_id"; - - if ( $page || $since || $since_id ) - { - $url .= '?' . implode( '&', $params ); - } - - return $this->addRequest( 'getSentMessages', $url, true ); - } - - /** - * Sends a new direct message to the specified user from the authenticating user. - * Returns the sent message in the requested format when successful. - * @param string $user The ID or screen name of the recipient user - * @param string $text The text of your direct message. Under 140 chars. - * @return array - */ - public function newDirectMessage( $user, $text ) - { - // TODO: Look if encode/decode is well done: - $text = urlencode( stripslashes( $text ) ); - $url = sprintf( "http://twitter.com/direct_messages/new.%s?user=%s&text=%s", $this->format, $user, $text ); - - return $this->addRequest( 'newDirectMessage', $url, true, true ); - } - - /** - * Destroys the direct message specified in the required ID parameter. The authenticating user must be the recipient of the specified direct message. - * - * @param integer $id The ID of the direct message to destroy. - * @return array - */ - public function destroyDirectMessage( $id ) - { - $url = sprintf( "http://twitter.com/direct_messages/destroy/%s.%s", $id, $this->format ); - return $this->addRequest( 'destroyDirectMessage', $url, true ); - } - - - /** - * Befriends the user specified in the ID parameter as the authenticating user. - * Returns the befriended user in the requested format when successful. - * Returns a string describing the failure condition when unsuccessful. - * - * @param string $id The ID or screen name of the user to befriend. - * @param boolean $follow Enable notifications for the target user in addition to becoming friends. - * @return array - */ - public function createFriendship( $id, $follow = false ) - { - $url = sprintf( "http://twitter.com/friendships/create/%s.%s", $id, $this->format ); - - if ( $follow ) - { - $url .= '?follow=true'; - } - - return $this->addRequest( 'createFriendship', $url, true, true ); - } - - /** - * Discontinues friendship with the user specified in the ID parameter as the authenticating user. - * Returns the un-friended user in the requested format when successful. - * Returns a string describing the failure condition when unsuccessful. - * - * @param string $id The ID or screen name of the user to befriend. - * @return array - */ - public function destroyFriendship( $id ) - { - $url = sprintf( "http://twitter.com/friendships/destroy/%s.%s", $id, $this->format ); - return $this->addRequest( 'destroyFriendship', $url, true, true ); - } - - /** - * Tests if a friendship exists between two users. - * - * @param unknown_type $user_a The ID or screen_name of the first user to test friendship for. - * @param unknown_type $user_b The ID or screen_name of the second user to test friendship for. - */ - public function existsFriendship( $user_a, $user_b ) - { - $url = sprintf("http://twitter.com/friendships/exists.%s?user_a=%s&user_b=%s", $this->format, $user_a, $user_b ); - return $this->addRequest( 'existsFriendship', $url, true ); - } - - /** - * Returns an HTTP 200 OK response code and a representation of the requesting user if authentication was successful; - * returns a 401 status code and an error message if not. - * Use this method to test if supplied user credentials are valid. - * - * @return array - */ - public function verifyCredentials() - { - $url = sprintf( "http://twitter.com/account/verify_credentials.%s", $this->format ); - return $this->addRequest( 'verifyCredentials', $url, true ); - } - - /** - * Ends the session of the authenticating user, returning a null cookie. - * Use this method to sign users out of client-facing applications like widgets. - * - * @return array - */ - public function endSession() - { - $url = sprintf( "http://twitter.com/account/end_session.%s", $this->format ); - return $this->addRequest( 'endSession', $url, true ); - } - - /** - * Sets values that users are able to set under the "Account" tab of their settings page. Only the parameters specified will be updated; - * to only update the "name" attribute, for example, only include that parameter in your request. - * - * @param string $name Maximum of 40 characters - * @param string $email Maximum of 40 characters. Must be a valid email address. - * @param string $url Maximum of 100 characters. Will be prepended with "http://" if not present. - * @param string $location Maximum of 30 characters. The contents are not normalized or geocoded in any way. - * @param string $description Maximum of 160 characters. - * @return array - */ - public function updateProfile( $name = false, $email = false, $url = false, $location = false, $description = false ) - { - if ( $name || $email ||$url || $location || $description ) - { - $url = sprintf("http://twitter.com/account/update_profile.%s", $this->format); - - if ( $name ) $params[] = "name=$name"; - if ( $email ) $params[] = "email=".urlencode( $email ); - if ( $email ) $params[] = "url=" . urlencode( $url ); - if ( $location ) $params[] = "location=".urlencode( $location ); - if ( $description ) $params[] = "description=".urlencode( $description ); - - $url .= '?' . implode( '&', $params ); - - return $this->addRequest( 'updateProfile', $url, true, true ); - } - } - - - /** - * Returns the 20 most recent favorite statuses for the authenticating user or user specified by the ID parameter in the requested format. - * - * @param string $id The ID or screen name of the user for whom to request a list of favorite statuses. - * @param integer $page Retrieves the 20 next most recent favorite statuses - * @return array - */ - public function getFavorites( $id = false, $page = false ) - { - if ( $id == false ) - { - $url = sprintf( "http://twitter.com/favorites.%s", $this->format ); - } - else - { - $url = sprintf( "http://twitter.com/favorites/%s.%s", $id, $this->format ); - } - - if ( $page ) { - $url .= sprintf( "?page=%d", $page ); - } - - return $this->addRequest( 'getFavorites', $url, true ); - } - - /** - * Favorites the status specified in the ID parameter as the authenticating user. - * Returns the favorite status when successful. - * - * @param integer $id The ID of the status to favorite - * @return array - */ - public function createFavorite( $id ) - { - $url = sprintf( "http://twitter.com/favorites/create/%s.%s", $id, $this->format ); - return $this->addRequest( 'createFavorite', $url, true, true ); - } - - /** - * Un-favorites the status specified in the ID parameter as the authenticating user. - * Returns the un-favorited status in the requested format when successful. - * - * @param integer $id The ID of the status to un-favorite - * @return array - */ - public function destroyFavorite( $id ) - { - $url = sprintf( "http://twitter.com/favorites/destroy/%s.%s", $id, $this->format ); - return $this->addRequest( 'destroyFavorite', $url, true, true ); - } - - /** - * Enables notifications for updates from the specified user to the authenticating user. - * Returns the specified user when successful. - * - * @param string $id The ID or screen name of the user to follow. - * @return array - */ - public function follow( $id ) - { - $url = sprintf( "http://twitter.com/notifications/follow/%s.%s", $id, $this->format ); - return $this->addRequest( 'follow', $url, true, true ); - } - - - /** - * Disables notifications for updates from the specified user to the authenticating user. Returns the specified user when successful. - * - * NOTE: The Notification Methods require the authenticated user to already be friends with the - * specified user otherwise the error "there was a problem following the specified user" will be returned - * - * @param string $id The ID or screen name of the user to leave - */ - public function stopFollowing( $id ) - { - $url = sprintf( "http://twitter.com/notifications/leave/%s.%s", $id, $this->format ); - return $this->addRequest( 'stopFollowing', $url, true, true ); - } - - /** - * Blocks the user specified in the ID parameter as the authenticating user. - * Returns the blocked user in the requested format when successful. - * You can find out more about blocking in the Twitter Support Knowledge Base. - * - * @param string $id The ID or screen_name of the user to block - * @return array - */ - public function blockUser( $id ) - { - $url = sprintf( "http://twitter.com/blocks/create/%s.%s", $id, $this->format ); - return $this->addRequest( 'blockUser', $url, true, true ); - } - - /** - * Unblocks the user specified in the ID parameter as the authenticating user. - * Returns the unblocked user in the requested format when successful. - * - * @param string $id The ID or screen_name of the user to unblock - * @return array - */ - public function unblockUser( $id ) - { - $url = sprintf( "http://twitter.com/blocks/destroy/%s.%s", $id, $this->format ); - return $this->addRequest( 'unblockUser', $url, true, true ); - } - - - /** - * Returns the lists available for the given user. - * - * @param string $user - * @return array - */ - public function getLists( $user ) - { - $url = sprintf( 'http://api.twitter.com/1/%s/lists.%s', $user, $this->format ); - return $this>addRequest( 'getLists', $url, true, false ); - } - - public function searchTerm( $term, $num_results, $exclude_users = null ) - { - $term = str_replace( ' ', '+', $term ); - - $url = sprintf( "http://search.twitter.com/search.%s?rpp=%s&q=%s", $this->format, $num_results, $term ); - - // Exclude mentions from @brand (own tweets) - if ( false === strpos( $term, '+' ) ) - { - $url .= "+-from%3A$term"; - } - - return $this->addRequest( 'searchMentions|'.$term, $url ); - } - - private function addRequest( $title, $url, $require_credentials = false, $http_post = false ) - { - // Store where and how to request: - self::$accounts[self::$active_account]['methods'][$title]['url'] = $url; - self::$accounts[self::$active_account]['methods'][$title]['require_credentials'] = $require_credentials; - self::$accounts[self::$active_account]['methods'][$title]['http_post'] = $http_post; - } - /** - * Fetches the given URL for every added account or a single URL if credentials aren't required. - * - * @param string $url Url to fetch. - * @param boolean $require_credentials Whether user needs to be authenticated or not. - * @param boolean $http_post Send data as a POST. - * @return array - */ - public function fetch() - { - $mc = EpiCurl::getInstance(); - - foreach ( self::$accounts as $account_name => $values ) - { - foreach ( $values['methods'] as $method_name => $method ) - { - $curl_handle = curl_init( $method['url'] ); - // Due to headers' lios: http://www.shoemoney.com/2008/12/29/lib-curl-twitter-api-expect-100-continue-pain-and-how-to-fix-it/ - curl_setopt($curl_handle, CURLOPT_HTTPHEADER, array('Expect:')); - curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1); - - // x seconds for timeout - curl_setopt($curl_handle, CURLOPT_TIMEOUT, 5); - - if ( $method['require_credentials'] ) { - curl_setopt( $curl_handle, CURLOPT_USERPWD, $values['credentials'] ); - } - if ( $method['http_post'] ) { - curl_setopt( $curl_handle, CURLOPT_POST, true ); - } - - self::$accounts[$account_name][$method_name]['curl'] = $mc->addCurl( $curl_handle ); - } - } - - foreach ( self::$accounts as $account_name => $values ) - { - foreach ( $values['methods'] as $method_name => $value ) - { - self::$accounts[$account_name][$method_name] = self::$accounts[$account_name][$method_name]['curl']->data; // ->code can be returned as well. - } - // Finished with all this account methods, unset: - unset( self::$accounts[$account_name]['methods'] ); - unset( self::$accounts[$account_name]['credentials'] ); - unset( self::$accounts[$account_name]['curl'] ); - } - - if ( empty( self::$accounts[self::NO_ACCOUNT_NAME] ) ) - { - unset( self::$accounts[self::NO_ACCOUNT_NAME] ); - } - - return self::$accounts; - } - - public function processResponse( $response ) - { - if ( self::RETURN_FORMAT == 'json' ) - { - $response = json_decode( $response, true ); - if ( isset( $response['error'] ) ) - { - return $response; - } - } - else - { - $response = simplexml_load_string( $response ); - if ( isset( $response->error ) ) - { - return array( 'error' => $response->error ); - } - } - } - - - // TODO: Add the following methods: - /* - - Adding this methods the API will be complete. - - update_delivery_device - Sets which device Twitter delivers updates to for the authenticating user. Sending none as the device parameter will disable IM or SMS updates. - URL: http://twitter.com/account/update_delivery_device.format - Method(s): POST - Parameters: - * device. Required. Must be one of: sms, im, none. Ex: http://twitter.com/account/update_delivery_device.xml?device=im - - update_profile_colors - Sets one or more hex values that control the color scheme of the authenticating user's profile page on twitter.com. These values are also returned in the /users/show API method. - URL: http://twitter.com/account/update_profile_colors.format - Method(s): POST - Parameters: one or more of the following parameters must be present. Each parameter's value must be a valid hexidecimal value, and may be either three or six characters (ex: #fff or #ffffff). - * profile_background_color. Optional. - * profile_text_color. Optional. - * profile_link_color. Optional. - * profile_sidebar_fill_color. Optional. - * profile_sidebar_border_color. Optional. - - update_profile_image - Updates the authenticating user's profile image. Expects raw multipart data, not a URL to an image. - URL: http://twitter.com/account/update_profile_image.format - Method(s): POST - Parameters: - * image. Required. Must be a valid GIF, JPG, or PNG image of less than 700 kilobytes in size. Images with width larger than 500 pixels will be scaled down. - - update_profile_background_image - Updates the authenticating user's profile background image. Expects raw multipart data, not a URL to an image. - URL: http://twitter.com/account/update_profile_background_image.format - Method(s): POST - Parameters: - * image. Required. Must be a valid GIF, JPG, or PNG image of less than 800 kilobytes in size. Images with width larger than 2048 pixels will be scaled down. - - rate_limit_status - Returns the remaining number of API requests available to the requesting user before the API limit is reached for the current hour. Calls to rate_limit_status do not count against the rate limit. If authentication credentials are provided, the rate limit status for the authenticating user is returned. Otherwise, the rate limit status for the requester's IP address is returned. - URL: http://twitter.com/account/rate_limit_status.format - Method(s): GET - */ -} -?> diff --git a/src/Sifo/API/Youtube.php b/src/Sifo/API/Youtube.php deleted file mode 100644 index c143f0ce..00000000 --- a/src/Sifo/API/Youtube.php +++ /dev/null @@ -1,162 +0,0 @@ -getVideoData( $video_url ); - * - * The format of the returned data is an array with these keys: - * [video_id] => ybNJb6EuU1Y - * [url_player] => http://www.youtube.com/watch?v=ybNJb6EuU1Y&feature=youtube_gdata - * [title] => Video title - * [description] => Video description - * [keywords] => Array - * ( - * [0] => keyword1 - * [1] => keyword2 - * ... - * [N] => keywordN - * ) - * [url_embed] => http://www.youtube.com/v/ybNJb6EuU1Y?f=videos&app=youtube_gdata - * [duration] => Duration (in seconds) - * [thumbnails] => Array - * ( - * [0] => http://i.ytimg.com/vi/ybNJb6EuU1Y/2.jpg - * [1] => http://i.ytimg.com/vi/ybNJb6EuU1Y/1.jpg - * [2] => http://i.ytimg.com/vi/ybNJb6EuU1Y/3.jpg - * ) - */ -class APIYoutube -{ - /** - * Youtube API url to retreive data. - * - * @var string - */ - protected $api_url = 'http://gdata.youtube.com/feeds/api/videos/'; - - /** - * Media namespace to format the XML. - * - * @var string - */ - protected $media_namespace = 'http://search.yahoo.com/mrss/'; - - /** - * Get video data from Youtube API. - * - * @param string $video_url Video URL or video ID. - * @return array - */ - public function getVideoData( $video_url ) - { - $video_id = $this->_getVideoId( $video_url ); - - $multi_curl = EpiCurl::getInstance(); - $curl = curl_init( $this->api_url . $video_id ); - curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 ); - $response = $multi_curl->addCurl( $curl ); - - if ( 200 !== $response->code ) - { - return false; - } - - try - { - $xml_data = @new SimpleXMLElement( $response->data ); - } - catch( \Exception $e ) - { - if ( 'Invalid id' === $response->data ) - { - return false; - } - } - - $video_data['video_id'] = $video_id; - $video_data['url_player'] = ( string ) $xml_data->link[0]->attributes()->href[0]; - - $media_group = $xml_data->children( $this->media_namespace ); - $video_data['title'] = ( string ) $media_group->group->title; - $video_data['description'] = ( string ) $media_group->group->description; - $video_data['keywords'] = explode( ',', ( string ) $media_group->group->keywords ); - - if ( !isset( $media_group->group->content[0] ) ) - { - return false; - } - - $content_attrs = $media_group->group->content[0]->attributes(); - $video_data['url_embed'] = ( string ) $content_attrs['url']; - $video_data['duration'] = ( int ) $content_attrs['duration']; - - foreach ( $media_group->group->thumbnail as $key => $val ) - { - $thumb_attrs = $val->attributes(); - $thumb_width = ( int ) $thumb_attrs['width']; - if ( $thumb_width == 120 ) - { - $video_data['thumbnails'][] = ( string ) $thumb_attrs['url']; - } - } - - return $video_data; - } - - /** - * Get video ID from URL. - * - * @param string $video_url Video URL or video ID. - * @return string - */ - private function _getVideoId( $video_url ) - { - $video_id = ''; - $url_parts = parse_url( $video_url ); - if ( !isset( $url_parts['query'] ) ) - { - $video_id = $video_url; - } - else - { - parse_str( $url_parts['query'], $query_parts ); - if ( isset( $query_parts['v'] ) ) - { - $video_id = $query_parts['v']; - } - } - - return $video_id; - } -} - -?> diff --git a/src/Sifo/Bootstrap.php b/src/Sifo/Bootstrap.php index 6e6d643f..704c06ff 100644 --- a/src/Sifo/Bootstrap.php +++ b/src/Sifo/Bootstrap.php @@ -32,9 +32,8 @@ /** * Class Bootstrap */ -require_once ROOT_PATH . '/vendor/sifophp/sifo/src/Sifo/Exceptions.php'; -require_once ROOT_PATH . '/vendor/sifophp/sifo/src/Sifo/Config.php'; -require_once ROOT_PATH . '/vendor/autoload.php'; +require_once 'Exceptions.php'; +require_once 'Config.php'; class Bootstrap { @@ -93,15 +92,19 @@ public static function execute( $instance_name, $controller_name = null, $contai { // Set paths: self::$root = ROOT_PATH; - self::$application = dirname( __FILE__ ); + self::$application = __DIR__; self::$instance = $instance_name; static::setContainer($container); Benchmark::getInstance()->timingStart(); + ob_start(); self::dispatch( $controller_name ); + $content = ob_get_clean(); Benchmark::getInstance()->timingStop(); + + echo $content; } /** @@ -193,7 +196,7 @@ public static function dispatch( $controller = null, $container = null ) } // If the user is authorized, we save a session cookie to prevent multiple auth under subdomains in the same session. - setcookie( 'domain_auth', $auth_data['hash'], 0, '/', $domain->getDomain() ); + setcookie( 'domain_auth', $auth_data['hash'], ['expires' => 0, 'path' => '/', 'domain' => $domain->getDomain()] ); } self::$language = $domain->getLanguage(); diff --git a/src/Sifo/CLBootstrap.php b/src/Sifo/CLBootstrap.php index 1391a3e6..d3561b08 100644 --- a/src/Sifo/CLBootstrap.php +++ b/src/Sifo/CLBootstrap.php @@ -5,7 +5,7 @@ */ namespace Sifo; -require_once ROOT_PATH . '/vendor/sifophp/sifo/src/Sifo/Bootstrap.php'; +require_once 'Bootstrap.php'; class CLBootstrap extends Bootstrap { @@ -16,8 +16,8 @@ class CLBootstrap extends Bootstrap /** * Starts the execution. Root path is passed to avoid recalculation. * - * @param null $instance_name Name of the instance. Required for Bootsrap::execute compatibility. - * @param null $controller_name Script that will be executed. Required for Bootsrap::execute compatibility. + * @param null|string $instance_name Name of the instance. Required for Bootsrap::execute compatibility. + * @param null|string $controller_name Script that will be executed. Required for Bootsrap::execute compatibility. */ public static function execute( $instance_name = null, $controller_name = null, $psr_container = null ) { @@ -31,7 +31,7 @@ public static function execute( $instance_name = null, $controller_name = null, // Set paths: self::$root = ROOT_PATH; - self::$application = dirname( __FILE__ ); + self::$application = __DIR__; Benchmark::getInstance()->timingStart(); self::dispatch( $controller_name ); @@ -87,13 +87,14 @@ public static function get_available_domains() preg_match("/\/([^\/]+)\/([^\/]+)\/[^\/]+$/", $_SERVER['PHP_SELF'], $matchs); // Set the real and active instance name. -CLBootstrap::$instance = $matchs[1]; +CLBootstrap::$instance = $matchs[1] ?? 'default'; if ( extension_loaded( 'newrelic' ) && isset( CLBootstrap::$instance ) ) { newrelic_set_appname( ucfirst( CLBootstrap::$instance ) ); } +$argv ??= [null, 'default']; if ( !isset( $argv[1] ) || ( '-h' == $argv[1] ) || ( '--help' == $argv[1] ) ) { // Dump help info: diff --git a/src/Sifo/Cache.php b/src/Sifo/Cache.php index 874fc56a..8d5566e4 100644 --- a/src/Sifo/Cache.php +++ b/src/Sifo/Cache.php @@ -25,13 +25,13 @@ */ class Cache { - const CACHE_TYPE_AUTODISCOVER = 'AUTODISCOVER'; - const CACHE_TYPE_MEMCACHED = 'MEMCACHED'; - const CACHE_TYPE_MEMCACHE = 'MEMCACHE'; - const CACHE_TYPE_DISK = 'DISK'; + public const CACHE_TYPE_AUTODISCOVER = 'AUTODISCOVER'; + public const CACHE_TYPE_MEMCACHED = 'MEMCACHED'; + public const CACHE_TYPE_MEMCACHE = 'MEMCACHE'; + public const CACHE_TYPE_DISK = 'DISK'; - const CACHE_LOCKING_ENABLED = 1; - const CACHE_LOCKING_DISABLED = 0; + public const CACHE_LOCKING_ENABLED = 1; + public const CACHE_LOCKING_DISABLED = 0; static private $instance; static public $cache_type; diff --git a/src/Sifo/Cache/Base.php b/src/Sifo/Cache/Base.php index c669cde5..2cead7ed 100644 --- a/src/Sifo/Cache/Base.php +++ b/src/Sifo/Cache/Base.php @@ -30,14 +30,14 @@ class CacheBase * * @var string */ - const CACHE_TAG_STORE_FORMAT = '!tag-%s=%s'; + public const CACHE_TAG_STORE_FORMAT = '!tag-%s=%s'; /** * Contains all the tags together at their current version. * * This cache key avoids asking every TAG to cache and concentrate them all in a single call. */ - const CACHE_TAG_VERSIONS = '!tags-versions-%s'; + public const CACHE_TAG_VERSIONS = '!tags-versions-%s'; /** * Contains the original cache object. diff --git a/src/Sifo/Cache/Lock.php b/src/Sifo/Cache/Lock.php index 45ebe30d..439de179 100644 --- a/src/Sifo/Cache/Lock.php +++ b/src/Sifo/Cache/Lock.php @@ -23,13 +23,13 @@ class CacheLock { /** Maximum time a lock is effective. */ - const TTL = 8; + public const TTL = 8; /** Time until the next locking check is performed (in microseconds). */ - const WAIT_TIME = 100000; // 0,1 seconds + public const WAIT_TIME = 100000; // 0,1 seconds /** Cache key prefix. */ - const KEY_PREFIX = '$LOCK$'; + public const KEY_PREFIX = '$LOCK$'; /** @var string */ protected $lock_id; @@ -38,7 +38,7 @@ class CacheLock protected $key; /** @var CacheLock[] */ - private static $instances; + private static array $instances; /** @var CacheBase */ protected $cache_object; @@ -82,8 +82,6 @@ public function isLocked() /** * Acquire lock. - * - * @return boolean */ public function acquire() { diff --git a/src/Sifo/Client.php b/src/Sifo/Client.php index 09b7c1ba..b34c0bb7 100644 --- a/src/Sifo/Client.php +++ b/src/Sifo/Client.php @@ -31,10 +31,8 @@ class Client /** * Filter server. - * - * @var FilterServer */ - static private $server; + static private \Sifo\FilterServer $server; /** * Singleton of Client class. diff --git a/src/Sifo/Config.php b/src/Sifo/Config.php index a0f98f9e..f46dc03c 100644 --- a/src/Sifo/Config.php +++ b/src/Sifo/Config.php @@ -62,9 +62,12 @@ class Config * @var array */ protected $paths_to_configs = array(); + protected $instance_name = 'default'; + private string $config_path = ''; - protected function __construct( $instance_name ) + protected function __construct( $instance_name = 'default') { + $config = []; $this->instance_name = $instance_name; if ( $instance_name === 'tests' ) { @@ -91,13 +94,13 @@ protected function __construct( $instance_name ) /** * Singleton of config class. * - * @param string $instance_name Instance Name, needed to determine correct paths. + * @param string|null $instance_name Instance Name, needed to determine correct paths. * @return Config */ public static function getInstance( $instance_name = null ) { // Load instance from bootsrap - if ( !isset( $instance_name ) ) + if ( is_null( $instance_name ) ) { $instance_name = Bootstrap::$instance; } @@ -119,6 +122,7 @@ public static function getInstance( $instance_name = null ) */ protected function loadConfig( $profile ) { + $config = null; if( !isset( $this->paths_to_configs[$profile] ) ) { throw new Exception_Configuration( "The profile '$profile' was not found" ); @@ -132,7 +136,7 @@ protected function loadConfig( $profile ) else { // The file was correctly included. We include the variable $config found. - if ( !isset( $config ) ) + if ( is_null( $config ) ) { throw new Exception_Configuration( 'The configuration files must have a variable named $config' ); } diff --git a/src/Sifo/Controller.php b/src/Sifo/Controller.php index e3097a1d..4662f279 100644 --- a/src/Sifo/Controller.php +++ b/src/Sifo/Controller.php @@ -27,14 +27,14 @@ abstract class Controller /** * Cache expiration time default for exceptions. */ - const CACHE_DEFAULT_EXPIRATION_EXCEPTIONS = 10; // secs. + public const CACHE_DEFAULT_EXPIRATION_EXCEPTIONS = 10; // secs. /** * Cache expiration for this controller, by default set to 4 hours (expressed in seconds). * * @var integer */ - const CACHE_DEFAULT_EXPIRATION = 14400; + public const CACHE_DEFAULT_EXPIRATION = 14400; /** * Information useful for debugging. @@ -119,8 +119,9 @@ abstract class Controller * @var string */ protected $layout; + private array $url_definition = []; - abstract function build(); + abstract function build(); public function __construct() { @@ -195,7 +196,7 @@ protected function getValidatedForm( $submit_button, $form_config, $default_fiel { $post = FilterPost::getInstance(); - $form = new Form( $post, $this->view ); + $form = new Form( $post ); if ( $post->isSent( $submit_button ) ) { $return = $form->validateElements( $form_config ); @@ -430,7 +431,7 @@ public function dispatch($container = null) } $json_callback = FilterGet::getInstance()->getString( 'json_callback' ); - $content = ( $json_callback ? $json_callback . '(' . json_encode( $return ) . ')': json_encode( $return ) ); + $content = ( $json_callback ? $json_callback . '(' . json_encode( $return, JSON_THROW_ON_ERROR ) . ')': json_encode( $return, JSON_THROW_ON_ERROR ) ); } else { @@ -808,12 +809,12 @@ public function getParam( $param_name ) /** * Return a param results from expected definition parse. * - * @param string $param_name + * @param string|null $param_name * @return mixed */ public function getParsedParam( $param_name ) { - if ( !empty( $this->params['parsed_params'] ) && isset( $param_name, $this->params['parsed_params'], $this->params['parsed_params'][$param_name] ) ) + if ( !empty( $this->params['parsed_params'] ) && isset($this->params['parsed_params'], $this->params['parsed_params'][$param_name] ) ) { return $this->params['parsed_params'][$param_name]; } @@ -1021,13 +1022,13 @@ protected function parseParams() } } - if ( empty( $expected_params ) && ( empty( $this->params['params'] ) || empty( $expected_url_params ) ) ) + if ( empty( $expected_params ) && ( empty( $this->params['params'] ) ) ) { return array(); } // Expected params: - $max = ( count( $this->params['params'] ) - 1 ); // -1 because the last param never is a param key and to avoid asking a non existing key. + $max = ( (is_countable($this->params['params']) ? count( $this->params['params'] ) : 0) - 1 ); // -1 because the last param never is a param key and to avoid asking a non existing key. if ( count( $expected_url_params ) ) { diff --git a/src/Sifo/Cookie.php b/src/Sifo/Cookie.php index 7ad4507c..42356867 100644 --- a/src/Sifo/Cookie.php +++ b/src/Sifo/Cookie.php @@ -60,11 +60,11 @@ static public function set( $name, $value, $days = 14, $domain = false ) if ( 0 == $days ) { - $result = setcookie( $name, $value, 0, self::$path, self::$domain ); + $result = setcookie( $name, $value, ['expires' => 0, 'path' => self::$path, 'domain' => self::$domain] ); } else { - $result = setcookie( $name, $value, time() + ( 86400 * $days ), self::$path, self::$domain ); + $result = setcookie( $name, $value, ['expires' => time() + ( 86400 * $days ), 'path' => self::$path, 'domain' => self::$domain] ); } if ( !$result ) { @@ -81,7 +81,7 @@ static public function set( $name, $value, $days = 14, $domain = false ) static public function delete( $name ) { self::_initDomain(); - $result = setcookie( $name, '', time() - 3600, self::$path, self::$domain ); + $result = setcookie( $name, '', ['expires' => time() - 3600, 'path' => self::$path, 'domain' => self::$domain] ); if ( !$result ) { trigger_error( "COOKIE DELETE FAIL: Tried to delete '$name' but failed." ); diff --git a/src/Sifo/Database.php b/src/Sifo/Database.php index 91458d6a..88b21e15 100644 --- a/src/Sifo/Database.php +++ b/src/Sifo/Database.php @@ -50,35 +50,33 @@ class Database /** * Stores the current query type needed. - * - * @var integer */ - static private $destination_type; + static private string $destination_type = ''; /** * Identifies a query as write operation and is sent to the master. * * @var integer */ - const TYPE_MASTER = 'master'; + public const TYPE_MASTER = 'master'; /** * Identifies a query as read operation and is sent to a slave. * * @var integer */ - const TYPE_SLAVE = 'slave'; + public const TYPE_SLAVE = 'slave'; /** * No need to identify a query because is a single server. * * @var integer */ - const TYPE_SINGLE_SERVER = 'single_server'; + public const TYPE_SINGLE_SERVER = 'single_server'; // Methods capable to be marked as duplicates: // Input in lower case: - private $methods_whitout_duplicated_validation = array( + private array $methods_whitout_duplicated_validation = array( 'prepare', 'affected_rows', 'insert_id', @@ -239,7 +237,7 @@ public function __call( $method, $args ) //call adodb methods $this->writeDiskLog( $error ); // Command Line scripts show the exception since there is no debug to getvacvar it. - if ( class_exists( 'Sifo\CLBootstrap', false ) ) + if ( class_exists( \Sifo\CLBootstrap::class, false ) ) { throw $e; } @@ -254,7 +252,7 @@ public function __call( $method, $args ) //call adodb methods $resultset = $answer; } - $this->queryDebug( $resultset, $tag, $method, $read_operation, isset( $error ) ? $error : null ); + $this->queryDebug( $resultset, $tag, $method, $read_operation, $error ?? null ); // Reset queries in master flag: self::$launch_in_master = false; @@ -346,7 +344,7 @@ protected function queryDebug( $resultset, $tag, $method, $read_operation, $erro // Show a table with the method name and number (functions: Affected_Rows, Last_InsertID "resultset" => is_integer( $resultset ) ? array( array( $method => $resultset ) ) : $resultset, "time" => $query_time, - "error" => ( isset( $error ) ? $error : false ), + "error" => ( $error ?? false ), "duplicated" => false ); @@ -400,6 +398,7 @@ protected function queryDebug( $resultset, $tag, $method, $read_operation, $erro */ public function getCallerClass() { + $classes = []; $trace = debug_backtrace(); $i = 1; foreach( $trace as $steps ) diff --git a/src/Sifo/Debug.php b/src/Sifo/Debug.php index 0a38026a..cb8a6c0a 100644 --- a/src/Sifo/Debug.php +++ b/src/Sifo/Debug.php @@ -27,27 +27,23 @@ class Debug { /** * Array where all the storage is done. - * - * @var array */ - private static $storage = array(); + private static array $storage = array(); /** * Debug config configuration. - * @var array */ - private static $debug_config = array(); + private static array $debug_config = array(); /** * Defines if all debug modules ara availables. That's defined in debug_config.config.php - * @var bool */ - private static $all_modules_available = true; + private static bool $all_modules_available = true; /** * @var string Identifier of the current request execution. It will be set from the debug/index.ctrl in order to get it from the Controller in case of a JSON execution. */ - private static $execution_key; + private static string $execution_key; /** * Avoid external construction of class without singleton usage. @@ -71,13 +67,14 @@ private function __construct() */ public static function log( $message, $type = 'log', $display = 'html' ) { + $message_log = []; $is_object = false; if ( $display != 'html') { if ( is_array( $message ) || is_object( $message ) ) { $is_object = true; - $message = "'" . str_replace( "'", "\\'", json_encode( $message ) ) . "'"; + $message = "'" . str_replace( "'", "\\'", json_encode( $message, JSON_THROW_ON_ERROR ) ) . "'"; } else { @@ -237,7 +234,7 @@ public static function getExecutionKey() { if ( !isset( self::$execution_key ) ) { - self::$execution_key = md5( time() . rand() ); + self::$execution_key = md5( time() . random_int(0, mt_getrandmax()) ); } return self::$execution_key; diff --git a/src/Sifo/Debug/DataBaseHandler.php b/src/Sifo/Debug/DataBaseHandler.php index 777e6522..3a9a21b7 100644 --- a/src/Sifo/Debug/DataBaseHandler.php +++ b/src/Sifo/Debug/DataBaseHandler.php @@ -13,24 +13,26 @@ class DebugDataBaseHandler /** * @var string Path to store the Sifo database (set in the class constructor in order to build it based on the ROOT_PATH). */ - private $db_path; + private string $db_path; /** * @var string Sifo database name */ - private $db_name = 'sifo.sqlite3'; + private string $db_name = 'sifo.sqlite3'; /** * @var string table to store execution debugs name */ - private $table_name = 'execution_debugs'; + private string $table_name = 'execution_debugs'; /** * @var int We'll keep the executions of the last $days_to_keep_debugs days in the database */ - private $days_to_keep_debugs = 1; + private int $days_to_keep_debugs = 1; + /** @var PDO */ + private ?PDO $persistence; - /** + /** * Connects to the Sifo database and initializes the debug table if it doesn't exists */ function __construct() @@ -100,8 +102,11 @@ public function saveExecutionDebug( $execution_key, $url, $debug_content, $is_js $statement->bindParam( ':execution_key', $execution_key, PDO::PARAM_STR ); $statement->bindParam( ':url', $url, PDO::PARAM_STR ); - $encoded_debug = json_encode( $debug_content ); - $statement->bindParam( ':debug_content', $encoded_debug , PDO::PARAM_STR ); + try { + $encoded_debug = json_encode( $debug_content, JSON_THROW_ON_ERROR ); + $statement->bindParam( ':debug_content', $encoded_debug , PDO::PARAM_STR ); + } catch (\Throwable $exception) { + } $statement->bindParam( ':is_json', $is_json, PDO::PARAM_INT ); $statement->bindParam( ':timestamp', $timestamp, PDO::PARAM_INT ); @@ -202,7 +207,7 @@ public function getExecutionDebugWithChildrenById( $execution_key ) */ private function unmapExecutionDebugData( $execution_debug_data ) { - $execution_debug_data['debug_content'] = json_decode( $execution_debug_data['debug_content'], true ); + $execution_debug_data['debug_content'] = json_decode( $execution_debug_data['debug_content'], true, 512, JSON_THROW_ON_ERROR ); $execution_debug_data['date_time'] = new DateTime( '@' . $execution_debug_data['timestamp'] ); $execution_debug_data['date_time'] = $execution_debug_data['date_time']->format( 'Y-m-d H:i:s' ); diff --git a/src/Sifo/Debug/Mysql.php b/src/Sifo/Debug/Mysql.php index 9abb00bf..0eb38fdb 100644 --- a/src/Sifo/Debug/Mysql.php +++ b/src/Sifo/Debug/Mysql.php @@ -192,21 +192,19 @@ class DebugMysql extends Mysql * * @var DebugMysql Object. */ - static private $instance = NULL; + static private ?\Sifo\DebugMysql $instance = NULL; /** * The statement class that will be used. * * @var string */ - const STATEMENT_CLASS = '\\Sifo\\DebugMysqlStatement'; + public const STATEMENT_CLASS = '\\Sifo\\DebugMysqlStatement'; /** * Executed queries. - * - * @var array */ - static private $executed_queries = array(); + static private array $executed_queries = array(); /** * Singleton static method. @@ -245,7 +243,7 @@ public function query($statement) $query_time = Benchmark::getInstance()->timingCurrentToRegistry( 'db_queries' ); - $this->setDebug( $statement, $query_time, $context, $result, $this->db_params, $this->pdo ); + static::setDebug($statement, $query_time, $context, $result, $this->db_params, $this->pdo); return $result; } diff --git a/src/Sifo/Debug/PredisProxyClient.php b/src/Sifo/Debug/PredisProxyClient.php index bc4d2bf9..1a29cd97 100644 --- a/src/Sifo/Debug/PredisProxyClient.php +++ b/src/Sifo/Debug/PredisProxyClient.php @@ -25,6 +25,7 @@ public function __call( $method, $args ) public function getCallerClass() { + $classes = []; $trace = debug_backtrace(); foreach( $trace as $steps ) { diff --git a/src/Sifo/Debug/Search.php b/src/Sifo/Debug/Search.php index 1e1054f5..6460560c 100644 --- a/src/Sifo/Debug/Search.php +++ b/src/Sifo/Debug/Search.php @@ -38,7 +38,7 @@ class DebugSearch extends Search /** * @var array Text related to sort functions. Needed to show it in the debug. */ - private $sort_text = array( + private array $sort_text = array( 0 => "SPH_SORT_RELEVANCE", 1 => "SPH_SORT_ATTR_DESC", 2 => "SPH_SORT_ATTR_ASC", @@ -50,7 +50,7 @@ class DebugSearch extends Search /** * @var array Text related to group by functions. Needed to show it in the debug. */ - private $group_text = array( + private array $group_text = array( 0 => "SPH_GROUPBY_DAY", 1 => "SPH_GROUPBY_WEEK", 2 => "SPH_GROUPBY_MONTH", @@ -112,6 +112,7 @@ public function SetGroupBy( $attribute, $func, $groupsort = "@group desc" ) */ public function SetFilter( $attribute, $values, $exclude = false ) { + $filter_debug = []; $this->sphinx->SetFilter( $attribute, $values, $exclude ); $filter_debug['attribute'] = $attribute; @@ -131,6 +132,7 @@ public function SetFilter( $attribute, $values, $exclude = false ) */ public function SetFilterRange( $attribute, $min, $max, $exclude = false ) { + $filter_debug = []; $this->sphinx->SetFilterRange( $attribute, $min, $max, $exclude ); $filter_debug['attribute'] = $attribute; @@ -174,9 +176,9 @@ public function RunQueries( $tag = '' ) foreach( $sphinx_results as $key => $result ) { $this->query_debug['queries'][$key]['resultset'] = $result; - $this->query_debug['queries'][$key]['total_found'] = ( isset( $result['total_found'] ) ) ? $result['total_found'] : 0; + $this->query_debug['queries'][$key]['total_found'] = $result['total_found'] ?? 0; $this->query_debug['queries'][$key]['returned_rows'] = ( isset( $result['matches'] ) ) ? count( $result['matches'] ) : 0; - $this->query_debug['queries'][$key]['error'] = ( isset( $result['error'] ) ) ? $result['error'] : ''; + $this->query_debug['queries'][$key]['error'] = $result['error'] ?? ''; } } @@ -272,6 +274,7 @@ public function Query( $query_filters, $sphinx_indexes, $comment = "" ) */ public function getCallerClass() { + $classes = []; $trace = debug_backtrace(); foreach( $trace as $steps ) { diff --git a/src/Sifo/Debug/Sphinxql.php b/src/Sifo/Debug/Sphinxql.php index c4e8ac81..f72dace7 100644 --- a/src/Sifo/Debug/Sphinxql.php +++ b/src/Sifo/Debug/Sphinxql.php @@ -28,12 +28,12 @@ class DebugSphinxql extends Sphinxql /** * @var array Query debug information. */ - private $query_debug = array(); + private array $query_debug = array(); /** * @var array Queries to execute in multiQuery method. */ - private $queries; + private array $queries; /** * Redefines multiQuery method adding debug information. diff --git a/src/Sifo/DependencyInjector.php b/src/Sifo/DependencyInjector.php index a3eb836f..cf9765e3 100644 --- a/src/Sifo/DependencyInjector.php +++ b/src/Sifo/DependencyInjector.php @@ -49,8 +49,7 @@ class DependencyInjector implements ContainerInterface * @var array */ protected $service_definitions; - /** @var null|ContainerInterface */ - private static $container; + private static ?\Psr\Container\ContainerInterface $container = null; /** * Private constructor, use getInstance() instead to get an instance. diff --git a/src/Sifo/Dir.php b/src/Sifo/Dir.php deleted file mode 100644 index 988fc42f..00000000 --- a/src/Sifo/Dir.php +++ /dev/null @@ -1,140 +0,0 @@ - Filename or Dirname - * "relative" => Path relative to the starting point - * "absolute" => Absolute path - * "folder" => Parent folder - * - * @param string $base_path Path to starting directory. - * @param string $relative_path Relative path added to base_path. If you have /path/to/dir and specify "dir" as relative_path then will list files in /path/to as dir/file1, dir/file2 ... - */ - public function getFileListRecursive( $base_path, $relative_path = "" ) - { - // If base path ends in / remove it. - if ( substr( $base_path, -1, 1 ) == "/" ) - { - $base_path = substr( $base_path, 0, -1 ); - } - // If relative path starts in / remove it. - if ( substr( $relative_path, 0, 1 ) == "/" ) - { - $relative_path = substr( $relative_path, 1 ); - } - - $path = $base_path . "/" . $relative_path; - - if ( !is_dir( $path ) ) - { - return false; - } - - $list = array(); - - $directory = opendir( "$path" ); - - while ( $file = readdir( $directory ) ) - { - if ( !in_array( $file, $this->ignored_files ) ) - { - $f = $path . "/" . $file; - $f = preg_replace( '/(\/){2,}/', '/', $f ); // Replace double slashes. - if ( is_file( $f ) ) - { - $list[] = array( "filename" => $file, "relative" => $relative_path . "/$file", "absolute" => $f, "folder"=> $relative_path ); - } - - if ( is_dir( $f ) ) // Ignore _smarty dir - { - $list = array_merge( $list, $this->getFileListRecursive( $base_path, $relative_path . "/$file" ) ); // Recursive call. - } - } - } - closedir( $directory ); - sort( $list ); - return $list ; - } - - /** - * Get subdirs - * - * @param string $path - * @param string $relative_path - * @return array - */ - public function getDirs( $path ) - { - if ( !is_dir( $path ) ) - { - return false; - } - - $list = array(); - - $directory = opendir( "$path" ); - - while ( $file = readdir( $directory ) ) - { - if ( !in_array( $file, $this->ignored_files ) ) - { - $f = $path . "/" . $file; - $f = preg_replace( '/(\/){2,}/', '/', $f ); // Replace double slashes. - - if ( is_dir( $f ) ) - { - $list[] = $file; - } - } - } - closedir( $directory ); - sort( $list ); - - return $list; - } - - public function setIgnore( Array $ignored_files ) - { - $this->ignored_files = $ignored_files; - } - -} -?> \ No newline at end of file diff --git a/src/Sifo/Domains.php b/src/Sifo/Domains.php index cfd75dbc..c84f0663 100644 --- a/src/Sifo/Domains.php +++ b/src/Sifo/Domains.php @@ -72,7 +72,7 @@ private function __construct( $host = null ) { $host_data = explode( ':', $filter_server->getString( "HTTP_HOST" ) ); // Explode hostname and port. $this->http_host = $host_data[0]; - $this->port = isset( $host_data[1] ) ? $host_data[1] : null; + $this->port = $host_data[1] ?? null; } $this->domain_configuration = Config::getInstance()->getConfig( 'domains' ); @@ -288,7 +288,6 @@ public function getDebugMode() /** * Change debug mode during the execution. - * @return bool */ public function setDebugMode( $mode ) { diff --git a/src/Sifo/Exceptions.php b/src/Sifo/Exceptions.php index 3d344eb7..13ccf37a 100644 --- a/src/Sifo/Exceptions.php +++ b/src/Sifo/Exceptions.php @@ -113,7 +113,7 @@ public function serialize() public function unserialize($serialized) { - list( $this->code, $this->message, $this->http_code, $this->http_code_msg, $this->redirect ) = unserialize( $serialized ); + [$this->code, $this->message, $this->http_code, $this->http_code_msg, $this->redirect] = unserialize( $serialized ); } } diff --git a/src/Sifo/Filter.php b/src/Sifo/Filter.php index bec99f16..2cd12f82 100644 --- a/src/Sifo/Filter.php +++ b/src/Sifo/Filter.php @@ -33,7 +33,7 @@ class Filter * Regular expression for email validation. * If you want to know why we're not using the filter_var method with the FILTER_VALIDATE_EMAIL flag, see: https://groups.google.com/forum/?hl=en#!topic/sifophp/5o0tkI2nC44 */ - const VALID_EMAIL_REGEXP = '/^(([a-z0-9_%\-]+\.?)+)?(\+(([a-z0-9_%\-]+\.?)|)+)?[a-z0-9\-_]@(([a-z0-9\-]+)?[a-z0-9]\.)+([a-z]{2}|com|edu|org|net|biz|info|name|aero|biz|info|jobs|travel|museum|name|cat|asia|coop|jobs|mobi|tel|pro|arpa|gov|mil|int|post|xxx|gold)$/i'; + public const VALID_EMAIL_REGEXP = '/^(([a-z0-9_%\-]+\.?)+)?(\+(([a-z0-9_%\-]+\.?)|)+)?[a-z0-9\-_]@(([a-z0-9\-]+)?[a-z0-9]\.)+([a-z]{2}|com|edu|org|net|biz|info|name|aero|biz|info|jobs|travel|museum|name|cat|asia|coop|jobs|mobi|tel|pro|arpa|gov|mil|int|post|xxx|gold)$/i'; /** * Singleton object. @@ -104,7 +104,7 @@ public function isEmpty( $var_name ) */ public function countVars() { - return count( $this->request ); + return count( (array) $this->request ); } @@ -256,6 +256,7 @@ public function getInteger( $var_name, $min_range = null, $max_range = null ) */ public function getIP( $var_name, $min_range = null, $max_range = null ) { + $options = []; if ( !isset( $this->request[$var_name] ) ) { return false; @@ -289,6 +290,7 @@ public function getRegexp( $var_name, $regexp ) public function getUrl( $var_name ) { + $options = []; if ( !isset( $this->request[$var_name] ) ) { return false; diff --git a/src/Sifo/FlashMessages.php b/src/Sifo/FlashMessages.php index ea84d7a5..00a0a649 100644 --- a/src/Sifo/FlashMessages.php +++ b/src/Sifo/FlashMessages.php @@ -25,13 +25,13 @@ */ class FlashMessages { - const MSG_KO = 'msg_ko'; - const MSG_OK = 'msg_ok'; - const MSG_WARNING = 'msg_warning'; - const MSG_INFO = 'msg_info'; + public const MSG_KO = 'msg_ko'; + public const MSG_OK = 'msg_ok'; + public const MSG_WARNING = 'msg_warning'; + public const MSG_INFO = 'msg_info'; - const STORAGE_REGISTRY = 1; - const STORAGE_SESSION = 2; + public const STORAGE_REGISTRY = 1; + public const STORAGE_SESSION = 2; /** * Store the message in registry. @@ -42,6 +42,7 @@ class FlashMessages */ static public function set( $message, $type = self::MSG_OK, $storage_engine = self::STORAGE_REGISTRY ) { + $flash_messages = []; switch ( $type ) { case self::MSG_KO: diff --git a/src/Sifo/Form.php b/src/Sifo/Form.php index c25f3c32..e35fb212 100644 --- a/src/Sifo/Form.php +++ b/src/Sifo/Form.php @@ -218,7 +218,7 @@ public function validateElements( $form_config ) ( isset( $element['required']) && $element['required'] ), // Boolean: Field is required? $element['name'], // Name of the input $element['filter'], // Filter rule to apply - ( isset( $element['params'] ) ? $element['params'] : array() ) // Passed params + ( $element['params'] ?? array() ) // Passed params ); if ( !$single_element_validation ) diff --git a/src/Sifo/Headers.php b/src/Sifo/Headers.php index 943047bb..4d42636d 100644 --- a/src/Sifo/Headers.php +++ b/src/Sifo/Headers.php @@ -53,12 +53,12 @@ class Headers /** * Headers that are status codes. E.g: "HTTP/1.0 404 Not Found" */ - const FORMAT_TYPE_STATUS = 'HTTP/1.0 %s %s'; + public const FORMAT_TYPE_STATUS = 'HTTP/1.0 %s %s'; /** * Headers made of a key and a value. E.g: "WWW-Authenticate: Negotiate" */ - const FORMAT_KEY_VALUE = '%s: %s'; + public const FORMAT_KEY_VALUE = '%s: %s'; /** * List of all the headers sent by the application so far. diff --git a/src/Sifo/I18N.php b/src/Sifo/I18N.php index 74a60567..3e8da26c 100644 --- a/src/Sifo/I18N.php +++ b/src/Sifo/I18N.php @@ -76,13 +76,6 @@ class I18N */ static public $instance_translations = null; - /** - * LanguageDetect class instance. - * - * @var \GoogleTranslateWrapper - */ - static protected $google_translate_api_instance; - /** * Private constructor, use getInstance() instead of this to get the object. */ @@ -132,6 +125,7 @@ static public function setDomain( $domain, $locale, $instance = null ) */ static protected function bindTextDomain( $instance = null ) { + $translations = null; // Only if gettext is enabled: // setlocale( LC_ALL, self::$locale ); // bindtextdomain( self::$domain, PATH_LOCALE ); @@ -155,7 +149,7 @@ static protected function bindTextDomain( $instance = null ) $translations_file = Config::getInstance( $instance )->getConfig( 'locale', self::$active_domain_and_locale ); include( ROOT_PATH . "/$translations_file" ); - if ( !isset( $translations ) ) + if ( is_null( $translations ) ) { throw new Exception_500( 'Failed to include a valid translations file for domain ' . self::$domain . ' and language ' . self::$locale ); } @@ -234,41 +228,4 @@ static public function getLocale() return self::$locale; } - - /** - * Identify the used language. - * - * @param string $text The text to identify. - * @return string Language Iso. - */ - static public function identifyUsedLanguage( $text ) - { - if ( !( isset( self::$google_translate_api_instance ) ) ) - { - include_once ROOT_PATH . '/vendor/sifophp/sifo/src/' . Config::getInstance()->getLibrary( 'googleTranslate' ) . '/googleTranslate.class.php'; - self::$google_translate_api_instance = new \GoogleTranslateWrapper(); - } - $result = self::$google_translate_api_instance->detectLanguage( $text ); - - return $result['language']; - } - - /** - * - * @param string $text Texto to translate - * @param string $dest_iso Language destination - * @return string Translated text. - */ - static public function translateTo( $text, $dest_iso ) - { - if ( !( isset( self::$google_translate_api_instance ) ) ) - { - include_once ROOT_PATH . '/vendor/sifophp/sifo/src/' . Config::getInstance()->getLibrary( 'googleTranslate' ) . '/googleTranslate.class.php'; - self::$google_translate_api_instance = new \GoogleTranslateWrapper(); - } - self::$google_translate_api_instance->translatedText = ''; - - return self::$google_translate_api_instance->translate( $text, $dest_iso ); - } - } diff --git a/src/Sifo/JsPacker.php b/src/Sifo/JsPacker.php index 670a67ab..19ad8c2f 100644 --- a/src/Sifo/JsPacker.php +++ b/src/Sifo/JsPacker.php @@ -71,6 +71,7 @@ protected function getPackedContent( Array $media_list, $prepend_string = '' ) */ protected function getBasePathConfig( Array $media_list ) { + $base_array = []; $base_code = <<instance_static_host}", Hash = window.Hash ? window.Hash : "unset", diff --git a/src/Sifo/LoadBalancer.php b/src/Sifo/LoadBalancer.php index 44fcd157..d453d292 100644 --- a/src/Sifo/LoadBalancer.php +++ b/src/Sifo/LoadBalancer.php @@ -32,7 +32,7 @@ abstract class LoadBalancer * Time in seconds the servers will be cached after checking if they are online. * @var integer */ - const CACHE_EXPIRATION = 60; + public const CACHE_EXPIRATION = 60; /** * Name of the cache where the results of server status are stored. @@ -96,7 +96,7 @@ public function setNodes( array $nodes ) $this->total_weights = $available_servers['total_weights']; } - $num_nodes = count( $this->nodes ); + $num_nodes = count( (array) $this->nodes ); if ( 1 > $num_nodes ) { @@ -136,7 +136,7 @@ public function get() throw new LoadBalancer_Exception( "There aren't any nodes set in the balancer. Have you called setNodes( Array nodes ) ?" ); } - $x = round( mt_rand( 0, $this->total_weights ) ); + $x = round( random_int( 0, $this->total_weights ) ); $max = ( $i = 0 ); do diff --git a/src/Sifo/Mail.php b/src/Sifo/Mail.php index e5ba6434..ff005f31 100644 --- a/src/Sifo/Mail.php +++ b/src/Sifo/Mail.php @@ -29,10 +29,7 @@ class Mail */ protected $mail; - /** - * @var self - */ - static private $instance; + static private self $instance; /** * Singleton of Client class. diff --git a/src/Sifo/MediaGenerator.php b/src/Sifo/MediaGenerator.php index 0fcbc7d7..f940f9d4 100644 --- a/src/Sifo/MediaGenerator.php +++ b/src/Sifo/MediaGenerator.php @@ -240,6 +240,7 @@ protected function buildMediaArray( array $media_config ) protected function getGeneratedHashes() { + $revision = null; if ( Domains::getInstance()->getDevMode() ) { return false; @@ -259,7 +260,7 @@ protected function getGeneratedHashes() protected function isGeneratedFilesUpToDate( $revision ) { - $checkout_revision = $this->getCheckoutRevision(); + $checkout_revision = static::getCheckoutRevision(); return ( $checkout_revision === $revision ); } @@ -278,12 +279,14 @@ public static function getCheckoutRevision( $root_path = ROOT_PATH ) protected function getHashesFileContent( Array $generated ) { - $revision = $this->getCheckoutRevision(); + $revision = static::getCheckoutRevision(); return "media_config['packages'] as $group => $media_config ) { @@ -538,6 +541,7 @@ public static function getInstance() */ protected function getBaseCode( Array $media_list, Array $generated_files ) { + $base_array = []; if ( count( $media_list ) !== count( $generated_files ) ) { trigger_error( 'The number of groups does not match the number of files generated!', E_USER_WARNING ); diff --git a/src/Sifo/Metadata.php b/src/Sifo/Metadata.php index 1361300d..c54edec2 100644 --- a/src/Sifo/Metadata.php +++ b/src/Sifo/Metadata.php @@ -137,6 +137,7 @@ static private function _replaceVars( $metadata, $metadata_info ) */ static public function set( $key, $value, $is_metadata_key = false ) { + $metadata_information = []; $registry = Registry::getInstance(); if ( $registry->keyExists( 'metadata_information' ) ) { diff --git a/src/Sifo/Mysql.php b/src/Sifo/Mysql.php index 3285d69b..4ec12044 100644 --- a/src/Sifo/Mysql.php +++ b/src/Sifo/Mysql.php @@ -113,7 +113,7 @@ class Mysql * * @var Mysql Object. */ - static private $instance = NULL; + static private ?\Sifo\Mysql $instance = NULL; /** * The PDO instance. @@ -134,7 +134,7 @@ class Mysql * * @var string */ - const STATEMENT_CLASS = '\\Sifo\\MysqlStatement'; + public const STATEMENT_CLASS = '\\Sifo\\MysqlStatement'; /** * Initializes the PDO object with the domains.config.php database configuration. @@ -158,7 +158,7 @@ public function __construct( $profile ) $init_commands ); - $class = get_called_class(); + $class = static::class; $this->pdo->setAttribute( PDO::ATTR_STATEMENT_CLASS, array( $class::STATEMENT_CLASS, array( $this->pdo, $profile ) ) ); } diff --git a/src/Sifo/Password.php b/src/Sifo/Password.php index d2a18514..73ddd872 100644 --- a/src/Sifo/Password.php +++ b/src/Sifo/Password.php @@ -122,7 +122,7 @@ private function crypt_private( $password, $setting ) if ( $id != '$P$' && $id != '$H$' ) return $output; - $count_log2 = strpos( $this->itoa64, $setting[3] ); + $count_log2 = strpos( $this->itoa64, (string) $setting[3] ); if ( $count_log2 < 7 || $count_log2 > 30 ) return $output; diff --git a/src/Sifo/RedisModel.php b/src/Sifo/RedisModel.php index 862cdb6d..189fa765 100644 --- a/src/Sifo/RedisModel.php +++ b/src/Sifo/RedisModel.php @@ -29,9 +29,9 @@ class RedisModel { /** * Redis client object. - * @var \Predis\Client + * @var \Predis\Client[] $connected_client */ - private static $connected_client = array(); + private static array $connected_client = array(); private $profile; diff --git a/src/Sifo/Registry.php b/src/Sifo/Registry.php index dac7073e..7dc5c994 100644 --- a/src/Sifo/Registry.php +++ b/src/Sifo/Registry.php @@ -33,10 +33,8 @@ class Registry /** * Array where all the storage is done. - * - * @var array */ - private static $storage = array(); + private static array $storage = array(); /** * Retrieves the default registry instance. diff --git a/src/Sifo/Search.php b/src/Sifo/Search.php index 39771246..3bcace8b 100644 --- a/src/Sifo/Search.php +++ b/src/Sifo/Search.php @@ -174,6 +174,7 @@ function __call( $method, $args ) */ static function connect( $node_properties ) { + $sphinx = null; if ( true === $node_properties['active'] ) { $sphinx = new \SphinxClient(); diff --git a/src/Sifo/Session.php b/src/Sifo/Session.php index caf5b70b..c207e6de 100644 --- a/src/Sifo/Session.php +++ b/src/Sifo/Session.php @@ -79,7 +79,7 @@ public static function getInstance() /** * Use it to set a single var like $ses->set( 'name', 'val' ); or an array of pairs key-value like $ses->set( array( 'key' => 'val' ) ); * - * @param string|array $name + * @param string|array|null $name * @param string|null $value * @return boolean */ diff --git a/src/Sifo/Session/SessionEnvironmentStrategy.php b/src/Sifo/Session/SessionEnvironmentStrategy.php index 62f19c23..708fe0b0 100644 --- a/src/Sifo/Session/SessionEnvironmentStrategy.php +++ b/src/Sifo/Session/SessionEnvironmentStrategy.php @@ -8,7 +8,7 @@ public function set() { $instance_inheritance = Domains::getInstance()->getInstanceInheritance(); $vertical_instance = array_pop($instance_inheritance); - $instance_environment_initial = isset($_SERVER['APP_ENV'][0]) ? $_SERVER['APP_ENV'][0] : ''; + $instance_environment_initial = $_SERVER['APP_ENV'][0] ?? ''; $instance_session_name = "SSID_{$instance_environment_initial}_{$vertical_instance}"; session_name($instance_session_name); } diff --git a/src/Sifo/Sphinxql.php b/src/Sifo/Sphinxql.php index 39c6c5bb..d4348aeb 100644 --- a/src/Sifo/Sphinxql.php +++ b/src/Sifo/Sphinxql.php @@ -44,7 +44,7 @@ class Sphinxql /** * @var string Multi query string. */ - private $multi_query = ''; + private string $multi_query = ''; /** * Query options. @@ -395,8 +395,7 @@ class LoadBalancerSphinxql extends LoadBalancer */ protected $load_balancer_cache_key = 'BalancedNodesSphinxql'; - /** @var Sphinxql */ - private $sphinxql_object; + private \Sifo\Sphinxql $sphinxql_object; protected function addNodeIfAvailable( $index, $node_properties ) { diff --git a/src/Sifo/Urls.php b/src/Sifo/Urls.php index 91dce9bf..08e13435 100644 --- a/src/Sifo/Urls.php +++ b/src/Sifo/Urls.php @@ -30,10 +30,9 @@ class Urls /** * Singleton Instance. - * - * @var Urls + * @var \Sifo\Urls[] $instance */ - static private $instance; + static private array $instance; /** * Params passed via URL. * @@ -54,16 +53,12 @@ class Urls static public $scheme = 'http'; /** * Evaluated path context. - * - * @var string */ - static private $path = ''; + static private string $path = ''; /** * Splitted path. - * - * @var string */ - static private $path_parts = array( ); + static private array $path_parts = array( ); /** * This is the address the user used to access this webpage. E.g: http://myapp.com * @@ -93,12 +88,10 @@ class Urls static public $url_definition = array( ); /** * Stores all the available URLs. - * - * @var array */ - static private $url_config = array( ); + static private array $url_config = array( ); - private $url_instance_config = array( ); + private array $url_instance_config = array( ); /** * Singleton for managing URLs. Use this static method instead of construct. @@ -122,7 +115,7 @@ static public function getInstance( $instance_name = null ) private function __construct( $instance_name ) { - $domains = Domains::getInstance( $instance_name ); + $domains = Domains::getInstance(); $filter_server = FilterServer::getInstance(); $language = $domains->getLanguage(); @@ -175,7 +168,7 @@ private function __construct( $instance_name ) // Path is the first part of the explode, rest are parameters. self::$path = array_shift( $params_parts ); - if ( count( $params_parts ) > 0 ) + if ( (is_countable($params_parts) ? count( $params_parts ) : 0) > 0 ) { self::$params = $params_parts; } @@ -322,7 +315,7 @@ static public function normalize( $string ) static public function buildUrl( $hostname, $controller, array $actions = array(), array $params = array() ) { $url = Urls::getUrl( $hostname ) . '/'; - $callback = function( $a ) { return urlencode( $a ); }; + $callback = fn($a) => urlencode( $a ); $actions = array_map($callback, $actions ); array_unshift( $actions, Urls::getUrl( $controller ) ); diff --git a/src/Sifo/View.php b/src/Sifo/View.php index 98c62ef2..d7fd560d 100644 --- a/src/Sifo/View.php +++ b/src/Sifo/View.php @@ -25,14 +25,11 @@ */ class View { - /** @var string */ - private $template_path; + private string $template_path = ''; - /** @var ViewSmarty|ViewTwig */ - private $templating_engine; + private ?\Sifo\ViewInterface $templating_engine = null; - /** @var array */ - private $variables = []; + private array $variables = []; public function fetch($template) { diff --git a/src/Sifo/View/Smarty.php b/src/Sifo/View/Smarty.php index 5f378876..25e58fc8 100644 --- a/src/Sifo/View/Smarty.php +++ b/src/Sifo/View/Smarty.php @@ -4,8 +4,8 @@ class ViewSmarty implements ViewInterface { - /** @var \Smarty */ - private $smarty; + private \Smarty $smarty; + private $template_path; public function __construct() { @@ -70,10 +70,7 @@ public function fetch($template) $template, $cache_id = null, $compile_id = null, - $parent = null, - $display = false, - $merge_tpl_vars = true, - $no_output_filter = false + $parent = null ); } catch (\Exception $e) diff --git a/src/Sifo/View/Twig.php b/src/Sifo/View/Twig.php index a98b6544..516776ab 100644 --- a/src/Sifo/View/Twig.php +++ b/src/Sifo/View/Twig.php @@ -4,8 +4,7 @@ class ViewTwig implements ViewInterface { - /** @var \Twig_Environment */ - private $twig; + private \Twig_Environment $twig; private $auto_literal; @@ -13,8 +12,7 @@ class ViewTwig implements ViewInterface private $twig_plugins_directory_path; - /** @var array */ - private $variables = []; + private array $variables = []; public function __construct() { diff --git a/src/Sifo/imageController.php b/src/Sifo/imageController.php index 602f2b62..34f9c00c 100644 --- a/src/Sifo/imageController.php +++ b/src/Sifo/imageController.php @@ -59,6 +59,7 @@ abstract class ImageController extends Controller */ protected function customizeHeader() { + $content_type = null; if ( !( $this->is_gif || $this->is_jpeg || $this->is_png || $this->is_bmp || $this->is_ico ) || ( $this->is_gif + $this->is_jpeg + $this->is_png + $this->is_bmp + $this->is_ico ) > 1 ) { throw new Exception_500( "Please do the favour of use one (and only one) image content_type helper!" ); @@ -115,13 +116,13 @@ protected function grabCache() $cache = new CacheDisk(); $content = $cache->get( $cache_key['name'] ); - return ( $content ? $content : false ); + return ( $content ?: false ); } /** * Dispatch the controller. */ - public function dispatch() + public function dispatch($container = null) { $this->customizeHeader(); diff --git a/src/Smarty-sifo-plugins/block.t.php b/src/Smarty-sifo-plugins/block.t.php index e80c09ea..97301392 100644 --- a/src/Smarty-sifo-plugins/block.t.php +++ b/src/Smarty-sifo-plugins/block.t.php @@ -59,7 +59,7 @@ function smarty_block_t($params, $text, &$smarty) if( ( $smarty == null ) || ( !$smarty->escape_html ) ) { // In the don't protected configuration, the expectd behaviour is escapeing html: - $escape = ( isset($params['escape'] ) )? $params['escape'] : "html"; + $escape = $params['escape'] ?? "html"; unset($params['escape']); if( isset( $params['escapevar'] ) ) @@ -106,7 +106,7 @@ function smarty_block_t($params, $text, &$smarty) $text = \Sifo\I18N::getTranslation( $text ); // run strarg if there are parameters - if (count($params)) { + if (is_countable($params) ? count($params) : 0) { $text = smarty_gettext_strarg($text, $params); } diff --git a/src/Smarty-sifo-plugins/function.email_obfuscator.php b/src/Smarty-sifo-plugins/function.email_obfuscator.php index f8e7505b..75460a03 100644 --- a/src/Smarty-sifo-plugins/function.email_obfuscator.php +++ b/src/Smarty-sifo-plugins/function.email_obfuscator.php @@ -23,9 +23,9 @@ function smarty_function_email_obfuscator($params, &$smarty) { // email address to obfuscate. - $email = ( isset( $params['email'] ) ) ? $params['email'] : ''; + $email = $params['email'] ?? ''; // optional text to show instead the email - $linktext = ( isset( $params['text'] ) ) ? $params['text'] : ''; + $linktext = $params['text'] ?? ''; // style information via class. $style_class = ( isset( $params['class'] ) ) ? ' class=\"' . $params['class'] . '\" ' : ''; // style information via id. @@ -42,16 +42,16 @@ function smarty_function_email_obfuscator($params, &$smarty) $textafter = ''; if ( !empty( $linktext ) ) { - $calling_class = get_called_class(); + $calling_class = static::class; $obj = new $calling_class(); $temp = smarty_block_t( $extra_params, $linktext, $obj); // If the email is inside the text string - $email_position = strpos( $temp, $email ); + $email_position = strpos( $temp, (string) $email ); if ( $email_position ) { // If the email is inside the string we make the link only in the email address $textbefore = substr( $temp, 0, $email_position ); - $textafter = substr( $temp, strpos( $temp, $email ) + strlen( $email ) ); + $textafter = substr( $temp, strpos( $temp, (string) $email ) + strlen( $email ) ); $linktext = ''; } else @@ -64,10 +64,10 @@ function smarty_function_email_obfuscator($params, &$smarty) $character_set = '+-.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'; $key = str_shuffle( $character_set ); $cipher_text = ''; - $id = 'e'.rand( 1, 999999999 ); + $id = 'e'.random_int( 1, 999_999_999 ); for ( $i = 0; $i < strlen( $email ); $i += 1 ) { - $cipher_text.= $key[ strpos( $character_set, $email[ $i ] ) ]; + $cipher_text.= $key[ strpos( $character_set, (string) $email[ $i ] ) ]; } $script = 'var namex="' . $linktext . '";var a="' . $key . '";var b=a.split("").sort().join("");var c="' . $cipher_text . '";var d="";'; $script .= 'for(var e=0;efetch( $aParam['data']['template'] ); } - + return $sOut; - + }//smarty_paginate -?> \ No newline at end of file +?> diff --git a/src/Smarty-sifo-plugins/modifier.link_urls.php b/src/Smarty-sifo-plugins/modifier.link_urls.php index 6c477eb0..6d677237 100644 --- a/src/Smarty-sifo-plugins/modifier.link_urls.php +++ b/src/Smarty-sifo-plugins/modifier.link_urls.php @@ -21,13 +21,11 @@ function smarty_modifier_link_urls($string) { $linkedString = preg_replace_callback( "/\b(https?):\/\/([-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]*)\b/i", - static function($matches) { - return "".($matches[0]).""; - }, + static fn($matches) => "".($matches[0])."", $string ); return $linkedString; } -?> \ No newline at end of file +?> diff --git a/src/Smarty-sifo-plugins/modifier.size_format.php b/src/Smarty-sifo-plugins/modifier.size_format.php index c5ecc173..c5f89b21 100644 --- a/src/Smarty-sifo-plugins/modifier.size_format.php +++ b/src/Smarty-sifo-plugins/modifier.size_format.php @@ -37,7 +37,7 @@ function smarty_modifier_size_format( $size, $decimals=null ) // Kilobytes. $formatted_size = number_format( $size, $decimals, $decimal_separator, $thousand_separator ).' B'; } - elseif ( $size < 1048576 ) + elseif ( $size < 1_048_576 ) { if ( is_null( $decimals ) ) { @@ -46,14 +46,14 @@ function smarty_modifier_size_format( $size, $decimals=null ) // Kylobytes. $formatted_size = number_format( ( $size / 1024 ), $decimals, $decimal_separator, $thousand_separator ).' KB'; } - elseif ( $size < 1073741824 ) + elseif ( $size < 1_073_741_824 ) { if ( is_null( $decimals ) ) { $decimals = 1; } // Megabytes. - $formatted_size = number_format( ( $size / 1048576 ), $decimals, $decimal_separator, $thousand_separator ).' MB'; + $formatted_size = number_format( ( $size / 1_048_576 ), $decimals, $decimal_separator, $thousand_separator ).' MB'; } else { @@ -62,7 +62,7 @@ function smarty_modifier_size_format( $size, $decimals=null ) $decimals = 1; } // Gigabytes. - $formatted_size = number_format( ( $size / 1073741824 ), $decimals, $decimal_separator, $thousand_separator ).' GB'; + $formatted_size = number_format( ( $size / 1_073_741_824 ), $decimals, $decimal_separator, $thousand_separator ).' GB'; } diff --git a/src/Smarty-sifo-plugins/modifier.time_format.php b/src/Smarty-sifo-plugins/modifier.time_format.php index fae1aad1..e34c9c5a 100644 --- a/src/Smarty-sifo-plugins/modifier.time_format.php +++ b/src/Smarty-sifo-plugins/modifier.time_format.php @@ -32,7 +32,7 @@ function smarty_modifier_time_format( $time, $decimals=3 ) { $decimals = 0; } - + $time = $time*1000; if ( $time < 100 ) diff --git a/src/Smarty-sifo-plugins/modifier.time_since.php b/src/Smarty-sifo-plugins/modifier.time_since.php index 3b1ebceb..0224729f 100644 --- a/src/Smarty-sifo-plugins/modifier.time_since.php +++ b/src/Smarty-sifo-plugins/modifier.time_since.php @@ -22,6 +22,7 @@ */ function smarty_modifier_time_since( $diff_time ) { + $value = []; if ( !is_numeric ( $diff_time ) ) $diff_time = strtotime( date("Y-m-d H:i:s") ) - strtotime($diff_time); diff --git a/src/Twig-sifo-plugins/filter.link_urls.php b/src/Twig-sifo-plugins/filter.link_urls.php index 9b6932d6..9b394190 100644 --- a/src/Twig-sifo-plugins/filter.link_urls.php +++ b/src/Twig-sifo-plugins/filter.link_urls.php @@ -3,16 +3,10 @@ function twig_filter_link_urls() { return new \Twig_Filter( - 'link_urls', function ( - $string - ) { - return preg_replace_callback( + 'link_urls', fn($string) => preg_replace_callback( "/\b(https?):\/\/([-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]*)\b/i", - static function ($matches) { - return "".($matches[0]).""; - }, + static fn($matches) => "".($matches[0])."", $string - ); - } + ) ); } diff --git a/src/Twig-sifo-plugins/filter.normalize.php b/src/Twig-sifo-plugins/filter.normalize.php index c6f1c64e..ba8cc194 100644 --- a/src/Twig-sifo-plugins/filter.normalize.php +++ b/src/Twig-sifo-plugins/filter.normalize.php @@ -3,10 +3,6 @@ function twig_filter_normalize() { return new \Twig_Filter( - 'normalize', function ( - $string - ) { - return \Sifo\Urls::normalize($string); - } + 'normalize', fn($string) => \Sifo\Urls::normalize($string) ); } diff --git a/src/Twig-sifo-plugins/filter.size_format.php b/src/Twig-sifo-plugins/filter.size_format.php index 5c678043..f7f8cd21 100644 --- a/src/Twig-sifo-plugins/filter.size_format.php +++ b/src/Twig-sifo-plugins/filter.size_format.php @@ -24,7 +24,7 @@ function twig_filter_size_format() // Kilobytes. $formatted_size = number_format($size, $decimals, $decimal_separator, $thousand_separator) . ' B'; } - elseif ($size < 1048576) + elseif ($size < 1_048_576) { if (null === $decimals) { @@ -33,14 +33,14 @@ function twig_filter_size_format() // Kylobytes. $formatted_size = number_format(($size / 1024), $decimals, $decimal_separator, $thousand_separator) . ' KB'; } - elseif ($size < 1073741824) + elseif ($size < 1_073_741_824) { if (null === $decimals) { $decimals = 1; } // Megabytes. - $formatted_size = number_format(($size / 1048576), $decimals, $decimal_separator, $thousand_separator) . ' MB'; + $formatted_size = number_format(($size / 1_048_576), $decimals, $decimal_separator, $thousand_separator) . ' MB'; } else { @@ -49,7 +49,7 @@ function twig_filter_size_format() $decimals = 1; } // Gigabytes. - $formatted_size = number_format(($size / 1073741824), $decimals, $decimal_separator, $thousand_separator) . ' GB'; + $formatted_size = number_format(($size / 1_073_741_824), $decimals, $decimal_separator, $thousand_separator) . ' GB'; } return $formatted_size; diff --git a/src/Twig-sifo-plugins/filter.time_since.php b/src/Twig-sifo-plugins/filter.time_since.php index 23d5c004..9f975ab2 100644 --- a/src/Twig-sifo-plugins/filter.time_since.php +++ b/src/Twig-sifo-plugins/filter.time_since.php @@ -6,6 +6,7 @@ function twig_filter_time_since() 'time_since', function ( $diff_time ) { + $value = []; if (!is_numeric($diff_time)) { $diff_time = strtotime(date("Y-m-d H:i:s")) - strtotime($diff_time); diff --git a/src/Twig-sifo-plugins/function.email_obfuscator.php b/src/Twig-sifo-plugins/function.email_obfuscator.php index a374f0b2..389571d5 100644 --- a/src/Twig-sifo-plugins/function.email_obfuscator.php +++ b/src/Twig-sifo-plugins/function.email_obfuscator.php @@ -5,9 +5,9 @@ function twig_function_email_obfuscator() return new \Twig_Function( 'email_obfuscator', function (array $args = []) { // email address to obfuscate. - $email = isset($args[0]['email']) ? $args[0]['email'] : ''; + $email = $args[0]['email'] ?? ''; // optional text to show instead the email - $linktext = isset($args[0]['text']) ? $args[0]['text'] : ''; + $linktext = $args[0]['text'] ?? ''; // style information via class. $style_class = isset($args[0]['class']) ? ' class=\"' . $args[0]['class'] . '\" ' : ''; // style information via id. @@ -25,16 +25,16 @@ function twig_function_email_obfuscator() $textafter = ''; if (!empty($linktext)) { - $calling_class = get_called_class(); + $calling_class = static::class; $obj = new $calling_class(); $temp = smarty_block_t($extra_params, $linktext, $obj); // If the email is inside the text string - $email_position = strpos($temp, $email); + $email_position = strpos($temp, (string) $email); if ($email_position) { // If the email is inside the string we make the link only in the email address $textbefore = substr($temp, 0, $email_position); - $textafter = substr($temp, strpos($temp, $email) + strlen($email)); + $textafter = substr($temp, strpos($temp, (string) $email) + strlen($email)); $linktext = ''; } else @@ -47,10 +47,10 @@ function twig_function_email_obfuscator() $character_set = '+-.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'; $key = str_shuffle($character_set); $cipher_text = ''; - $id = 'e' . rand(1, 999999999); + $id = 'e' . random_int(1, 999_999_999); for ($i = 0; $i < strlen($email); $i += 1) { - $cipher_text .= $key[strpos($character_set, $email[$i])]; + $cipher_text .= $key[strpos($character_set, (string) $email[$i])]; } $script = 'var namex="' . $linktext . '";var a="' . $key . '";var b=a.split("").sort().join("");var c="' . $cipher_text . '";var d="";'; $script .= 'for(var e=0;egetString( diff --git a/src/Twig-sifo-plugins/function.genurl.php b/src/Twig-sifo-plugins/function.genurl.php index 2c169ff1..8ceb055b 100644 --- a/src/Twig-sifo-plugins/function.genurl.php +++ b/src/Twig-sifo-plugins/function.genurl.php @@ -16,7 +16,7 @@ function twig_function_genurl() trigger_error("fill: The delimiter '$' is banned in function {url}", E_USER_NOTICE); } - $action = isset($args[0]['action']) ? $args[0]['action'] : 'replace'; + $action = $args[0]['action'] ?? 'replace'; if (!in_array($action, array('add', 'replace', 'remove', 'clean_params'))) { diff --git a/src/Twig-sifo-plugins/function.pagelink.php b/src/Twig-sifo-plugins/function.pagelink.php index 7a5ed155..aa088d21 100644 --- a/src/Twig-sifo-plugins/function.pagelink.php +++ b/src/Twig-sifo-plugins/function.pagelink.php @@ -10,7 +10,7 @@ function twig_function_pagelink() $delimiter = $args[0]['delimiter']; unset($args[0]['delimiter']); } - if (class_exists('\Sifo\FilterServer') && method_exists('\Sifo\FilterServer', 'getString')) + if (class_exists(\Sifo\FilterServer::class) && method_exists(\Sifo\FilterServer::class, 'getString')) { $current_querystring = \Sifo\FilterServer::getInstance()->getString('QUERY_STRING'); $current_path = \Sifo\FilterServer::getInstance()->getString('REQUEST_URI'); @@ -44,7 +44,7 @@ function twig_function_pagelink() if (!isset($args[0]['page'])) { - trigger_error('pagelink: You should provide the destination pagelink. Params: ' . json_encode($args[0]), E_USER_WARNING); + trigger_error('pagelink: You should provide the destination pagelink. Params: ' . json_encode($args[0], JSON_THROW_ON_ERROR), E_USER_WARNING); } else { diff --git a/src/Twig-sifo-plugins/function.t.php b/src/Twig-sifo-plugins/function.t.php index 6e3a19a6..ff6326ce 100644 --- a/src/Twig-sifo-plugins/function.t.php +++ b/src/Twig-sifo-plugins/function.t.php @@ -3,8 +3,6 @@ function twig_function_t() { return new \Twig_Function( - 't', function ($text) { - return \Sifo\I18N::getTranslation($text); - } + 't', fn($text) => \Sifo\I18N::getTranslation($text) ); } diff --git a/src/adodb5/adodb-active-record.inc.php b/src/adodb5/adodb-active-record.inc.php index daf3aac2..3829b508 100644 --- a/src/adodb5/adodb-active-record.inc.php +++ b/src/adodb5/adodb-active-record.inc.php @@ -96,7 +96,7 @@ static function UseDefaultValues($bool=null) // should be static static function SetDatabaseAdapter(&$db, $index=false) { - return ADODB_SetDatabaseAdapter($db, $index); + return ADODB_SetDatabaseAdapter($db); } @@ -125,8 +125,7 @@ function __construct($table = false, $pkeyarr=false, $db=false) $this->_dbat = ADODB_Active_Record::SetDatabaseAdapter($db); } else if (!isset($this->_dbat)) { if (sizeof($_ADODB_ACTIVE_DBS) == 0) $this->Error("No database connection set; use ADOdb_Active_Record::SetDatabaseAdapter(\$db)",'ADODB_Active_Record::__constructor'); - end($_ADODB_ACTIVE_DBS); - $this->_dbat = key($_ADODB_ACTIVE_DBS); + $this->_dbat = array_key_last($_ADODB_ACTIVE_DBS); } $this->_table = $table; @@ -169,6 +168,7 @@ function _pluralize($table) function _singularize($tables) { + $table = null; if (!ADODB_Active_Record::$_changeNames) return $table; $ut = strtoupper($tables); @@ -197,7 +197,7 @@ function hasMany($foreignRef, $foreignKey = false, $foreignClass = 'ADODB_Active $ar = new $foreignClass($foreignRef); $ar->foreignName = $foreignRef; $ar->UpdateActiveTable(); - $ar->foreignKey = ($foreignKey) ? $foreignKey : $foreignRef.ADODB_Active_Record::$_foreignSuffix; + $ar->foreignKey = $foreignKey ?: $foreignRef.ADODB_Active_Record::$_foreignSuffix; $table =& $this->TableInfo(); $table->_hasMany[$foreignRef] = $ar; # $this->$foreignRef = $this->_hasMany[$foreignRef]; // WATCHME Removed assignment by ref. to please __get() @@ -207,7 +207,7 @@ function hasMany($foreignRef, $foreignKey = false, $foreignClass = 'ADODB_Active static function TableHasMany($table, $foreignRef, $foreignKey = false, $foreignClass = 'ADODB_Active_Record') { $ar = new ADODB_Active_Record($table); - $ar->hasMany($foreignRef, $foreignKey, $foreignClass); + $ar->hasMany($foreignRef, $foreignKey); } // use when you don't want ADOdb to auto-pluralize tablename @@ -215,7 +215,7 @@ static function TableKeyHasMany($table, $tablePKey, $foreignRef, $foreignKey = f { if (!is_array($tablePKey)) $tablePKey = array($tablePKey); $ar = new ADODB_Active_Record($table,$tablePKey); - $ar->hasMany($foreignRef, $foreignKey, $foreignClass); + $ar->hasMany($foreignRef, $foreignKey); } @@ -236,8 +236,8 @@ function belongsTo($foreignRef,$foreignKey=false, $parentKey='', $parentClass = $ar->foreignName = $foreignRef; $ar->parentKey = $parentKey; $ar->UpdateActiveTable(); - $ar->foreignKey = ($foreignKey) ? $foreignKey : $foreignRef.ADODB_Active_Record::$_foreignSuffix; - + $ar->foreignKey = $foreignKey ?: $foreignRef.ADODB_Active_Record::$_foreignSuffix; + $table =& $this->TableInfo(); $table->_belongsTo[$foreignRef] = $ar; # $this->$foreignRef = $this->_belongsTo[$foreignRef]; @@ -252,14 +252,14 @@ static function ClassBelongsTo($class, $foreignRef, $foreignKey=false, $parentKe static function TableBelongsTo($table, $foreignRef, $foreignKey=false, $parentKey='', $parentClass = 'ADODB_Active_Record') { $ar = new ADOdb_Active_Record($table); - $ar->belongsTo($foreignRef, $foreignKey, $parentKey, $parentClass); + $ar->belongsTo($foreignRef, $foreignKey); } static function TableKeyBelongsTo($table, $tablePKey, $foreignRef, $foreignKey=false, $parentKey='', $parentClass = 'ADODB_Active_Record') { if (!is_array($tablePKey)) $tablePKey = array($tablePKey); $ar = new ADOdb_Active_Record($table, $tablePKey); - $ar->belongsTo($foreignRef, $foreignKey, $parentKey, $parentClass); + $ar->belongsTo($foreignRef, $foreignKey); } @@ -360,7 +360,7 @@ function UpdateActiveTable($pkeys=false,$forceUpdate=false) @flock($fp, LOCK_SH); $acttab = unserialize(fread($fp,100000)); fclose($fp); - if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - (abs(rand()) % 16) > time()) { + if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - (abs(random_int(0, mt_getrandmax())) % 16) > time()) { // abs(rand()) randomizes deletion, reducing contention to delete/refresh file // ideally, you should cache at least 32 secs $activedb->tables[$table] = $acttab; @@ -557,6 +557,7 @@ function Reload() // set a numeric array (using natural table field ordering) as object properties function Set(&$row) { + $keys = null; global $ACTIVE_RECORD_SAFETY; $db = $this->DB(); @@ -792,6 +793,7 @@ function Find($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array()) // returns 0 on error, 1 on update, 2 on insert function Replace() { + $arr = []; global $ADODB_ASSOC_CASE; $db = $this->DB(); if (!$db) return false; @@ -978,4 +980,4 @@ function adodb_GetActiveRecordsClass(&$db, $class, $table,$whereOrderBy,$bindarr return $arr; } -?> \ No newline at end of file +?> diff --git a/src/adodb5/adodb-active-recordx.inc.php b/src/adodb5/adodb-active-recordx.inc.php index 6d270b65..afb1e71b 100644 --- a/src/adodb5/adodb-active-recordx.inc.php +++ b/src/adodb5/adodb-active-recordx.inc.php @@ -293,7 +293,7 @@ function hasMany($foreignRef,$foreignKey=false) $ar = new ADODB_Active_Record($foreignRef); $ar->foreignName = $foreignRef; $ar->UpdateActiveTable(); - $ar->foreignKey = ($foreignKey) ? $foreignKey : strtolower(get_class($this)) . self::$_foreignSuffix; + $ar->foreignKey = $foreignKey ?: strtolower(get_class($this)) . self::$_foreignSuffix; $table =& $this->TableInfo(); if(!isset($table->_hasMany[$foreignRef])) @@ -319,7 +319,7 @@ function belongsTo($foreignRef,$foreignKey=false) $ar = new ADODB_Active_Record($this->_pluralize($foreignRef)); $ar->foreignName = $foreignRef; $ar->UpdateActiveTable(); - $ar->foreignKey = ($foreignKey) ? $foreignKey : $ar->foreignName . self::$_foreignSuffix; + $ar->foreignKey = $foreignKey ?: $ar->foreignName . self::$_foreignSuffix; $table =& $this->TableInfo(); if(!isset($table->_belongsTo[$foreignRef])) @@ -420,7 +420,7 @@ function UpdateActiveTable($pkeys=false,$forceUpdate=false) @flock($fp, LOCK_SH); $acttab = unserialize(fread($fp,100000)); fclose($fp); - if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - (abs(rand()) % 16) > time()) { + if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - (abs(random_int(0, mt_getrandmax())) % 16) > time()) { // abs(rand()) randomizes deletion, reducing contention to delete/refresh file // ideally, you should cache at least 32 secs $activedb->tables[$table] = $acttab; @@ -619,6 +619,7 @@ function Reload() // set a numeric array (using natural table field ordering) as object properties function Set(&$row) { + $keys = null; global $ACTIVE_RECORD_SAFETY; $db = $this->DB(); @@ -782,7 +783,7 @@ function Load($where=null,$bindarr=false) $qry .= ' WHERE '.$where; // Simple case: no relations. Load row and return. - if((count($table->_hasMany) + count($table->_belongsTo)) < 1) + if(((is_countable($table->_hasMany) ? count($table->_hasMany) : 0) + (is_countable($table->_belongsTo) ? count($table->_belongsTo) : 0)) < 1) { $row = $db->GetRow($qry,$bindarr); if(!$row) @@ -796,7 +797,7 @@ function Load($where=null,$bindarr=false) if(!$rows) return false; $db->SetFetchMode($save); - if(count($rows) < 1) + if((is_countable($rows) ? count($rows) : 0) < 1) return false; $class = get_class($this); $isFirstRow = true; @@ -834,7 +835,7 @@ function Load($where=null,$bindarr=false) $obj = new $class($table,false,$db); $obj->Set($row); // TODO Copy/paste code below: bad! - if(count($table->_hasMany) > 0) + if((is_countable($table->_hasMany) ? count($table->_hasMany) : 0) > 0) { foreach($table->_hasMany as $foreignTable) { @@ -854,7 +855,7 @@ function Load($where=null,$bindarr=false) } } } - if(count($table->_belongsTo) > 0) + if((is_countable($table->_belongsTo) ? count($table->_belongsTo) : 0) > 0) { foreach($table->_belongsTo as $foreignTable) { @@ -984,6 +985,7 @@ function packageFind($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array() // returns 0 on error, 1 on update, 2 on insert function Replace() { + $arr = []; global $ADODB_ASSOC_CASE; $db = $this->DB(); if (!$db) return false; diff --git a/src/adodb5/adodb-csvlib.inc.php b/src/adodb5/adodb-csvlib.inc.php index 7ad251a8..60effa06 100644 --- a/src/adodb5/adodb-csvlib.inc.php +++ b/src/adodb5/adodb-csvlib.inc.php @@ -33,6 +33,7 @@ */ function _rs2serialize(&$rs,$conn=false,$sql='') { + $flds = []; $max = ($rs) ? $rs->FieldCount() : 0; if ($sql) $sql = urlencode($sql); @@ -48,7 +49,7 @@ function _rs2serialize(&$rs,$conn=false,$sql='') $text = "====-1,0,$sql\n"; return $text; } - $tt = ($rs->timeCreated) ? $rs->timeCreated : time(); + $tt = $rs->timeCreated ?: time(); ## changed format from ====0 to ====1 $line = "====1,$tt,$sql\n"; @@ -68,7 +69,7 @@ function _rs2serialize(&$rs,$conn=false,$sql='') $flds[] = $o; } - $savefetch = isset($rs->adodbFetchMode) ? $rs->adodbFetchMode : $rs->fetchMode; + $savefetch = $rs->adodbFetchMode ?? $rs->fetchMode; $class = $rs->connection->arrayClass; $rs2 = new $class(); $rs2->sql = $rs->sql; @@ -154,21 +155,21 @@ function csv2rs($url,&$err,$timeout=0, $rsclass='ADORecordSet_array') switch($tdiff) { case 4: case 3: - if ((rand() & 31) == 0) { + if ((random_int(0, mt_getrandmax()) & 31) == 0) { fclose($fp); $err = "Timeout 3"; return $false; } break; case 2: - if ((rand() & 15) == 0) { + if ((random_int(0, mt_getrandmax()) & 15) == 0) { fclose($fp); $err = "Timeout 2"; return $false; } break; case 1: - if ((rand() & 3) == 0) { + if ((random_int(0, mt_getrandmax()) & 3) == 0) { fclose($fp); $err = "Timeout 1"; return $false; @@ -179,7 +180,7 @@ function csv2rs($url,&$err,$timeout=0, $rsclass='ADORecordSet_array') $err = "Timeout 0"; return $false; } // switch - + } // if check flush cache }// (timeout>0) $ttl = $meta[1]; @@ -313,4 +314,4 @@ function adodb_write_file($filename, $contents,$debug=false) return $ok; } -?> \ No newline at end of file +?> diff --git a/src/adodb5/adodb-datadict.inc.php b/src/adodb5/adodb-datadict.inc.php index 22e2c92c..25ebf69a 100644 --- a/src/adodb5/adodb-datadict.inc.php +++ b/src/adodb5/adodb-datadict.inc.php @@ -5,11 +5,11 @@ Released under both BSD license and Lesser GPL library license. Whenever there is any discrepancy between the two licenses, the BSD license will take precedence. - + Set tabs to 4 for best viewing. - + DOCUMENTATION: - + See adodb/tests/test-datadict.php for docs and examples. */ @@ -42,11 +42,11 @@ function ctype_alnum($text) { /** Parse arguments, treat "text" (text) and 'text' as quotation marks. To escape, use "" or '' or )) - + Will read in "abc def" sans quotes, as: abc def Same with 'abc def'. However if `abc def`, then will read in as `abc def` - + @param endstmtchar Character that indicates end of statement @param tokenchars Include the following characters in tokens apart from A-Z and 0-9 @returns 2 dimensional array containing parsed tokens. @@ -62,7 +62,7 @@ function Lens_ParseArgs($args,$endstmtchar=',',$tokenchars='_.-') $max = strlen($args); $quoted = false; $tokarr = array(); - + while ($pos < $max) { $ch = substr($args,$pos,1); switch($ch) { @@ -77,17 +77,17 @@ function Lens_ParseArgs($args,$endstmtchar=',',$tokenchars='_.-') } break; } - + $tokarr[] = $ch; break; - + case '`': if ($intoken) $tokarr[] = $ch; case '(': case ')': case '"': case "'": - + if ($intoken) { if (empty($endquote)) { $tokens[$stmtno][] = implode('',$tokarr); @@ -109,9 +109,9 @@ function Lens_ParseArgs($args,$endstmtchar=',',$tokenchars='_.-') } } else $tokarr[] = $ch; - + }else { - + if ($ch == '(') $endquote = ')'; else $endquote = $ch; $quoted = true; @@ -120,23 +120,23 @@ function Lens_ParseArgs($args,$endstmtchar=',',$tokenchars='_.-') if ($ch == '`') $tokarr[] = '`'; } break; - + default: - + if (!$intoken) { if ($ch == $endstmtchar) { $stmtno += 1; $tokens[$stmtno] = array(); break; } - + $intoken = true; $quoted = false; $endquote = false; $tokarr = array(); - + } - + if ($quoted) $tokarr[] = $ch; else if (ctype_alnum($ch) || strpos($tokenchars,$ch) !== false) $tokarr[] = $ch; else { @@ -156,7 +156,7 @@ function Lens_ParseArgs($args,$endstmtchar=',',$tokenchars='_.-') $pos += 1; } if ($intoken) $tokens[$stmtno][] = implode('',$tokarr); - + return $tokens; } @@ -180,41 +180,41 @@ class ADODB_DataDict { var $invalidResizeTypes4 = array('CLOB','BLOB','TEXT','DATE','TIME'); // for changetablesql var $blobSize = 100; /// any varchar/char field this size or greater is treated as a blob /// in other words, we use a text area for editting. - + function GetCommentSQL($table,$col) { return false; } - + function SetCommentSQL($table,$col,$cmt) { return false; } - + function MetaTables() { if (!$this->connection->IsConnected()) return array(); return $this->connection->MetaTables(); } - + function MetaColumns($tab, $upper=true, $schema=false) { if (!$this->connection->IsConnected()) return array(); return $this->connection->MetaColumns($this->TableName($tab), $upper, $schema); } - + function MetaPrimaryKeys($tab,$owner=false,$intkey=false) { if (!$this->connection->IsConnected()) return array(); return $this->connection->MetaPrimaryKeys($this->TableName($tab), $owner, $intkey); } - + function MetaIndexes($table, $primary = false, $owner = false) { if (!$this->connection->IsConnected()) return array(); return $this->connection->MetaIndexes($this->TableName($table), $primary, $owner); } - + function MetaType($t,$len=-1,$fieldobj=false) { static $typeMap = array( @@ -296,7 +296,7 @@ function MetaType($t,$len=-1,$fieldobj=false) 'NUM' => 'N', 'NUMERIC' => 'N', 'MONEY' => 'N', - + ## informix 9.2 'SQLINT' => 'I', 'SQLSERIAL' => 'I', @@ -320,7 +320,7 @@ function MetaType($t,$len=-1,$fieldobj=false) "SQLLVARCHAR" => 'X', "SQLBOOL" => 'L' ); - + if (!$this->connection->IsConnected()) { $t = strtoupper($t); if (isset($typeMap[$t])) return $typeMap[$t]; @@ -328,36 +328,36 @@ function MetaType($t,$len=-1,$fieldobj=false) } return $this->connection->MetaType($t,$len,$fieldobj); } - + function NameQuote($name = NULL,$allowBrackets=false) { if (!is_string($name)) { return FALSE; } - + $name = trim($name); - + if ( !is_object($this->connection) ) { return $name; } - + $quote = $this->connection->nameQuote; - + // if name is of the form `name`, quote it if ( preg_match('/^`(.+)`$/', $name, $matches) ) { return $quote . $matches[1] . $quote; } - + // if name contains special characters, quote it $regex = ($allowBrackets) ? $this->nameRegexBrackets : $this->nameRegex; - + if ( !preg_match('/^[' . $regex . ']+$/', $name) ) { return $quote . $name . $quote; } - + return $name; } - + function TableName($name) { if ( $this->schema ) { @@ -365,7 +365,7 @@ function TableName($name) } return $this->NameQuote($name); } - + // Executes the sql array returned by GetTableSQL and GetIndexSQL function ExecuteSQLArray($sql, $continueOnError = true) { @@ -373,7 +373,7 @@ function ExecuteSQLArray($sql, $continueOnError = true) $conn = $this->connection; $saved = $conn->debug; foreach($sql as $line) { - + if ($this->debug) $conn->debug = true; $ok = $conn->Execute($line); $conn->debug = $saved; @@ -385,17 +385,17 @@ function ExecuteSQLArray($sql, $continueOnError = true) } return $rez; } - + /** Returns the actual type given a character code. - + C: varchar X: CLOB (character large object) or largest varchar size if CLOB is not supported C2: Multibyte varchar X2: Multibyte CLOB - + B: BLOB (binary large object) - + D: Date T: Date-time L: Integer field suitable for storing booleans (0 or 1) @@ -403,25 +403,25 @@ function ExecuteSQLArray($sql, $continueOnError = true) F: Floating point number N: Numeric or decimal number */ - + function ActualType($meta) { return $meta; } - + function CreateDatabase($dbname,$options=false) { $options = $this->_Options($options); $sql = array(); - + $s = 'CREATE DATABASE ' . $this->NameQuote($dbname); if (isset($options[$this->upperName])) $s .= ' '.$options[$this->upperName]; - + $sql[] = $s; return $sql; } - + /* Generates the SQL to create index. Returns an array of sql strings. */ @@ -430,30 +430,30 @@ function CreateIndexSQL($idxname, $tabname, $flds, $idxoptions = false) if (!is_array($flds)) { $flds = explode(',',$flds); } - + foreach($flds as $key => $fld) { # some indexes can use partial fields, eg. index first 32 chars of "name" with NAME(32) $flds[$key] = $this->NameQuote($fld,$allowBrackets=true); } - + return $this->_IndexSQL($this->NameQuote($idxname), $this->TableName($tabname), $flds, $this->_Options($idxoptions)); } - + function DropIndexSQL ($idxname, $tabname = NULL) { return array(sprintf($this->dropIndex, $this->NameQuote($idxname), $this->TableName($tabname))); } - + function SetSchema($schema) { $this->schema = $schema; } - + function AddColumnSQL($tabname, $flds) { $tabname = $this->TableName ($tabname); $sql = array(); - list($lines,$pkey,$idxs) = $this->_GenFields($flds); + [$lines, $pkey, $idxs] = $this->_GenFields($flds); // genfields can return FALSE at times if ($lines == null) $lines = array(); $alter = 'ALTER TABLE ' . $tabname . $this->addCol . ' '; @@ -468,7 +468,7 @@ function AddColumnSQL($tabname, $flds) } return $sql; } - + /** * Change the definition of one column * @@ -484,7 +484,7 @@ function AlterColumnSQL($tabname, $flds, $tableflds='',$tableoptions='') { $tabname = $this->TableName ($tabname); $sql = array(); - list($lines,$pkey,$idxs) = $this->_GenFields($flds); + [$lines, $pkey, $idxs] = $this->_GenFields($flds); // genfields can return FALSE at times if ($lines == null) $lines = array(); $alter = 'ALTER TABLE ' . $tabname . $this->alterCol . ' '; @@ -500,7 +500,7 @@ function AlterColumnSQL($tabname, $flds, $tableflds='',$tableoptions='') } return $sql; } - + /** * Rename one column * @@ -513,17 +513,18 @@ function AlterColumnSQL($tabname, $flds, $tableflds='',$tableoptions='') */ function RenameColumnSQL($tabname,$oldcolumn,$newcolumn,$flds='') { + $column_def = null; $tabname = $this->TableName ($tabname); if ($flds) { - list($lines,$pkey,$idxs) = $this->_GenFields($flds); + [$lines, $pkey, $idxs] = $this->_GenFields($flds); // genfields can return FALSE at times if ($lines == null) $lines = array(); $first = current($lines); - list(,$column_def) = explode(' ',$first,2); + [, $column_def] = explode(' ',$first,2); } return array(sprintf($this->renameColumn,$tabname,$this->NameQuote($oldcolumn),$this->NameQuote($newcolumn),$column_def)); } - + /** * Drop one column * @@ -546,30 +547,30 @@ function DropColumnSQL($tabname, $flds, $tableflds='',$tableoptions='') } return $sql; } - + function DropTableSQL($tabname) { return array (sprintf($this->dropTable, $this->TableName($tabname))); } - + function RenameTableSQL($tabname,$newname) { return array (sprintf($this->renameTable, $this->TableName($tabname),$this->TableName($newname))); } - + /** Generate the SQL to create table. Returns an array of sql strings. */ function CreateTableSQL($tabname, $flds, $tableoptions=array()) { - list($lines,$pkey,$idxs) = $this->_GenFields($flds, true); + [$lines, $pkey, $idxs] = $this->_GenFields($flds, true); // genfields can return FALSE at times if ($lines == null) $lines = array(); - + $taboptions = $this->_Options($tableoptions); $tabname = $this->TableName ($tabname); $sql = $this->_TableSQL($tabname,$lines,$pkey,$taboptions); - + // ggiunta - 2006/10/12 - KLUDGE: // if we are on autoincrement, and table options includes REPLACE, the // autoincrement sequence has already been dropped on table creation sql, so @@ -579,7 +580,7 @@ function CreateTableSQL($tabname, $flds, $tableoptions=array()) unset($taboptions['REPLACE']); $tsql = $this->_Triggers($tabname,$taboptions); foreach($tsql as $s) $sql[] = $s; - + if (is_array($idxs)) { foreach($idxs as $idx => $idxdef) { $sql_idxs = $this->CreateIndexSql($idx, $tabname, $idxdef['cols'], $idxdef['opts']); @@ -589,7 +590,7 @@ function CreateTableSQL($tabname, $flds, $tableoptions=array()) return $sql; } - + function _GenFields($flds,$widespacing=false) { if (is_string($flds)) { @@ -618,7 +619,7 @@ function _GenFields($flds,$widespacing=false) } // 'index' token without a name means single column index: name it after column if (array_key_exists('INDEX', $f1) && $f1['INDEX'] == '') { - $f1['INDEX'] = isset($f0['NAME']) ? $f0['NAME'] : $f0[0]; + $f1['INDEX'] = $f0['NAME'] ?? $f0[0]; // check if column name used to create an index name was quoted if (($f1['INDEX'][0] == '"' || $f1['INDEX'][0] == "'" || $f1['INDEX'][0] == "`") && ($f1['INDEX'][0] == substr($f1['INDEX'], -1))) { @@ -631,7 +632,7 @@ function _GenFields($flds,$widespacing=false) $hasparam = false; $flds[] = $f1; - + } } $this->autoIncrement = false; @@ -640,7 +641,7 @@ function _GenFields($flds,$widespacing=false) $idxs = array(); foreach($flds as $fld) { $fld = _array_change_key_case($fld); - + $fname = false; $fdefault = false; $fautoinc = false; @@ -656,19 +657,19 @@ function _GenFields($flds,$widespacing=false) $funsigned = false; $findex = ''; $funiqueindex = false; - + //----------------- // Parse attributes foreach($fld as $attr => $v) { if ($attr == 2 && is_numeric($v)) $attr = 'SIZE'; else if (is_numeric($attr) && $attr > 1 && !is_numeric($v)) $attr = strtoupper($v); - + switch($attr) { case '0': case 'NAME': $fname = $v; break; case '1': case 'TYPE': $ty = $v; $ftype = $this->ActualType(strtoupper($v)); break; - + case 'SIZE': $dotat = strpos($v,'.'); if ($dotat === false) $dotat = strpos($v,','); if ($dotat === false) $fsize = $v; @@ -695,33 +696,33 @@ function _GenFields($flds,$widespacing=false) case 'UNIQUE': $funiqueindex = true; break; } //switch } // foreach $fld - + //-------------------- // VALIDATE FIELD INFO if (!strlen($fname)) { if ($this->debug) ADOConnection::outp("Undefined NAME"); return false; } - + $fid = strtoupper(preg_replace('/^`(.+)`$/', '$1', $fname)); $fname = $this->NameQuote($fname); - + if (!strlen($ftype)) { if ($this->debug) ADOConnection::outp("Undefined TYPE for field '$fname'"); return false; } else { $ftype = strtoupper($ftype); } - + $ftype = $this->_GetSize($ftype, $ty, $fsize, $fprec); - + if ($ty == 'X' || $ty == 'X2' || $ty == 'B') $fnotnull = false; // some blob types do not accept nulls - + if ($fprimary) $pkey[] = $fname; - + // some databases do not allow blobs to have defaults if ($ty == 'X') $fdefault = false; - + // build list of indexes if ($findex != '') { if (array_key_exists($findex, $idxs)) { @@ -780,20 +781,20 @@ function _GenFields($flds,$widespacing=false) } } $suffix = $this->_CreateSuffix($fname,$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned); - + // add index creation if ($widespacing) $fname = str_pad($fname,24); - + // check for field names appearing twice if (array_key_exists($fid, $lines)) { ADOConnection::outp("Field '$fname' defined twice"); } - + $lines[$fid] = $fname.' '.$ftype.$suffix; - + if ($fautoinc) $this->autoIncrement = true; } // foreach $flds - + return array($lines,$pkey,$idxs); } @@ -811,8 +812,8 @@ function _GetSize($ftype, $ty, $fsize, $fprec) } return $ftype; } - - + + // return string must begin with space function _CreateSuffix($fname,&$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned) { @@ -822,45 +823,45 @@ function _CreateSuffix($fname,&$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint if ($fconstraint) $suffix .= ' '.$fconstraint; return $suffix; } - + function _IndexSQL($idxname, $tabname, $flds, $idxoptions) { $sql = array(); - + if ( isset($idxoptions['REPLACE']) || isset($idxoptions['DROP']) ) { $sql[] = sprintf ($this->dropIndex, $idxname); if ( isset($idxoptions['DROP']) ) return $sql; } - + if ( empty ($flds) ) { return $sql; } - + $unique = isset($idxoptions['UNIQUE']) ? ' UNIQUE' : ''; - + $s = 'CREATE' . $unique . ' INDEX ' . $idxname . ' ON ' . $tabname . ' '; - + if ( isset($idxoptions[$this->upperName]) ) $s .= $idxoptions[$this->upperName]; - + if ( is_array($flds) ) $flds = implode(', ',$flds); $s .= '(' . $flds . ')'; $sql[] = $s; - + return $sql; } - + function _DropAutoIncrement($tabname) { return false; } - + function _TableSQL($tabname,$lines,$pkey,$tableoptions) { $sql = array(); - + if (isset($tableoptions['REPLACE']) || isset ($tableoptions['DROP'])) { $sql[] = sprintf($this->dropTable,$tabname); if ($this->autoIncrement) { @@ -879,17 +880,17 @@ function _TableSQL($tabname,$lines,$pkey,$tableoptions) } if (isset($tableoptions['CONSTRAINTS'])) $s .= "\n".$tableoptions['CONSTRAINTS']; - + if (isset($tableoptions[$this->upperName.'_CONSTRAINTS'])) $s .= "\n".$tableoptions[$this->upperName.'_CONSTRAINTS']; - + $s .= "\n)"; if (isset($tableoptions[$this->upperName])) $s .= $tableoptions[$this->upperName]; $sql[] = $s; - + return $sql; } - + /** GENERATE TRIGGERS IF NEEDED used when table has auto-incrementing field that is emulated using triggers @@ -898,7 +899,7 @@ function _Triggers($tabname,$taboptions) { return array(); } - + /** Sanitize options, so that array elements with no keys are promoted to keys */ @@ -912,34 +913,34 @@ function _Options($opts) } return $newopts; } - + /** "Florian Buzin [ easywe ]" - + This function changes/adds new fields to your table. You don't have to know if the col is new or not. It will check on its own. */ function ChangeTableSQL($tablename, $flds, $tableoptions = false, $dropOldFlds=false) { global $ADODB_FETCH_MODE; - + $save = $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; if ($this->connection->fetchMode !== false) $savem = $this->connection->SetFetchMode(false); - + // check table exists $save_handler = $this->connection->raiseErrorFn; $this->connection->raiseErrorFn = ''; $cols = $this->MetaColumns($tablename); $this->connection->raiseErrorFn = $save_handler; - + if (isset($savem)) $this->connection->SetFetchMode($savem); $ADODB_FETCH_MODE = $save; - + if ( empty($cols)) { return $this->CreateTableSQL($tablename, $flds, $tableoptions); } - + if (is_array($flds)) { // Cycle through the update fields, comparing // existing fields to fields to update. @@ -954,7 +955,7 @@ function ChangeTableSQL($tablename, $flds, $tableoptions = false, $dropOldFlds=f $v = str_replace('NOT NULL','',$v); if (isset($obj->auto_increment) && $obj->auto_increment && empty($v['AUTOINCREMENT'])) $v = str_replace('AUTOINCREMENT','',$v); - + $c = $cols[$k]; $ml = $c->max_length; $mt = $this->MetaType($c->type,$ml); @@ -969,10 +970,10 @@ function ChangeTableSQL($tablename, $flds, $tableoptions = false, $dropOldFlds=f } $flds = $holdflds; } - + // already exists, alter table instead - list($lines,$pkey,$idxs) = $this->_GenFields($flds); + [$lines, $pkey, $idxs] = $this->_GenFields($flds); // genfields can return FALSE at times if ($lines == null) $lines = array(); $alter = 'ALTER TABLE ' . $this->TableName($tablename); @@ -980,9 +981,9 @@ function ChangeTableSQL($tablename, $flds, $tableoptions = false, $dropOldFlds=f foreach ( $lines as $id => $v ) { if ( isset($cols[$id]) && is_object($cols[$id]) ) { - + $flds = Lens_ParseArgs($v,','); - + // We are trying to change the size of the field, if not allowed, simply ignore the request. // $flds[1] holds the type, $flds[2] holds the size -postnuke addition if ($flds && in_array(strtoupper(substr($flds[0][1],0,4)),$this->invalidResizeTypes4) @@ -996,7 +997,7 @@ function ChangeTableSQL($tablename, $flds, $tableoptions = false, $dropOldFlds=f $sql[] = $alter . $this->addCol . ' ' . $v; } } - + if ($dropOldFlds) { foreach ( $cols as $id => $v ) if ( !isset($lines[$id]) ) diff --git a/src/adodb5/adodb-error.inc.php b/src/adodb5/adodb-error.inc.php index db44dff2..6ef54375 100644 --- a/src/adodb5/adodb-error.inc.php +++ b/src/adodb5/adodb-error.inc.php @@ -52,7 +52,7 @@ function adodb_errormsg($value) else { include_once(ADODB_DIR."/lang/adodb-$ADODB_LANG.inc.php"); } - return isset($ADODB_LANG_ARRAY[$value]) ? $ADODB_LANG_ARRAY[$value] : $ADODB_LANG_ARRAY[DB_ERROR]; + return $ADODB_LANG_ARRAY[$value] ?? $ADODB_LANG_ARRAY[DB_ERROR]; } function adodb_error($provider,$dbType,$errno) diff --git a/src/adodb5/adodb-errorpear.inc.php b/src/adodb5/adodb-errorpear.inc.php index d1e2eb98..078fe985 100644 --- a/src/adodb5/adodb-errorpear.inc.php +++ b/src/adodb5/adodb-errorpear.inc.php @@ -42,35 +42,35 @@ function ADODB_Error_PEAR($dbms, $fn, $errno, $errmsg, $p1=false, $p2=false) { global $ADODB_Last_PEAR_Error; - + if (error_reporting() == 0) return; // obey @ protocol switch($fn) { case 'EXECUTE': $sql = $p1; $inputparams = $p2; - + $s = "$dbms error: [$errno: $errmsg] in $fn(\"$sql\")"; break; - + case 'PCONNECT': case 'CONNECT': $host = $p1; $database = $p2; - + $s = "$dbms error: [$errno: $errmsg] in $fn('$host', ?, ?, '$database')"; break; - + default: $s = "$dbms error: [$errno: $errmsg] in $fn($p1, $p2)"; break; } - + $class = ADODB_PEAR_ERROR_CLASS; $ADODB_Last_PEAR_Error = new $class($s, $errno, $GLOBALS['_PEAR_default_error_mode'], $GLOBALS['_PEAR_default_error_options'], $errmsg); - + //print "

!$s

"; } @@ -85,4 +85,4 @@ function ADODB_PEAR_Error() return $ADODB_Last_PEAR_Error; } -?> \ No newline at end of file +?> diff --git a/src/adodb5/adodb-iterator.inc.php b/src/adodb5/adodb-iterator.inc.php index 55d66a35..532020c2 100644 --- a/src/adodb5/adodb-iterator.inc.php +++ b/src/adodb5/adodb-iterator.inc.php @@ -5,26 +5,26 @@ Released under both BSD license and Lesser GPL library license. Whenever there is any discrepancy between the two licenses, the BSD license will take precedence. - + Set tabs to 4. - + Declares the ADODB Base Class for PHP5 "ADODB_BASE_RS", and supports iteration with the ADODB_Iterator class. - + $rs = $db->Execute("select * from adoxyz"); foreach($rs as $k => $v) { echo $k; print_r($v); echo "
"; } - - + + Iterator code based on http://cvs.php.net/cvs.php/php-src/ext/spl/examples/cachingiterator.inc?login=2 - - + + Moved to adodb.inc.php to improve performance. */ - -?> \ No newline at end of file + +?> diff --git a/src/adodb5/adodb-lib.inc.php b/src/adodb5/adodb-lib.inc.php index 0f82ba3a..290eb631 100644 --- a/src/adodb5/adodb-lib.inc.php +++ b/src/adodb5/adodb-lib.inc.php @@ -15,7 +15,7 @@ Whenever there is any discrepancy between the two licenses, the BSD license will take precedence. See License.txt. Set tabs to 4 for best viewing. - + Less commonly used functions are placed here to reduce size of adodb.inc.php. */ @@ -24,7 +24,7 @@ function adodb_strip_order_by($sql) $rez = preg_match('/(\sORDER\s+BY\s[^)]*)/is',$sql,$arr); if ($arr) if (strpos($arr[0],'(') !== false) { - $at = strpos($sql,$arr[0]); + $at = strpos($sql,(string) $arr[0]); $cntin = 0; for ($i=$at, $max=strlen($sql); $i < $max; $i++) { $ch = $sql[$i]; @@ -55,8 +55,8 @@ function adodb_probetypes(&$array,&$types,$probe=8) $types = array(); if ($probe > sizeof($array)) $max = sizeof($array); else $max = $probe; - - + + for ($j=0;$j < $max; $j++) { $row = $array[$j]; if (!$row) break; @@ -65,13 +65,13 @@ function adodb_probetypes(&$array,&$types,$probe=8) $i += 1; if (isset($types[$i]) && $types[$i]=='C') continue; - + //print " ($i ".$types[$i]. "$v) "; $v = trim($v); - + if (!preg_match('/^[+-]{0,1}[0-9\.]+$/',$v)) { $types[$i] = 'C'; // once C, always C - + continue; } if ($j == 0) { @@ -84,19 +84,19 @@ function adodb_probetypes(&$array,&$types,$probe=8) else $types[$i] = 'I'; continue; } - + if (strpos($v,'.') !== false) $types[$i] = 'N'; - + } } - + } function adodb_transpose(&$arr, &$newarr, &$hdr, &$fobjs) { $oldX = sizeof(reset($arr)); $oldY = sizeof($arr); - + if ($hdr) { $startx = 1; $hdr = array('Fields'); @@ -112,7 +112,7 @@ function adodb_transpose(&$arr, &$newarr, &$hdr, &$fobjs) $newarr[] = array($o->name); } else $newarr[] = array(); - + for ($y = 0; $y < $oldY; $y++) { $newarr[$x-$startx][] = $arr[$y][$x]; } @@ -136,10 +136,12 @@ function _array_change_key_case($an_array) function _adodb_replace(&$zthis, $table, $fieldArray, $keyCol, $autoQuote, $has_autoinc) { - if (count($fieldArray) == 0) return 0; + $iCols = null; + $iVals = null; + if ((is_countable($fieldArray) ? count($fieldArray) : 0) == 0) return 0; $first = true; $uSet = ''; - + if (!is_array($keyCol)) { $keyCol = array($keyCol); } @@ -152,14 +154,14 @@ function _adodb_replace(&$zthis, $table, $fieldArray, $keyCol, $autoQuote, $has_ $fieldArray[$k] = $v; } if (in_array($k,$keyCol)) continue; // skip UPDATE if is key - + if ($first) { $first = false; $uSet = "$k=$v"; } else $uSet .= ",$k=$v"; } - + $where = false; foreach ($keyCol as $v) { if (isset($fieldArray[$v])) { @@ -167,13 +169,13 @@ function _adodb_replace(&$zthis, $table, $fieldArray, $keyCol, $autoQuote, $has_ else $where = $v.'='.$fieldArray[$v]; } } - + if ($uSet && $where) { $update = "UPDATE $table SET $uSet WHERE $where"; $rs = $zthis->Execute($update); - - + + if ($rs) { if ($zthis->poorAffectedRows) { /* @@ -181,10 +183,10 @@ function _adodb_replace(&$zthis, $table, $fieldArray, $keyCol, $autoQuote, $has_ http://phplens.com/lens/lensforum/msgs.php?id=5696 */ if ($zthis->ErrorNo()<>0) return 0; - + # affected_rows == 0 if update field values identical to old values # for mysql - which is silly. - + $cnt = $zthis->GetOne("select count(*) from $table where $where"); if ($cnt > 0) return 1; // record already exists } else { @@ -193,12 +195,12 @@ function _adodb_replace(&$zthis, $table, $fieldArray, $keyCol, $autoQuote, $has_ } else return 0; } - + // print "

Error=".$this->ErrorNo().'

'; $first = true; foreach($fieldArray as $k => $v) { if ($has_autoinc && in_array($k,$keyCol)) continue; // skip autoinc col - + if ($first) { $first = false; $iCols = "$k"; @@ -217,6 +219,7 @@ function _adodb_replace(&$zthis, $table, $fieldArray, $keyCol, $autoQuote, $has_ function _adodb_getmenu(&$zthis, $name,$defstr='',$blank1stItem=true,$multiple=false, $size=0, $selectAttr='',$compareFields0=true) { + $zval2 = null; $hasvalue = false; if ($multiple or is_array($defstr)) { @@ -225,7 +228,7 @@ function _adodb_getmenu(&$zthis, $name,$defstr='',$blank1stItem=true,$multiple=f if (!strpos($name,'[]')) $name .= '[]'; } else if ($size) $attr = ' size="'.$size.'"'; else $attr =''; - + $s = ''; if ($blank1stItem) if (is_string($blank1stItem)) { @@ -322,7 +326,7 @@ function _adodb_getmenu_gp(&$zthis, $name,$defstr='',$blank1stItem=true,$multipl if ($zthis->FieldCount() > 1) $hasvalue=true; else $compareFields0 = true; - + $value = ''; $optgroup = null; $firstgroup = true; @@ -342,12 +346,12 @@ function _adodb_getmenu_gp(&$zthis, $name,$defstr='',$blank1stItem=true,$multipl $zval2 = rtrim(next($zthis->fields)); } $selected = ($compareFields0) ? $zval : $zval2; - + $group = ''; if (isset($zthis->fields[2])) { $group = rtrim($zthis->fields[2]); } - + if ($optgroup != $group) { $optgroup = $group; if ($firstgroup) { @@ -358,12 +362,12 @@ function _adodb_getmenu_gp(&$zthis, $name,$defstr='',$blank1stItem=true,$multipl $s .="\n"; } } - + if ($hasvalue) $value = " value='".htmlspecialchars($zval2)."'"; - + if (is_array($defstr)) { - + if (in_array($selected,$defstr)) $s .= "\n'; else @@ -377,7 +381,7 @@ function _adodb_getmenu_gp(&$zthis, $name,$defstr='',$blank1stItem=true,$multipl } $zthis->MoveNext(); } // while - + // closing last optgroup if($optgroup != null) { $s .= "\n"; @@ -389,25 +393,25 @@ function _adodb_getmenu_gp(&$zthis, $name,$defstr='',$blank1stItem=true,$multipl /* Count the number of records this sql statement will return by using query rewriting heuristics... - + Does not work with UNIONs, except with postgresql and oracle. - + Usage: - + $conn->Connect(...); $cnt = _adodb_getcount($conn, $sql); - + */ function _adodb_getcount(&$zthis, $sql,$inputarr=false,$secs2cache=0) { $qryRecs = 0; - + if (!empty($zthis->_nestedSQL) || preg_match("/^\s*SELECT\s+DISTINCT/is", $sql) || preg_match('/\s+GROUP\s+BY\s+/is',$sql) || preg_match('/\s+UNION\s+/is',$sql)) { - + $rewritesql = adodb_strip_order_by($sql); - + // ok, has SELECT DISTINCT or GROUP BY so see if we can use a table alias // but this is only supported by oracle and postgresql... if ($zthis->dataProvider == 'oci8') { @@ -416,7 +420,7 @@ function _adodb_getcount(&$zthis, $sql,$inputarr=false,$secs2cache=0) $rewritesql = "SELECT ".$hint[0]." COUNT(*) FROM (".$rewritesql.")"; } else $rewritesql = "SELECT COUNT(*) FROM (".$rewritesql.")"; - + } else if (strncmp($zthis->databaseType,'postgres',8) == 0 || strncmp($zthis->databaseType,'mysql',5) == 0) { $rewritesql = "SELECT COUNT(*) FROM ($rewritesql) _ADODB_ALIAS_"; } else { @@ -431,15 +435,15 @@ function _adodb_getcount(&$zthis, $sql,$inputarr=false,$secs2cache=0) // also see http://phplens.com/lens/lensforum/msgs.php?id=12752 $rewritesql = adodb_strip_order_by($rewritesql); } - + if (isset($rewritesql) && $rewritesql != $sql) { if (preg_match('/\sLIMIT\s+[0-9]+/i',$sql,$limitarr)) $rewritesql .= $limitarr[0]; - + if ($secs2cache) { // we only use half the time of secs2cache because the count can quickly // become inaccurate if new records are added $qryRecs = $zthis->CacheGetOne($secs2cache/2,$rewritesql,$inputarr); - + } else { $qryRecs = $zthis->GetOne($rewritesql,$inputarr); } @@ -447,17 +451,17 @@ function _adodb_getcount(&$zthis, $sql,$inputarr=false,$secs2cache=0) } //-------------------------------------------- // query rewrite failed - so try slower way... - - + + // strip off unneeded ORDER BY if no UNION if (preg_match('/\s*UNION\s*/is', $sql)) $rewritesql = $sql; else $rewritesql = $rewritesql = adodb_strip_order_by($sql); - + if (preg_match('/\sLIMIT\s+[0-9]+/i',$sql,$limitarr)) $rewritesql .= $limitarr[0]; - + $rstest = $zthis->Execute($rewritesql,$inputarr); if (!$rstest) $rstest = $zthis->Execute($sql,$inputarr); - + if ($rstest) { $qryRecs = $rstest->RecordCount(); if ($qryRecs == -1) { @@ -484,7 +488,7 @@ function _adodb_getcount(&$zthis, $sql,$inputarr=false,$secs2cache=0) Code originally from "Cornel G" This code might not work with SQL that has UNION in it - + Also if you are using CachePageExecute(), there is a strong possibility that data will get out of synch. use CachePageExecute() only with tables that rarely change. @@ -501,11 +505,11 @@ function _adodb_pageexecute_all_rows(&$zthis, $sql, $nrows, $page, if (!isset($nrows) || $nrows <= 0) $nrows = 10; $qryRecs = false; //count records for no offset - + $qryRecs = _adodb_getcount($zthis,$sql,$inputarr,$secs2cache); $lastpageno = (int) ceil($qryRecs / $nrows); $zthis->_maxRecordCount = $qryRecs; - + // ***** Here we check whether $page is the last page or @@ -515,13 +519,13 @@ function _adodb_pageexecute_all_rows(&$zthis, $sql, $nrows, $page, $page = $lastpageno; $atlastpage = true; } - + // If page number <= 1, then we are at the first page if (empty($page) || $page <= 1) { $page = 1; $atfirstpage = true; } - + // We get the data we want $offset = $nrows * ($page-1); if ($secs2cache > 0) @@ -529,7 +533,7 @@ function _adodb_pageexecute_all_rows(&$zthis, $sql, $nrows, $page, else $rsreturn = $zthis->SelectLimit($sql, $nrows, $offset, $inputarr, $secs2cache); - + // Before returning the RecordSet, we set the pagination properties we need if ($rsreturn) { $rsreturn->_maxRecordCount = $qryRecs; @@ -548,13 +552,13 @@ function _adodb_pageexecute_no_last_page(&$zthis, $sql, $nrows, $page, $inputarr $atfirstpage = false; $atlastpage = false; - + if (!isset($page) || $page <= 1) { // If page number <= 1, then we are at the first page $page = 1; $atfirstpage = true; } if ($nrows <= 0) $nrows = 10; // If an invalid nrows is supplied, we assume a default value of 10 rows per page - + // ***** Here we check whether $page is the last page or whether we are trying to retrieve a page number greater than // the last page number. $pagecounter = $page + 1; @@ -577,12 +581,12 @@ function _adodb_pageexecute_no_last_page(&$zthis, $sql, $nrows, $page, $inputarr if ($page == 1) $atfirstpage = true; // We have to do this again in case the last page is the same as the first //... page, that is, the recordset has only 1 page. } - + // We get the data we want $offset = $nrows * ($page-1); if ($secs2cache > 0) $rsreturn = $zthis->CacheSelectLimit($secs2cache, $sql, $nrows, $offset, $inputarr); else $rsreturn = $zthis->SelectLimit($sql, $nrows, $offset, $inputarr, $secs2cache); - + // Before returning the RecordSet, we set the pagination properties we need if ($rsreturn) { $rsreturn->rowsPerPage = $nrows; @@ -601,13 +605,13 @@ function _adodb_getupdatesql(&$zthis,&$rs, $arrFields,$forceUpdate=false,$magicq printf(ADODB_BAD_RS,'GetUpdateSQL'); return false; } - + $fieldUpdatedCount = 0; $arrFields = _array_change_key_case($arrFields); $hasnumeric = isset($rs->fields[0]); $setFields = ''; - + // Loop through all of the fields in the recordset for ($i=0, $max=$rs->FieldCount(); $i < $max; $i++) { // Get the field from the recordset @@ -617,19 +621,19 @@ function _adodb_getupdatesql(&$zthis,&$rs, $arrFields,$forceUpdate=false,$magicq // of the fields passed in then process. $upperfname = strtoupper($field->name); if (adodb_key_exists($upperfname,$arrFields,$force)) { - + // If the existing field value in the recordset // is different from the value passed in then // go ahead and append the field name and new value to // the update query. - + if ($hasnumeric) $val = $rs->fields[$i]; else if (isset($rs->fields[$upperfname])) $val = $rs->fields[$upperfname]; else if (isset($rs->fields[$field->name])) $val = $rs->fields[$field->name]; else if (isset($rs->fields[strtolower($upperfname)])) $val = $rs->fields[strtolower($upperfname)]; else $val = ''; - - + + if ($forceUpdate || strcmp($val, $arrFields[$upperfname])) { // Set the counter for the number of fields that will be updated. $fieldUpdatedCount++; @@ -637,18 +641,18 @@ function _adodb_getupdatesql(&$zthis,&$rs, $arrFields,$forceUpdate=false,$magicq // Based on the datatype of the field // Format the value properly for the database $type = $rs->MetaType($field->type); - + if ($type == 'null') { $type = 'C'; } - + if ((strpos($upperfname,' ') !== false) || ($ADODB_QUOTE_FIELDNAMES)) $fnameq = $zthis->nameQuote.$upperfname.$zthis->nameQuote; else $fnameq = $upperfname; - - + + // is_null requires php 4.0.4 //********************************************************// if (is_null($arrFields[$upperfname]) @@ -666,7 +670,7 @@ function _adodb_getupdatesql(&$zthis,&$rs, $arrFields,$forceUpdate=false,$magicq //Set null $setFields .= $field->name . " = null, "; break; - + case 2: //Set empty $arrFields[$upperfname] = ""; @@ -706,7 +710,7 @@ function _adodb_getupdatesql(&$zthis,&$rs, $arrFields,$forceUpdate=false,$magicq // Get the full where clause excluding the word "WHERE" from // the existing query. preg_match('/\sWHERE\s(.*)/is', $rs->sql, $whereClause); - + $discard = false; // not a good hack, improvements? if ($whereClause) { @@ -717,10 +721,10 @@ function _adodb_getupdatesql(&$zthis,&$rs, $arrFields,$forceUpdate=false,$magicq else preg_match('/\s.*(\) WHERE .*)/is', $whereClause[1], $discard); # see http://sourceforge.net/tracker/index.php?func=detail&aid=1379638&group_id=42718&atid=433976 } else $whereClause = array(false,false); - + if ($discard) $whereClause[1] = substr($whereClause[1], 0, strlen($whereClause[1]) - strlen($discard[1])); - + $sql = 'UPDATE '.$tableName.' SET '.substr($setFields, 0, -2); if (strlen($whereClause[1]) > 0) $sql .= ' WHERE '.$whereClause[1]; @@ -754,6 +758,7 @@ function adodb_key_exists($key, &$arr,$force=2) */ function _adodb_getinsertsql(&$zthis,&$rs,$arrFields,$magicq=false,$force=2) { +$columns = []; static $cacheRS = false; static $cacheSig = 0; static $cacheCols; @@ -765,19 +770,19 @@ function _adodb_getinsertsql(&$zthis,&$rs,$arrFields,$magicq=false,$force=2) $recordSet = null; $arrFields = _array_change_key_case($arrFields); $fieldInsertedCount = 0; - + if (is_string($rs)) { //ok we have a table name //try and get the column info ourself. $tableName = $rs; - + //we need an object for the recordSet //because we have to call MetaType. //php can't do a $rsclass::MetaType() $rsclass = $zthis->rsPrefix.$zthis->databaseType; $recordSet = new $rsclass(-1,$zthis->fetchMode); $recordSet->connection = $zthis; - + if (is_string($cacheRS) && $cacheRS == $rs) { $columns = $cacheCols; } else { @@ -796,7 +801,7 @@ function _adodb_getinsertsql(&$zthis,&$rs,$arrFields,$magicq=false,$force=2) $rs->insertSig = $cacheSig++; } $recordSet = $rs; - + } else { printf(ADODB_BAD_RS,'GetInsertSQL'); return false; @@ -811,9 +816,9 @@ function _adodb_getinsertsql(&$zthis,&$rs,$arrFields,$magicq=false,$force=2) $fnameq = $zthis->nameQuote.$upperfname.$zthis->nameQuote; else $fnameq = $upperfname; - + $type = $recordSet->MetaType($field->type); - + /********************************************************/ if (is_null($arrFields[$upperfname]) || (empty($arrFields[$upperfname]) && strlen($arrFields[$upperfname]) == 0) @@ -825,11 +830,11 @@ function _adodb_getinsertsql(&$zthis,&$rs,$arrFields,$magicq=false,$force=2) case 0: // we must always set null if missing $bad = true; break; - + case 1: $values .= "null, "; break; - + case 2: //Set empty $arrFields[$upperfname] = ""; @@ -856,12 +861,12 @@ function _adodb_getinsertsql(&$zthis,&$rs,$arrFields,$magicq=false,$force=2) $values .= _adodb_column_sql($zthis, 'I', $type, $upperfname, $fnameq, $arrFields, $magicq); } - + if ($bad) continue; // Set the counter for the number of fields that will be inserted. $fieldInsertedCount++; - - + + // Get the name of the fields to insert $fields .= $fnameq . ", "; } @@ -870,7 +875,7 @@ function _adodb_getinsertsql(&$zthis,&$rs,$arrFields,$magicq=false,$force=2) // If there were any inserted fields then build the rest of the insert query. if ($fieldInsertedCount <= 0) return false; - + // Get the table name from the existing query. if (!$tableName) { if (!empty($rs->tableName)) $tableName = $rs->tableName; @@ -908,7 +913,7 @@ function _adodb_getinsertsql(&$zthis,&$rs,$arrFields,$magicq=false,$force=2) function _adodb_column_sql_oci8(&$zthis,$action, $type, $fname, $fnameq, $arrFields, $magicq) { $sql = ''; - + // Based on the datatype of the field // Format the value properly for the database switch($type) { @@ -963,15 +968,15 @@ function _adodb_column_sql_oci8(&$zthis,$action, $type, $fname, $fnameq, $arrFie $sql = _adodb_column_sql($zthis, $action, $type, $fname, $fnameq, $arrFields, $magicq,false); } break; - + default: $sql = _adodb_column_sql($zthis, $action, $type, $fname, $fnameq, $arrFields, $magicq,false); break; } - + return $sql; } - + function _adodb_column_sql(&$zthis, $action, $type, $fname, $fnameq, $arrFields, $magicq, $recurse=true) { @@ -982,10 +987,10 @@ function _adodb_column_sql(&$zthis, $action, $type, $fname, $fnameq, $arrFields, break; case 'oci8': return _adodb_column_sql_oci8($zthis, $action, $type, $fname, $fnameq, $arrFields, $magicq); - + } } - + switch($type) { case "C": case "X": @@ -1000,7 +1005,7 @@ function _adodb_column_sql(&$zthis, $action, $type, $fname, $fnameq, $arrFields, case "T": $val = $zthis->DBTimeStamp($arrFields[$fname]); break; - + case "N": $val = $arrFields[$fname]; if (!is_numeric($val)) $val = str_replace(',', '.', (float)$val); @@ -1019,10 +1024,10 @@ function _adodb_column_sql(&$zthis, $action, $type, $fname, $fnameq, $arrFields, } if ($action == 'I') return $val . ", "; - - + + return $fnameq . "=" . $val . ", "; - + } @@ -1045,7 +1050,7 @@ function _adodb_debug_execute(&$zthis, $sql, $inputarr) */ // check if running from browser or command-line $inBrowser = isset($_SERVER['HTTP_USER_AGENT']); - + $dbt = $zthis->databaseType; if (isset($zthis->dsnType)) $dbt .= '-'.$zthis->dsnType; if ($inBrowser) { @@ -1063,31 +1068,31 @@ function _adodb_debug_execute(&$zthis, $sql, $inputarr) } $qID = $zthis->_query($sql,$inputarr); - + /* Alexios Fakios notes that ErrorMsg() must be called before ErrorNo() for mssql because ErrorNo() calls Execute('SELECT @ERROR'), causing recursion */ if ($zthis->databaseType == 'mssql') { // ErrorNo is a slow function call in mssql, and not reliable in PHP 4.0.6 - + if($emsg = $zthis->ErrorMsg()) { if ($err = $zthis->ErrorNo()) { if ($zthis->debug === -99) ADOConnection::outp( "


\n($dbt): ".htmlspecialchars($sqlTxt)."   $ss\n
\n",false); - + ADOConnection::outp($err.': '.$emsg); } } } else if (!$qID) { - + if ($zthis->debug === -99) if ($inBrowser) ADOConnection::outp( "
\n($dbt): ".htmlspecialchars($sqlTxt)."   $ss\n
\n",false); else ADOConnection::outp("-----
\n($dbt): ".$sqlTxt."$ss\n-----
\n",false); - + ADOConnection::outp($zthis->ErrorNo() .': '. $zthis->ErrorMsg()); } - + if ($zthis->debug === 99) _adodb_backtrace(true,9999,2); return $qID; } @@ -1096,28 +1101,28 @@ function _adodb_debug_execute(&$zthis, $sql, $inputarr) function _adodb_backtrace($printOrArr=true,$levels=9999,$skippy=0,$ishtml=null) { if (!function_exists('debug_backtrace')) return ''; - + if ($ishtml === null) $html = (isset($_SERVER['HTTP_USER_AGENT'])); else $html = $ishtml; - + $fmt = ($html) ? " %% line %4d, file: %s" : "%% line %4d, file: %s"; $MAXSTRLEN = 128; $s = ($html) ? '
' : '';
-	
+
 	if (is_array($printOrArr)) $traceArr = $printOrArr;
     // phpcs:ignore
 	else $traceArr = debug_backtrace();
 	array_shift($traceArr);
 	array_shift($traceArr);
 	$tabs = sizeof($traceArr)-2;
-	
+
 	foreach ($traceArr as $arr) {
 		if ($skippy) {$skippy -= 1; continue;}
 		$levels -= 1;
 		if ($levels < 0) break;
-		
+
 		$args = array();
 		for ($i=0; $i < $tabs; $i++) $s .=  ($html) ? '   ' : "\t";
 		$tabs -= 1;
@@ -1137,15 +1142,15 @@ function _adodb_backtrace($printOrArr=true,$levels=9999,$skippy=0,$ishtml=null)
 			}
 		}
 		$s .= $arr['function'].'('.implode(', ',$args).')';
-		
-		
+
+
 		$s .= @sprintf($fmt, $arr['line'],$arr['file'],basename($arr['file']));
-			
+
 		$s .= "\n";
 	}	
 	if ($html) $s .= '
'; if ($printOrArr) print $s; - + return $s; } /* @@ -1154,13 +1159,13 @@ function _adodb_find_from($sql) $sql = str_replace(array("\n","\r"), ' ', $sql); $charCount = strlen($sql); - + $inString = false; $quote = ''; $parentheseCount = 0; $prevChars = ''; $nextChars = ''; - + for($i = 0; $i < $charCount; $i++) { @@ -1191,4 +1196,4 @@ function _adodb_find_from($sql) } */ -?> \ No newline at end of file +?> diff --git a/src/adodb5/adodb-memcache.lib.inc.php b/src/adodb5/adodb-memcache.lib.inc.php index a42d150c..749dd41a 100644 --- a/src/adodb5/adodb-memcache.lib.inc.php +++ b/src/adodb5/adodb-memcache.lib.inc.php @@ -127,13 +127,13 @@ function readcache($filename, &$err, $secs2cache, $rsClass) if ($tdiff <= 2) { switch($tdiff) { case 2: - if ((rand() & 15) == 0) { + if ((random_int(0, mt_getrandmax()) & 15) == 0) { $err = "Timeout 2"; return $false; } break; case 1: - if ((rand() & 3) == 0) { + if ((random_int(0, mt_getrandmax()) & 3) == 0) { $err = "Timeout 1"; return $false; } @@ -165,6 +165,7 @@ function flushall($debug=false) function flushcache($filename, $debug=false) { + $key = null; if (!$this->_connected) { $err = ''; if (!$this->connect($err) && $debug) ADOConnection::outp($err); @@ -187,4 +188,4 @@ function createdir($dir, $hash) } } -?> \ No newline at end of file +?> diff --git a/src/adodb5/adodb-pager.inc.php b/src/adodb5/adodb-pager.inc.php index b2aabd47..ef5eea1d 100644 --- a/src/adodb5/adodb-pager.inc.php +++ b/src/adodb5/adodb-pager.inc.php @@ -132,9 +132,10 @@ function render_last($anchor=true) // original code by "Pablo Costa" function render_pagelinks() { - global $PHP_SELF; + $start = null; + global $PHP_SELF; $pages = $this->rs->LastPageNo(); - $linksperpage = $this->linksPerPage ? $this->linksPerPage : $pages; + $linksperpage = $this->linksPerPage ?: $pages; for($i=1; $i <= $pages; $i+=$linksperpage) { if($this->rs->AbsolutePage() >= $i) @@ -287,4 +288,4 @@ function RenderLayout($header,$grid,$footer,$attributes='border=1 bgcolor=beige' } -?> \ No newline at end of file +?> diff --git a/src/adodb5/adodb-pear.inc.php b/src/adodb5/adodb-pear.inc.php index c522f9a4..fad0d4a0 100644 --- a/src/adodb5/adodb-pear.inc.php +++ b/src/adodb5/adodb-pear.inc.php @@ -43,7 +43,7 @@ free */ -define('ADODB_PEAR',dirname(__FILE__)); +define('ADODB_PEAR',__DIR__); include_once "PEAR.php"; include_once ADODB_PEAR."/adodb-errorpear.inc.php"; include_once ADODB_PEAR."/adodb.inc.php"; @@ -111,6 +111,7 @@ class DB function factory($type) { + $dsninfo = []; include_once(ADODB_DIR."/drivers/adodb-$type.inc.php"); $obj = NewADOConnection($type); if (!is_object($obj)) $obj = new PEAR_Error('Unknown Database Driver: '.$dsninfo['phptype'],-1); @@ -138,10 +139,11 @@ function factory($type) */ function connect($dsn, $options = false) { + $persist = null; if (is_array($dsn)) { $dsninfo = $dsn; } else { - $dsninfo = DB::parseDSN($dsn); + $dsninfo = (new DB())->parseDSN($dsn); } switch ($dsninfo["phptype"]) { case 'pgsql': $type = 'postgres7'; break; @@ -364,4 +366,4 @@ function assertExtension($name) } } -?> \ No newline at end of file +?> diff --git a/src/adodb5/adodb-perf.inc.php b/src/adodb5/adodb-perf.inc.php index 17fc36bb..e5f59170 100644 --- a/src/adodb5/adodb-perf.inc.php +++ b/src/adodb5/adodb-perf.inc.php @@ -16,7 +16,7 @@ */ -if (!defined('ADODB_DIR')) include_once(dirname(__FILE__).'/adodb.inc.php'); +if (!defined('ADODB_DIR')) include_once(__DIR__.'/adodb.inc.php'); include_once(ADODB_DIR.'/tohtml.inc.php'); define( 'ADODB_OPT_HIGH', 2); @@ -66,7 +66,8 @@ function adodb_microtime() /* sql code timing */ function adodb_log_sql(&$connx,$sql,$inputarr) { - $perf_table = adodb_perf::table(); + $sql2 = null; + $perf_table = adodb_perf::table(); $connx->fnExecute = false; $a0 = microtime(true); $rs = $connx->Execute($sql,$inputarr); @@ -227,7 +228,7 @@ class adodb_perf { var $helpurl = "LogSQL help"; var $createTableSQL = false; var $maxLength = 2000; - + // Sets the tablename to be used static function table($newtable = false) { @@ -241,7 +242,8 @@ static function table($newtable = false) // returns array with info to calculate CPU Load function _CPULoad() { -/* +$info = []; + /* cpu 524152 2662 2515228 336057010 cpu0 264339 1408 1257951 168025827 @@ -263,20 +265,20 @@ function _CPULoad() if (PHP_VERSION == '5.0.2') return false; if (PHP_VERSION == '5.0.3') return false; if (PHP_VERSION == '4.3.10') return false; # see http://bugs.php.net/bug.php?id=31737 - + static $FAIL = false; if ($FAIL) return false; - + $objName = "winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\CIMV2"; $myQuery = "SELECT * FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name = '_Total'"; - + try { @$objWMIService = new COM($objName); if (!$objWMIService) { $FAIL = true; return false; } - + $info[0] = -1; $info[1] = 0; $info[2] = 0; @@ -284,23 +286,23 @@ function _CPULoad() foreach($objWMIService->ExecQuery($myQuery) as $objItem) { $info[0] = $objItem->PercentProcessorTime(); } - + } catch(Exception $e) { $FAIL = true; echo $e->getMessage(); return false; } - + return $info; } - + // Algorithm - Steve Blinch (BlitzAffe Online, http://www.blitzaffe.com) $statfile = '/proc/stat'; if (!file_exists($statfile)) return false; - + $fd = fopen($statfile,"r"); if (!$fd) return false; - + $statinfo = explode("\n",fgets($fd, 1024)); fclose($fd); foreach($statinfo as $line) { @@ -311,11 +313,11 @@ function _CPULoad() return $info; } } - + return false; - + } - + /* NOT IMPLEMENTED */ function MemInfo() { @@ -343,8 +345,8 @@ function MemInfo() Committed_AS: 348732 kB */ } - - + + /* Remember that this is client load, not db server load! */ @@ -353,7 +355,7 @@ function CPULoad() { $info = $this->_CPULoad(); if (!$info) return false; - + if (strncmp(PHP_OS,'WIN',3)==0) { return (integer) $info[0]; }else { @@ -362,34 +364,34 @@ function CPULoad() $this->_lastLoad = $info; $info = $this->_CPULoad(); } - + $last = $this->_lastLoad; $this->_lastLoad = $info; - + $d_user = $info[0] - $last[0]; $d_nice = $info[1] - $last[1]; $d_system = $info[2] - $last[2]; $d_idle = $info[3] - $last[3]; - + //printf("Delta - User: %f Nice: %f System: %f Idle: %f
",$d_user,$d_nice,$d_system,$d_idle); - + $total=$d_user+$d_nice+$d_system+$d_idle; if ($total<1) $total=1; return 100*($d_user+$d_nice+$d_system)/$total; } } - + function Tracer($sql) { $perf_table = adodb_perf::table(); $saveE = $this->conn->fnExecute; $this->conn->fnExecute = false; - + global $ADODB_FETCH_MODE; $save = $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_NUM; if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false); - + $sqlq = $this->conn->qstr($sql); $arr = $this->conn->GetArray( "select count(*),tracer @@ -403,7 +405,7 @@ function Tracer($sql) $s .= sprintf("%4d",$k[0]).'   '.strip_tags($k[1]).'
'; } } - + if (isset($savem)) $this->conn->SetFetchMode($savem); $ADODB_CACHE_MODE = $save; $this->conn->fnExecute = $saveE; @@ -419,10 +421,10 @@ function Explain($sql,$partial=false) { return false; } - + function InvalidSQL($numsql = 10) { - + if (isset($_GET['sql'])) return; $s = '

Invalid SQL

'; $saveE = $this->conn->fnExecute; @@ -434,30 +436,30 @@ function InvalidSQL($numsql = 10) $s .= rs2html($rs,false,false,false,false); } else return "

$this->helpurl. ".$this->conn->ErrorMsg()."

"; - + return $s; } - + /* This script identifies the longest running SQL */ function _SuspiciousSQL($numsql = 10) { global $ADODB_FETCH_MODE; - + $perf_table = adodb_perf::table(); $saveE = $this->conn->fnExecute; $this->conn->fnExecute = false; - + if (isset($_GET['exps']) && isset($_GET['sql'])) { $partial = !empty($_GET['part']); echo "".$this->Explain($_GET['sql'],$partial)."\n"; } - + if (isset($_GET['sql'])) return; $sql1 = $this->sql1; - + $save = $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_NUM; if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false); @@ -472,7 +474,7 @@ function _SuspiciousSQL($numsql = 10) if (isset($savem)) $this->conn->SetFetchMode($savem); $ADODB_FETCH_MODE = $save; $this->conn->fnExecute = $saveE; - + if (!$rs) return "

$this->helpurl. ".$this->conn->ErrorMsg()."

"; $s = "

Suspicious SQL

The following SQL have high average execution times
@@ -485,7 +487,7 @@ function _SuspiciousSQL($numsql = 10) $sql2 = substr($sql,0,$max-500); $raw = urlencode($sql2).'&part='.crc32($sql); } - $prefix = ""; + $prefix = ""; $suffix = ""; if ($this->explain == false || strlen($prefix)>$max) { $suffix = ' ... String too long for GET parameter: '.strlen($prefix).''; @@ -496,26 +498,26 @@ function _SuspiciousSQL($numsql = 10) $rs->MoveNext(); } return $s.""; - + } - + function CheckMemory() { return ''; } - - + + function SuspiciousSQL($numsql=10) { - return adodb_perf::_SuspiciousSQL($numsql); + return (new adodb_perf())->_SuspiciousSQL($numsql); } function ExpensiveSQL($numsql=10) { - return adodb_perf::_ExpensiveSQL($numsql); + return (new adodb_perf())->_ExpensiveSQL($numsql); } - + /* This reports the percentage of load on the instance due to the most expensive few SQL statements. Tuning these statements can often @@ -524,23 +526,23 @@ function ExpensiveSQL($numsql=10) function _ExpensiveSQL($numsql = 10) { global $ADODB_FETCH_MODE; - + $perf_table = adodb_perf::table(); $saveE = $this->conn->fnExecute; $this->conn->fnExecute = false; - + if (isset($_GET['expe']) && isset($_GET['sql'])) { $partial = !empty($_GET['part']); echo "".$this->Explain($_GET['sql'],$partial)."\n"; } - + if (isset($_GET['sql'])) return; - + $sql1 = $this->sql1; $save = $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_NUM; if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false); - + $rs = $this->conn->SelectLimit( "select sum(timer) as total,$sql1,count(*),max(timer) as max_timer,min(timer) as min_timer from $perf_table @@ -564,7 +566,7 @@ function _ExpensiveSQL($numsql = 10) $sql2 = substr($sql,0,$max-500); $raw = urlencode($sql2).'&part='.crc32($sql); } - $prefix = ""; + $prefix = ""; $suffix = ""; if($this->explain == false || strlen($prefix>$max)) { $prefix = ''; @@ -576,7 +578,7 @@ function _ExpensiveSQL($numsql = 10) } return $s.""; } - + /* Raw function to return parameter value from $settings. */ @@ -586,19 +588,20 @@ function DBParameter($param) $sql = $this->settings[$param][1]; return $this->_DBParameter($sql); } - + /* Raw function returning array of poll paramters */ function PollParameters() { + $arr = []; $arr[0] = (float)$this->DBParameter('data cache hit ratio'); $arr[1] = (float)$this->DBParameter('data reads'); $arr[2] = (float)$this->DBParameter('data writes'); $arr[3] = (integer) $this->DBParameter('current connections'); return $arr; } - + /* Low-level Get Database Parameter */ @@ -607,7 +610,7 @@ function _DBParameter($sql) $savelog = $this->conn->LogSQL(false); if (is_array($sql)) { global $ADODB_FETCH_MODE; - + $sql1 = $sql[0]; $key = $sql[1]; if (sizeof($sql)>2) $pos = $sql[2]; @@ -618,9 +621,9 @@ function _DBParameter($sql) $save = $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_NUM; if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false); - + $rs = $this->conn->Execute($sql1); - + if (isset($savem)) $this->conn->SetFetchMode($savem); $ADODB_FETCH_MODE = $save; if ($rs) { @@ -645,11 +648,11 @@ function _DBParameter($sql) $sql = str_replace('$DATABASE',$this->conn->database,$sql); $ret = $this->conn->GetOne($sql); $this->conn->LogSQL($savelog); - + return $ret; } } - + /* Warn if cache ratio falls below threshold. Displayed in "Description" column. */ @@ -659,7 +662,7 @@ function WarnCacheRatio($val) return 'Cache ratio should be at least '.$this->warnRatio.'%'; else return ''; } - + function clearsql() { $perf_table = adodb_perf::table(); @@ -669,18 +672,18 @@ function clearsql() // HIGH LEVEL UI FUNCTIONS /***********************************************************************************************/ - + function UI($pollsecs=5) { global $ADODB_LOG_CONN; - + $perf_table = adodb_perf::table(); $conn = $this->conn; - + $app = $conn->host; if ($conn->host && $conn->database) $app .= ', db='; $app .= $conn->database; - + if ($app) $app .= ', '; $savelog = $this->conn->LogSQL(false); $info = $conn->ServerInfo(); @@ -688,35 +691,35 @@ function UI($pollsecs=5) $this->clearsql(); } $this->conn->LogSQL($savelog); - + // magic quotes - + if (isset($_GET['sql'])) { $_GET['sql'] = $_GET['sql'] = str_replace(array("\\'",'\"'),array("'",'"'),$_GET['sql']); } - + if (!isset($_SESSION['ADODB_PERF_SQL'])) $nsql = $_SESSION['ADODB_PERF_SQL'] = 10; else $nsql = $_SESSION['ADODB_PERF_SQL']; - + $app .= $info['description']; - - + + if (isset($_GET['do'])) $do = $_GET['do']; else if (isset($_POST['do'])) $do = $_POST['do']; else if (isset($_GET['sql'])) $do = 'viewsql'; else $do = 'stats'; - + if (isset($_GET['nsql'])) { if ($_GET['nsql'] > 0) $nsql = $_SESSION['ADODB_PERF_SQL'] = (integer) $_GET['nsql']; } echo "ADOdb Performance Monitor on $app"; if ($do == 'viewsql') $form = "
# SQL:
"; else $form = " "; - + $allowsql = !defined('ADODB_PERF_NO_RUN_SQL'); global $ADODB_PERF_MIN; $app .= " (Min sql timing \$ADODB_PERF_MIN=$ADODB_PERF_MIN secs)"; - + if (empty($_GET['hidem'])) echo "
ADOdb Performance Monitor for $app
@@ -726,7 +729,7 @@ function UI($pollsecs=5) "$form", "
"; - + switch ($do) { default: case 'stats': @@ -745,10 +748,10 @@ function UI($pollsecs=5) echo "
";
 			$this->Poll($pollsecs);
 			break;
-		
+
 		case 'dosql':
 			if (!$allowsql) break;
-			
+
 			$this->DoSQLForm();
 			break;
 		case 'viewsql':
@@ -764,7 +767,7 @@ function UI($pollsecs=5)
 		global $ADODB_vers;
 		echo "

$ADODB_vers Sponsored by phpLens
"; } - + /* Runs in infinite loop, returning real-time statistics */ @@ -781,12 +784,12 @@ function Poll($secs=5) while (1) { $arr = $this->PollParameters(); - + $hits = sprintf('%2.2f',$arr[0]); $reads = sprintf('%12.4f',($arr[1]-$arro[1])/$secs); $writes = sprintf('%12.4f',($arr[2]-$arro[2])/$secs); $sess = sprintf('%5d',$arr[3]); - + $load = $this->CPULoad(); if ($load !== false) { $oslabel = 'WS-CPU%'; @@ -799,14 +802,14 @@ function Poll($secs=5) $cnt += 1; echo date('H:i:s').' '.$osval."$hits $sess $reads $writes\n"; flush(); - + if (connection_aborted()) return; - + sleep($secs); $arro = $arr; } } - + /* Returns basic health check in a command line interface */ @@ -814,8 +817,8 @@ function HealthCheckCLI() { return $this->HealthCheck(true); } - - + + /* Returns basic health check as HTML */ @@ -825,34 +828,34 @@ function HealthCheck($cli=false) $this->conn->fnExecute = false; if ($cli) $html = ''; else $html = $this->table.'

'.$this->conn->databaseType.'

'.$this->titles; - + $oldc = false; $bgc = ''; foreach($this->settings as $name => $arr) { if ($arr === false) break; - + if (!is_string($name)) { if ($cli) $html .= " -- $arr -- \n"; else $html .= "color>$arr  "; continue; } - + if (!is_array($arr)) break; $category = $arr[0]; $how = $arr[1]; if (sizeof($arr)>2) $desc = $arr[2]; else $desc = '   '; - - + + if ($category == 'HIDE') continue; - + $val = $this->_DBParameter($how); - + if ($desc && strncmp($desc,"=",1) === 0) { $fn = substr($desc,1); $desc = $this->$fn($val); } - + if ($val === false) { $m = $this->conn->ErrorMsg(); $val = "Error: $m"; @@ -876,52 +879,52 @@ function HealthCheck($cli=false) if (strlen($val)==0) $val = ' '; if ($cli) { $html .= str_replace(' ','',sprintf($this->cliFormat,strip_tags($name),strip_tags($val),strip_tags($desc))); - + }else { $html .= "".$name.''.$val.''.$desc."\n"; } } - + if (!$cli) $html .= "\n"; $this->conn->fnExecute = $saveE; - + return $html; } - + function Tables($orderby='1') { if (!$this->tablesSQL) return false; - + $savelog = $this->conn->LogSQL(false); $rs = $this->conn->Execute($this->tablesSQL.' order by '.$orderby); $this->conn->LogSQL($savelog); $html = rs2html($rs,false,false,false,false); return $html; } - + function CreateLogTable() { if (!$this->createTableSQL) return false; - - $table = $this->table(); + + $table = static::table(); $sql = str_replace('adodb_logsql',$table,$this->createTableSQL); $savelog = $this->conn->LogSQL(false); $ok = $this->conn->Execute($sql); $this->conn->LogSQL($savelog); return ($ok) ? true : false; } - + function DoSQLForm() { - - + + $PHP_SELF = htmlspecialchars($_SERVER['PHP_SELF']); - $sql = isset($_REQUEST['sql']) ? $_REQUEST['sql'] : ''; + $sql = $_REQUEST['sql'] ?? ''; if (isset($_SESSION['phplens_sqlrows'])) $rows = $_SESSION['phplens_sqlrows']; else $rows = 3; - + if (isset($_REQUEST['SMALLER'])) { $rows /= 2; if ($rows < 3) $rows = 3; @@ -931,7 +934,7 @@ function DoSQLForm() $rows *= 2; $_SESSION['phplens_sqlrows'] = $rows; } - + ?>
@@ -950,7 +953,7 @@ function DoSQLForm() ".htmlspecialchars($sqls)."

"; flush(); @@ -988,16 +991,16 @@ function DoSQLForm() } } // foreach } - + function SplitSQL($sql) { $arr = explode(';',$sql); return $arr; } - + /************************************************************************/ - + /** * Reorganise multiple table-indices/statistics/.. * OptimizeMode could be given by last Parameter @@ -1025,16 +1028,16 @@ function OptimizeTables() { $args = func_get_args(); $numArgs = func_num_args(); - + if ( $numArgs == 0) return false; - + $mode = ADODB_OPT_LOW; $lastArg = $args[ $numArgs - 1]; if ( !is_string($lastArg)) { $mode = $lastArg; unset( $args[ $numArgs - 1]); } - + foreach( $args as $table) { $this->optimizeTable( $table, $mode); } @@ -1054,10 +1057,10 @@ function OptimizeTables() */ function OptimizeTable( $table, $mode = ADODB_OPT_LOW) { - ADOConnection::outp( sprintf( "

%s: '%s' not implemented for driver '%s'

", __CLASS__, __FUNCTION__, $this->conn->databaseType)); + ADOConnection::outp( sprintf( "

%s: '%s' not implemented for driver '%s'

", self::class, __FUNCTION__, $this->conn->databaseType)); return false; } - + /** * Reorganise current database. * Default implementation loops over all MetaTables() and @@ -1070,7 +1073,7 @@ function optimizeDatabase() { $conn = $this->conn; if ( !$conn) return false; - + $tables = $conn->MetaTables( 'TABLES'); if ( !$tables ) return false; @@ -1079,7 +1082,7 @@ function optimizeDatabase() return false; } } - + return true; } // end hack diff --git a/src/adodb5/adodb-php4.inc.php b/src/adodb5/adodb-php4.inc.php deleted file mode 100644 index 788d9ec3..00000000 --- a/src/adodb5/adodb-php4.inc.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/src/adodb5/adodb-time.inc.php b/src/adodb5/adodb-time.inc.php index dbf83c41..af059a2d 100644 --- a/src/adodb5/adodb-time.inc.php +++ b/src/adodb5/adodb-time.inc.php @@ -407,7 +407,7 @@ function adodb_daylight_sv(&$arr, $is_gmt) function adodb_date_test_date($y1,$m,$d=13) { - $h = round(rand()% 24); + $h = round(random_int(0, mt_getrandmax())% 24); $t = adodb_mktime($h,0,0,$m,$d,$y1); $rez = adodb_date('Y-n-j H:i:s',$t); if ($h == 0) $h = '00'; @@ -525,7 +525,7 @@ function adodb_date_test() flush(); for ($i=100; --$i > 0; ) { - $ts = 3600.0*((rand()%60000)+(rand()%60000))+(rand()%60000); + $ts = 3600.0*((random_int(0, mt_getrandmax())%60000)+(random_int(0, mt_getrandmax())%60000))+(random_int(0, mt_getrandmax())%60000); $s1 = date($fmt,$ts); $s2 = adodb_date($fmt,$ts); //print "$s1
$s2

"; @@ -561,18 +561,18 @@ function adodb_date_test() print "

Testing random dates between 100 and 4000

"; adodb_date_test_date(100,1); for ($i=100; --$i >= 0;) { - $y1 = 100+rand(0,1970-100); - $m = rand(1,12); + $y1 = 100+random_int(0,1970-100); + $m = random_int(1,12); adodb_date_test_date($y1,$m); - $y1 = 3000-rand(0,3000-1970); + $y1 = 3000-random_int(0,3000-1970); adodb_date_test_date($y1,$m); } print '

'; - $start = 1960+rand(0,10); + $start = 1960+random_int(0,10); $yrs = 12; $i = 365.25*86400*($start-1970); - $offset = 36000+rand(10000,60000); + $offset = 36000+random_int(10000,60000); $max = 365*$yrs*86400; $lastyear = 0; @@ -799,6 +799,11 @@ function adodb_validdate($y,$m,$d) */ function _adodb_getdate($origd=false,$fast=false,$is_gmt=false) { +$leaf = null; +$lastd = null; +$ndays = null; +$year = null; +$month = null; static $YRS; global $_month_table_normal,$_month_table_leaf; @@ -807,7 +812,7 @@ function _adodb_getdate($origd=false,$fast=false,$is_gmt=false) $_hour_power = 3600; $_min_power = 60; - if ($d < -12219321600) $d -= 86400*10; // if 15 Oct 1582 or earlier, gregorian correction + if ($d < -12_219_321_600) $d -= 86400*10; // if 15 Oct 1582 or earlier, gregorian correction $_month_table_normal = array("",31,28,31,30,31,30,31,31,30,31,30,31); $_month_table_leaf = array("",31,29,31,30,31,30,31,31,30,31,30,31); @@ -819,43 +824,43 @@ function _adodb_getdate($origd=false,$fast=false,$is_gmt=false) if (empty($YRS)) $YRS = array( 1970 => 0, - 1960 => -315619200, - 1950 => -631152000, - 1940 => -946771200, - 1930 => -1262304000, - 1920 => -1577923200, - 1910 => -1893456000, - 1900 => -2208988800, - 1890 => -2524521600, - 1880 => -2840140800, - 1870 => -3155673600, - 1860 => -3471292800, - 1850 => -3786825600, - 1840 => -4102444800, - 1830 => -4417977600, - 1820 => -4733596800, - 1810 => -5049129600, - 1800 => -5364662400, - 1790 => -5680195200, - 1780 => -5995814400, - 1770 => -6311347200, - 1760 => -6626966400, - 1750 => -6942499200, - 1740 => -7258118400, - 1730 => -7573651200, - 1720 => -7889270400, - 1710 => -8204803200, - 1700 => -8520336000, - 1690 => -8835868800, - 1680 => -9151488000, - 1670 => -9467020800, - 1660 => -9782640000, - 1650 => -10098172800, - 1640 => -10413792000, - 1630 => -10729324800, - 1620 => -11044944000, - 1610 => -11360476800, - 1600 => -11676096000); + 1960 => -315_619_200, + 1950 => -631_152_000, + 1940 => -946_771_200, + 1930 => -1_262_304_000, + 1920 => -1_577_923_200, + 1910 => -1_893_456_000, + 1900 => -2_208_988_800, + 1890 => -2_524_521_600, + 1880 => -2_840_140_800, + 1870 => -3_155_673_600, + 1860 => -3_471_292_800, + 1850 => -3_786_825_600, + 1840 => -4_102_444_800, + 1830 => -4_417_977_600, + 1820 => -4_733_596_800, + 1810 => -5_049_129_600, + 1800 => -5_364_662_400, + 1790 => -5_680_195_200, + 1780 => -5_995_814_400, + 1770 => -6_311_347_200, + 1760 => -6_626_966_400, + 1750 => -6_942_499_200, + 1740 => -7_258_118_400, + 1730 => -7_573_651_200, + 1720 => -7_889_270_400, + 1710 => -8_204_803_200, + 1700 => -8_520_336_000, + 1690 => -8_835_868_800, + 1680 => -9_151_488_000, + 1670 => -9_467_020_800, + 1660 => -9_782_640_000, + 1650 => -10_098_172_800, + 1640 => -10_413_792_000, + 1630 => -10_729_324_800, + 1620 => -11_044_944_000, + 1610 => -11_360_476_800, + 1600 => -11_676_096_000); if ($is_gmt) $origd = $d; // The valid range of a 32bit signed timestamp is typically from @@ -1206,6 +1211,7 @@ function adodb_gmmktime($hr,$min,$sec,$mon=false,$day=false,$year=false,$is_dst= */ function adodb_mktime($hr,$min,$sec,$mon=false,$day=false,$year=false,$is_dst=false,$is_gmt=false) { + $loop_table = []; if (!defined('ADODB_TEST_DATES')) { if ($mon === false) { @@ -1301,12 +1307,12 @@ function adodb_mktime($hr,$min,$sec,$mon=false,$day=false,$year=false,$is_dst=fa } } $_total_date += $loop_table[$mon] - $day; - + $_day_time = $hr * $_hour_power + $min * $_min_power + $sec; $_day_time = $_day_power - $_day_time; $ret = -( $_total_date * $_day_power + $_day_time - $gmt_different); - if ($ret < -12220185600) $ret += 10*86400; // if earlier than 5 Oct 1582 - gregorian correction - else if ($ret < -12219321600) $ret = -12219321600; // if in limbo, reset to 15 Oct 1582. + if ($ret < -12_220_185_600) $ret += 10*86400; // if earlier than 5 Oct 1582 - gregorian correction + else if ($ret < -12_219_321_600) $ret = -12_219_321_600; // if in limbo, reset to 15 Oct 1582. } //print " dmy=$day/$mon/$year $hr:$min:$sec => " .$ret; return $ret; @@ -1337,9 +1343,9 @@ function adodb_strftime($fmt, $ts=false,$is_gmt=false) $hasAM = strrpos($tstr,'M') !== false; */ # see http://phplens.com/lens/lensforum/msgs.php?id=14865 for reasoning, and changelog for version 0.24 - $dstr = gmstrftime('%x',31366800); // 30 Dec 1970, 1 am + $dstr = gmstrftime('%x',31_366_800); // 30 Dec 1970, 1 am $sep = substr($dstr,2,1); - $tstr = strtoupper(gmstrftime('%X',31366800)); // 30 Dec 1970, 1 am + $tstr = strtoupper(gmstrftime('%X',31_366_800)); // 30 Dec 1970, 1 am $hasAM = strrpos($tstr,'M') !== false; $ADODB_DATE_LOCALE = array(); @@ -1423,4 +1429,4 @@ function adodb_strftime($fmt, $ts=false,$is_gmt=false) } -?> \ No newline at end of file +?> diff --git a/src/adodb5/adodb-xmlschema.inc.php b/src/adodb5/adodb-xmlschema.inc.php index 50c2fa0e..096bcbc4 100644 --- a/src/adodb5/adodb-xmlschema.inc.php +++ b/src/adodb5/adodb-xmlschema.inc.php @@ -280,8 +280,8 @@ function _tag_open( &$parser, $tag, $attributes ) { // Add a field $fieldName = $attributes['NAME']; $fieldType = $attributes['TYPE']; - $fieldSize = isset( $attributes['SIZE'] ) ? $attributes['SIZE'] : NULL; - $fieldOpts = isset( $attributes['OPTS'] ) ? $attributes['OPTS'] : NULL; + $fieldSize = $attributes['SIZE'] ?? NULL; + $fieldOpts = $attributes['OPTS'] ?? NULL; $this->addField( $fieldName, $fieldType, $fieldSize, $fieldOpts ); break; @@ -496,10 +496,10 @@ function create( &$xmls ) { // drop table if( $this->drop_table ) { $sql[] = $xmls->dict->DropTableSQL( $this->name ); - + return $sql; } - + // drop any existing fields not in schema foreach( $legacy_fields as $field_id => $field ) { if( !isset( $this->fields[$field_id] ) ) { @@ -856,7 +856,7 @@ function addField( $attributes ) { if( isset( $attributes['NAME'] ) ) { $name = $attributes['NAME']; } else { - $name = count($this->data[$this->row]); + $name = is_countable($this->data[$this->row]) ? count($this->data[$this->row]) : 0; } // Set the field index so we know where we are @@ -889,7 +889,7 @@ function addData( $cdata ) { */ function create( &$xmls ) { $table = $xmls->dict->TableName($this->parent->name); - $table_field_count = count($this->parent->fields); + $table_field_count = is_countable($this->parent->fields) ? count($this->parent->fields) : 0; $sql = array(); // eliminate any columns that aren't in the table @@ -900,7 +900,8 @@ function create( &$xmls ) { foreach( $row as $field_id => $field_data ) { if( !array_key_exists( $field_id, $table_fields ) ) { if( is_numeric( $field_id ) ) { - $field_id = reset( array_keys( $table_fields ) ); + $arrayKeys = array_keys( $table_fields ); + $field_id = reset( $arrayKeys ); } else { continue; } @@ -1774,7 +1775,7 @@ function TransformSchema( $schema, $xsl, $schematype='string' ) return FALSE; } - $xsl_file = dirname( __FILE__ ) . '/xsl/' . $xsl . '.xsl'; + $xsl_file = __DIR__ . '/xsl/' . $xsl . '.xsl'; // look for xsl if( !is_readable( $xsl_file ) ) { @@ -2191,7 +2192,7 @@ function logMsg( $msg, $title = NULL, $force = FALSE ) { echo '

' . htmlentities( $title ) . '

'; } - $calling_class = get_called_class(); + $calling_class = static::class; $obj = new $calling_class(); if( is_object($obj) ) { echo '[' . get_class($obj) . '] '; @@ -2202,4 +2203,3 @@ function logMsg( $msg, $title = NULL, $force = FALSE ) { echo '
'; } } -?> diff --git a/src/adodb5/adodb-xmlschema03.inc.php b/src/adodb5/adodb-xmlschema03.inc.php index 559954f3..486a264c 100644 --- a/src/adodb5/adodb-xmlschema03.inc.php +++ b/src/adodb5/adodb-xmlschema03.inc.php @@ -305,7 +305,7 @@ function _tag_open( &$parser, $tag, $attributes ) { // Add a field $fieldName = $attributes['NAME']; $fieldType = $attributes['TYPE']; - $fieldSize = isset( $attributes['SIZE'] ) ? $attributes['SIZE'] : NULL; + $fieldSize = $attributes['SIZE'] ?? NULL; $fieldOpts = !empty( $attributes['OPTS'] ) ? $attributes['OPTS'] : NULL; $this->addField( $fieldName, $fieldType, $fieldSize, $fieldOpts ); @@ -537,10 +537,10 @@ function create( &$xmls ) { // drop table if( $this->drop_table ) { $sql[] = $xmls->dict->DropTableSQL( $this->name ); - + return $sql; } - + // drop any existing fields not in schema foreach( $legacy_fields as $field_id => $field ) { if( !isset( $this->fields[$field_id] ) ) { @@ -904,7 +904,7 @@ function addField( $attributes ) { if( isset( $attributes['NAME'] ) ) { $this->current_field = $this->FieldID( $attributes['NAME'] ); } else { - $this->current_field = count( $this->data[$this->row] ); + $this->current_field = is_countable($this->data[$this->row]) ? count( $this->data[$this->row] ) : 0; } // initialise data @@ -935,7 +935,7 @@ function addData( $cdata ) { */ function create( &$xmls ) { $table = $xmls->dict->TableName($this->parent->name); - $table_field_count = count($this->parent->fields); + $table_field_count = is_countable($this->parent->fields) ? count($this->parent->fields) : 0; $tables = $xmls->db->MetaTables(); $sql = array(); @@ -955,7 +955,8 @@ function create( &$xmls ) { foreach( $row as $field_id => $field_data ) { if( !array_key_exists( $field_id, $table_fields ) ) { if( is_numeric( $field_id ) ) { - $field_id = reset( array_keys( $table_fields ) ); + $arrayKeys = array_keys( $table_fields ); + $field_id = reset( $arrayKeys ); } else { continue; } @@ -1934,7 +1935,7 @@ function TransformSchema( $schema, $xsl, $schematype='string' ) return FALSE; } - $xsl_file = dirname( __FILE__ ) . '/xsl/' . $xsl . '.xsl'; + $xsl_file = __DIR__ . '/xsl/' . $xsl . '.xsl'; // look for xsl if( !is_readable( $xsl_file ) ) { @@ -2372,7 +2373,7 @@ function logMsg( $msg, $title = NULL, $force = FALSE ) { echo '

' . htmlentities( $title ) . '

'; } - $calling_class = get_called_class(); + $calling_class = static::class; $obj = new $calling_class(); if( @is_object($obj) ) { echo '[' . get_class($obj) . '] '; diff --git a/src/adodb5/adodb.inc.php b/src/adodb5/adodb.inc.php index ec66fb5a..8fed3705 100644 --- a/src/adodb5/adodb.inc.php +++ b/src/adodb5/adodb.inc.php @@ -44,7 +44,7 @@ class library to hide the differences between the different database API's (enca * Set ADODB_DIR to the directory where this file resides... * This constant was formerly called $ADODB_RootPath */ - if (!defined('ADODB_DIR')) define('ADODB_DIR',dirname(__FILE__)); + if (!defined('ADODB_DIR')) define('ADODB_DIR',__DIR__); //============================================================================================== // GLOBAL VARIABLES @@ -172,7 +172,7 @@ function ADODB_Setup() // Initialize random number generator for randomizing cache flushes // -- note Since PHP 4.2.0, the seed becomes optional and defaults to a random value if omitted. - srand(((double)microtime())*1000000); + mt_srand(((double)microtime())*1_000_000); /** * ADODB version as a string. @@ -256,6 +256,7 @@ function &readcache($filename, &$err, $secs2cache, $rsClass) // flush all items in cache function flushall($debug=false) { + $dir = null; global $ADODB_CACHE_DIR; $rez = false; @@ -492,7 +493,7 @@ static function outp($msg,$newline=true) function Time() { $rs = $this->_Execute("select $this->sysTimeStamp"); - if ($rs && !$rs->EOF) return $this->UnixTimeStamp(reset($rs->fields)); + if ($rs && !$rs->EOF) return static::UnixTimeStamp(reset($rs->fields)); return false; } @@ -674,7 +675,7 @@ function Prepare($sql) */ function PrepareSP($sql,$param=true) { - return $this->Prepare($sql,$param); + return $this->Prepare($sql); } /** @@ -1376,7 +1377,7 @@ function &_rs2rs(&$rs,$nrows=-1,$offset=-1,$close=true) $rs2->sql = $rs->sql; $rs2->dataProvider = $this->dataProvider; $rs2->InitArrayFields($arr,$flds); - $rs2->fetchMode = isset($rs->adodbFetchMode) ? $rs->adodbFetchMode : $rs->fetchMode; + $rs2->fetchMode = $rs->adodbFetchMode ?? $rs->fetchMode; return $rs2; } @@ -1595,7 +1596,7 @@ function GetRandRow($sql, $arr= false) { $rezarr = $this->GetAll($sql, $arr); $sz = sizeof($rezarr); - return $rezarr[abs(rand()) % $sz]; + return $rezarr[abs(random_int(0, mt_getrandmax())) % $sz]; } /** @@ -2557,7 +2558,7 @@ static function UnixTimeStamp($v) function UserDate($v,$fmt='Y-m-d',$gmt=false) { - $tt = $this->UnixDate($v); + $tt = static::UnixDate($v); // $tt == -1 if pre TIMESTAMP_FIRST_YEAR if (($tt === false || $tt == -1) && $v != false) return $v; @@ -2581,7 +2582,7 @@ function UserTimeStamp($v,$fmt='Y-m-d H:i:s',$gmt=false) if (!isset($v)) return $this->emptyTimeStamp; # strlen(14) allows YYYYMMDDHHMMSS format if (is_numeric($v) && strlen($v)<14) return ($gmt) ? adodb_gmdate($fmt,$v) : adodb_date($fmt,$v); - $tt = $this->UnixTimeStamp($v); + $tt = static::UnixTimeStamp($v); // $tt == -1 if pre TIMESTAMP_FIRST_YEAR if (($tt === false || $tt == -1) && $v != false) return $v; if ($tt == 0) return $this->emptyTimeStamp; @@ -3198,7 +3199,7 @@ function GetAssoc($force_array = false, $first2cols = false) function UserTimeStamp($v,$fmt='Y-m-d H:i:s') { if (is_numeric($v) && strlen($v)<14) return adodb_date($fmt,$v); - $tt = $this->UnixTimeStamp($v); + $tt = static::UnixTimeStamp($v); // $tt == -1 if pre TIMESTAMP_FIRST_YEAR if (($tt === false || $tt == -1) && $v != false) return $v; if ($tt === 0) return $this->emptyTimeStamp; @@ -3214,7 +3215,7 @@ function UserTimeStamp($v,$fmt='Y-m-d H:i:s') */ function UserDate($v,$fmt='Y-m-d') { - $tt = $this->UnixDate($v); + $tt = static::UnixDate($v); // $tt == -1 if pre TIMESTAMP_FIRST_YEAR if (($tt === false || $tt == -1) && $v != false) return $v; else if ($tt == 0) return $this->emptyDate; @@ -3490,7 +3491,7 @@ function RecordCount() {return $this->_numOfRows;} */ function MaxRecordCount() { - return ($this->_maxRecordCount) ? $this->_maxRecordCount : $this->RecordCount(); + return $this->_maxRecordCount ?: $this->RecordCount(); } /** @@ -3791,7 +3792,7 @@ function MetaType($t,$len=-1,$fieldobj=false) $tmap = false; $t = strtoupper($t); - $tmap = (isset($typeMap[$t])) ? $typeMap[$t] : 'N'; + $tmap = $typeMap[$t] ?? 'N'; switch ($tmap) { case 'C': @@ -4003,7 +4004,7 @@ function _initrs() /* Use associative array to get fields array */ function Fields($colname) { - $mode = isset($this->adodbFetchMode) ? $this->adodbFetchMode : $this->fetchMode; + $mode = $this->adodbFetchMode ?? $this->fetchMode; if ($mode & ADODB_FETCH_ASSOC) { if (!isset($this->fields[$colname]) && !is_null($this->fields[$colname])) $colname = strtolower($colname); @@ -4150,6 +4151,9 @@ function NewADOConnection($db='') */ function ADONewConnection($db='') { + $obj = null; + $persist = null; + $nconnect = null; GLOBAL $ADODB_NEWCONNECTION, $ADODB_LASTDB; if (!defined('ADODB_ASSOC_CASE')) define('ADODB_ASSOC_CASE',2); @@ -4314,7 +4318,7 @@ function _adodb_getdriver($provider,$drivername,$perf=false) switch($drivername) { case 'mysqlt': - case 'mysqli': + case \mysqli::class: $drivername='mysql'; break; case 'postgres7': diff --git a/src/adodb5/contrib/toxmlrpc.inc.php b/src/adodb5/contrib/toxmlrpc.inc.php deleted file mode 100644 index 030d60af..00000000 --- a/src/adodb5/contrib/toxmlrpc.inc.php +++ /dev/null @@ -1,183 +0,0 @@ -GetArray()) would work with: - * - ADODB_FETCH_BOTH - * - null values - */ - - /** - * Include the main libraries - */ - require_once('xmlrpc.inc'); - if (!defined('ADODB_DIR')) require_once('adodb.inc.php'); - - /** - * Builds an xmlrpc struct value out of an AdoDB recordset - */ - function rs2xmlrpcval(&$adodbrs) { - - $header = rs2xmlrpcval_header($adodbrs); - $body = rs2xmlrpcval_body($adodbrs); - - // put it all together and build final xmlrpc struct - $xmlrpcrs = new xmlrpcval ( array( - "header" => $header, - "body" => $body, - ), "struct"); - - return $xmlrpcrs; - - } - - /** - * Builds an xmlrpc struct value describing an AdoDB recordset - */ - function rs2xmlrpcval_header($adodbrs) - { - $numfields = $adodbrs->FieldCount(); - $numrecords = $adodbrs->RecordCount(); - - // build structure holding recordset information - $fieldstruct = array(); - for ($i = 0; $i < $numfields; $i++) { - $fld = $adodbrs->FetchField($i); - $fieldarray = array(); - if (isset($fld->name)) - $fieldarray["name"] = new xmlrpcval ($fld->name); - if (isset($fld->type)) - $fieldarray["type"] = new xmlrpcval ($fld->type); - if (isset($fld->max_length)) - $fieldarray["max_length"] = new xmlrpcval ($fld->max_length, "int"); - if (isset($fld->not_null)) - $fieldarray["not_null"] = new xmlrpcval ($fld->not_null, "boolean"); - if (isset($fld->has_default)) - $fieldarray["has_default"] = new xmlrpcval ($fld->has_default, "boolean"); - if (isset($fld->default_value)) - $fieldarray["default_value"] = new xmlrpcval ($fld->default_value); - $fieldstruct[$i] = new xmlrpcval ($fieldarray, "struct"); - } - $fieldcount = new xmlrpcval ($numfields, "int"); - $recordcount = new xmlrpcval ($numrecords, "int"); - $sql = new xmlrpcval ($adodbrs->sql); - $fieldinfo = new xmlrpcval ($fieldstruct, "array"); - - $header = new xmlrpcval ( array( - "fieldcount" => $fieldcount, - "recordcount" => $recordcount, - "sql" => $sql, - "fieldinfo" => $fieldinfo - ), "struct"); - - return $header; - } - - /** - * Builds an xmlrpc struct value out of an AdoDB recordset - * (data values only, no data definition) - */ - function rs2xmlrpcval_body($adodbrs) - { - $numfields = $adodbrs->FieldCount(); - - // build structure containing recordset data - $adodbrs->MoveFirst(); - $rows = array(); - while (!$adodbrs->EOF) { - $columns = array(); - // This should work on all cases of fetch mode: assoc, num, both or default - if ($adodbrs->fetchMode == 'ADODB_FETCH_BOTH' || count($adodbrs->fields) == 2 * $adodbrs->FieldCount()) - for ($i = 0; $i < $numfields; $i++) - if ($adodbrs->fields[$i] === null) - $columns[$i] = new xmlrpcval (''); - else - $columns[$i] = xmlrpc_encode ($adodbrs->fields[$i]); - else - foreach ($adodbrs->fields as $val) - if ($val === null) - $columns[] = new xmlrpcval (''); - else - $columns[] = xmlrpc_encode ($val); - - $rows[] = new xmlrpcval ($columns, "array"); - - $adodbrs->MoveNext(); - } - $body = new xmlrpcval ($rows, "array"); - - return $body; - } - - /** - * Returns an xmlrpc struct value as string out of an AdoDB recordset - */ - function rs2xmlrpcstring (&$adodbrs) { - $xmlrpc = rs2xmlrpcval ($adodbrs); - if ($xmlrpc) - return $xmlrpc->serialize(); - else - return null; - } - - /** - * Given a well-formed xmlrpc struct object returns an AdoDB object - * - * @todo add some error checking on the input value - */ - function xmlrpcval2rs (&$xmlrpcval) { - - $fields_array = array(); - $data_array = array(); - - // rebuild column information - $header = $xmlrpcval->structmem('header'); - - $numfields = $header->structmem('fieldcount'); - $numfields = $numfields->scalarval(); - $numrecords = $header->structmem('recordcount'); - $numrecords = $numrecords->scalarval(); - $sqlstring = $header->structmem('sql'); - $sqlstring = $sqlstring->scalarval(); - - $fieldinfo = $header->structmem('fieldinfo'); - for ($i = 0; $i < $numfields; $i++) { - $temp = $fieldinfo->arraymem($i); - $fld = new ADOFieldObject(); - while (list($key,$value) = $temp->structeach()) { - if ($key == "name") $fld->name = $value->scalarval(); - if ($key == "type") $fld->type = $value->scalarval(); - if ($key == "max_length") $fld->max_length = $value->scalarval(); - if ($key == "not_null") $fld->not_null = $value->scalarval(); - if ($key == "has_default") $fld->has_default = $value->scalarval(); - if ($key == "default_value") $fld->default_value = $value->scalarval(); - } // while - $fields_array[] = $fld; - } // for - - // fetch recordset information into php array - $body = $xmlrpcval->structmem('body'); - for ($i = 0; $i < $numrecords; $i++) { - $data_array[$i]= array(); - $xmlrpcrs_row = $body->arraymem($i); - for ($j = 0; $j < $numfields; $j++) { - $temp = $xmlrpcrs_row->arraymem($j); - $data_array[$i][$j] = $temp->scalarval(); - } // for j - } // for i - - // finally build in-memory recordset object and return it - $rs = new ADORecordSet_array(); - $rs->InitArrayFields($data_array,$fields_array); - return $rs; - - } - -?> \ No newline at end of file diff --git a/src/adodb5/datadict/datadict-access.inc.php b/src/adodb5/datadict/datadict-access.inc.php deleted file mode 100644 index 906c8a74..00000000 --- a/src/adodb5/datadict/datadict-access.inc.php +++ /dev/null @@ -1,96 +0,0 @@ -debug) ADOConnection::outp("Warning: Access does not supported DEFAULT values (field $fname)"); - } - if ($fnotnull) $suffix .= ' NOT NULL'; - if ($fconstraint) $suffix .= ' '.$fconstraint; - return $suffix; - } - - function CreateDatabase($dbname,$options=false) - { - return array(); - } - - - function SetSchema($schema) - { - } - - function AlterColumnSQL($tabname, $flds) - { - if ($this->debug) ADOConnection::outp("AlterColumnSQL not supported"); - return array(); - } - - - function DropColumnSQL($tabname, $flds) - { - if ($this->debug) ADOConnection::outp("DropColumnSQL not supported"); - return array(); - } - -} - - -?> \ No newline at end of file diff --git a/src/adodb5/datadict/datadict-db2.inc.php b/src/adodb5/datadict/datadict-db2.inc.php deleted file mode 100644 index 5f02f23e..00000000 --- a/src/adodb5/datadict/datadict-db2.inc.php +++ /dev/null @@ -1,144 +0,0 @@ -debug) ADOConnection::outp("AlterColumnSQL not supported"); - return array(); - } - - - function DropColumnSQL($tabname, $flds) - { - if ($this->debug) ADOConnection::outp("DropColumnSQL not supported"); - return array(); - } - - - function ChangeTableSQL($tablename, $flds, $tableoptions = false) - { - - /** - Allow basic table changes to DB2 databases - DB2 will fatally reject changes to non character columns - - */ - - $validTypes = array("CHAR","VARC"); - $invalidTypes = array("BIGI","BLOB","CLOB","DATE", "DECI","DOUB", "INTE", "REAL","SMAL", "TIME"); - // check table exists - $cols = $this->MetaColumns($tablename); - if ( empty($cols)) { - return $this->CreateTableSQL($tablename, $flds, $tableoptions); - } - - // already exists, alter table instead - list($lines,$pkey) = $this->_GenFields($flds); - $alter = 'ALTER TABLE ' . $this->TableName($tablename); - $sql = array(); - - foreach ( $lines as $id => $v ) { - if ( isset($cols[$id]) && is_object($cols[$id]) ) { - /** - If the first field of $v is the fieldname, and - the second is the field type/size, we assume its an - attempt to modify the column size, so check that it is allowed - $v can have an indeterminate number of blanks between the - fields, so account for that too - */ - $vargs = explode(' ' , $v); - // assume that $vargs[0] is the field name. - $i=0; - // Find the next non-blank value; - for ($i=1;$ialterCol . ' ' . $v; - } else { - $sql[] = $alter . $this->addCol . ' ' . $v; - } - } - - return $sql; - } - -} - - -?> \ No newline at end of file diff --git a/src/adodb5/datadict/datadict-firebird.inc.php b/src/adodb5/datadict/datadict-firebird.inc.php deleted file mode 100644 index 5794c8b2..00000000 --- a/src/adodb5/datadict/datadict-firebird.inc.php +++ /dev/null @@ -1,152 +0,0 @@ -connection) ) { - return $name; - } - - $quote = $this->connection->nameQuote; - - // if name is of the form `name`, quote it - if ( preg_match('/^`(.+)`$/', $name, $matches) ) { - return $quote . $matches[1] . $quote; - } - - // if name contains special characters, quote it - if ( !preg_match('/^[' . $this->nameRegex . ']+$/', $name) ) { - return $quote . $name . $quote; - } - - return $quote . $name . $quote; - } - - function CreateDatabase($dbname, $options=false) - { - $options = $this->_Options($options); - $sql = array(); - - $sql[] = "DECLARE EXTERNAL FUNCTION LOWER CSTRING(80) RETURNS CSTRING(80) FREE_IT ENTRY_POINT 'IB_UDF_lower' MODULE_NAME 'ib_udf'"; - - return $sql; - } - - function _DropAutoIncrement($t) - { - if (strpos($t,'.') !== false) { - $tarr = explode('.',$t); - return 'DROP GENERATOR '.$tarr[0].'."gen_'.$tarr[1].'"'; - } - return 'DROP GENERATOR "GEN_'.$t; - } - - - function _CreateSuffix($fname,&$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned) - { - $suffix = ''; - - if (strlen($fdefault)) $suffix .= " DEFAULT $fdefault"; - if ($fnotnull) $suffix .= ' NOT NULL'; - if ($fautoinc) $this->seqField = $fname; - if ($fconstraint) $suffix .= ' '.$fconstraint; - - return $suffix; - } - -/* -CREATE or replace TRIGGER jaddress_insert -before insert on jaddress -for each row -begin -IF ( NEW."seqField" IS NULL OR NEW."seqField" = 0 ) THEN - NEW."seqField" = GEN_ID("GEN_tabname", 1); -end; -*/ - function _Triggers($tabname,$tableoptions) - { - if (!$this->seqField) return array(); - - $tab1 = preg_replace( '/"/', '', $tabname ); - if ($this->schema) { - $t = strpos($tab1,'.'); - if ($t !== false) $tab = substr($tab1,$t+1); - else $tab = $tab1; - $seqField = $this->seqField; - $seqname = $this->schema.'.'.$this->seqPrefix.$tab; - $trigname = $this->schema.'.trig_'.$this->seqPrefix.$tab; - } else { - $seqField = $this->seqField; - $seqname = $this->seqPrefix.$tab1; - $trigname = 'trig_'.$seqname; - } - if (isset($tableoptions['REPLACE'])) - { $sql[] = "DROP GENERATOR \"$seqname\""; - $sql[] = "CREATE GENERATOR \"$seqname\""; - $sql[] = "ALTER TRIGGER \"$trigname\" BEFORE INSERT OR UPDATE AS BEGIN IF ( NEW.$seqField IS NULL OR NEW.$seqField = 0 ) THEN NEW.$seqField = GEN_ID(\"$seqname\", 1); END"; - } - else - { $sql[] = "CREATE GENERATOR \"$seqname\""; - $sql[] = "CREATE TRIGGER \"$trigname\" FOR $tabname BEFORE INSERT OR UPDATE AS BEGIN IF ( NEW.$seqField IS NULL OR NEW.$seqField = 0 ) THEN NEW.$seqField = GEN_ID(\"$seqname\", 1); END"; - } - - $this->seqField = false; - return $sql; - } - -} - - -?> \ No newline at end of file diff --git a/src/adodb5/datadict/datadict-generic.inc.php b/src/adodb5/datadict/datadict-generic.inc.php index 8f24d37e..5d8e8f62 100644 --- a/src/adodb5/datadict/datadict-generic.inc.php +++ b/src/adodb5/datadict/datadict-generic.inc.php @@ -5,43 +5,43 @@ Released under both BSD license and Lesser GPL library license. Whenever there is any discrepancy between the two licenses, the BSD license will take precedence. - + Set tabs to 4 for best viewing. - + */ // security - hide paths if (!defined('ADODB_DIR')) die(); class ADODB2_generic extends ADODB_DataDict { - + var $databaseType = 'generic'; var $seqField = false; - - + + function ActualType($meta) { switch($meta) { case 'C': return 'VARCHAR'; case 'XL': case 'X': return 'VARCHAR(250)'; - + case 'C2': return 'VARCHAR'; case 'X2': return 'VARCHAR(250)'; - + case 'B': return 'VARCHAR'; - + case 'D': return 'DATE'; case 'TS': case 'T': return 'DATE'; - + case 'L': return 'DECIMAL(1)'; case 'I': return 'DECIMAL(10)'; case 'I1': return 'DECIMAL(3)'; case 'I2': return 'DECIMAL(5)'; case 'I4': return 'DECIMAL(10)'; case 'I8': return 'DECIMAL(20)'; - + case 'F': return 'DECIMAL(32,8)'; case 'N': return 'DECIMAL'; default: @@ -54,14 +54,14 @@ function AlterColumnSQL($tabname, $flds) if ($this->debug) ADOConnection::outp("AlterColumnSQL not supported"); return array(); } - - + + function DropColumnSQL($tabname, $flds) { if ($this->debug) ADOConnection::outp("DropColumnSQL not supported"); return array(); } - + } /* @@ -71,51 +71,51 @@ function ActualType($meta) switch($meta) { case 'C': return 'VARCHAR'; case 'X': return 'VARCHAR'; - + case 'C2': return 'VARCHAR'; // up to 32K case 'X2': return 'VARCHAR'; - + case 'B': return 'BLOB'; - + case 'D': return 'DATE'; case 'T': return 'TIMESTAMP'; - + case 'L': return 'SMALLINT'; case 'I': return 'INTEGER'; case 'I1': return 'SMALLINT'; case 'I2': return 'SMALLINT'; case 'I4': return 'INTEGER'; case 'I8': return 'BIGINT'; - + case 'F': return 'DOUBLE'; case 'N': return 'DECIMAL'; default: return $meta; } } - + // ifx function ActualType($meta) { switch($meta) { case 'C': return 'VARCHAR';// 255 case 'X': return 'TEXT'; - + case 'C2': return 'NVARCHAR'; case 'X2': return 'TEXT'; - + case 'B': return 'BLOB'; - + case 'D': return 'DATE'; case 'T': return 'DATETIME'; - + case 'L': return 'SMALLINT'; case 'I': return 'INTEGER'; case 'I1': return 'SMALLINT'; case 'I2': return 'SMALLINT'; case 'I4': return 'INTEGER'; case 'I8': return 'DECIMAL(20)'; - + case 'F': return 'FLOAT'; case 'N': return 'DECIMAL'; default: @@ -123,4 +123,4 @@ function ActualType($meta) } } */ -?> \ No newline at end of file +?> diff --git a/src/adodb5/datadict/datadict-ibase.inc.php b/src/adodb5/datadict/datadict-ibase.inc.php deleted file mode 100644 index 6bbd334f..00000000 --- a/src/adodb5/datadict/datadict-ibase.inc.php +++ /dev/null @@ -1,68 +0,0 @@ -debug) ADOConnection::outp("AlterColumnSQL not supported"); - return array(); - } - - - function DropColumnSQL($tabname, $flds) - { - if ($this->debug) ADOConnection::outp("DropColumnSQL not supported"); - return array(); - } - -} - - -?> \ No newline at end of file diff --git a/src/adodb5/datadict/datadict-informix.inc.php b/src/adodb5/datadict/datadict-informix.inc.php deleted file mode 100644 index a0d96672..00000000 --- a/src/adodb5/datadict/datadict-informix.inc.php +++ /dev/null @@ -1,81 +0,0 @@ -debug) ADOConnection::outp("AlterColumnSQL not supported"); - return array(); - } - - - function DropColumnSQL($tabname, $flds) - { - if ($this->debug) ADOConnection::outp("DropColumnSQL not supported"); - return array(); - } - - // return string must begin with space - function _CreateSuffix($fname, &$ftype, $fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned) - { - if ($fautoinc) { - $ftype = 'SERIAL'; - return ''; - } - $suffix = ''; - if (strlen($fdefault)) $suffix .= " DEFAULT $fdefault"; - if ($fnotnull) $suffix .= ' NOT NULL'; - if ($fconstraint) $suffix .= ' '.$fconstraint; - return $suffix; - } - -} - -?> \ No newline at end of file diff --git a/src/adodb5/datadict/datadict-mssql.inc.php b/src/adodb5/datadict/datadict-mssql.inc.php deleted file mode 100644 index b4c9f861..00000000 --- a/src/adodb5/datadict/datadict-mssql.inc.php +++ /dev/null @@ -1,284 +0,0 @@ -type; - $len = $fieldobj->max_length; - } - - $len = -1; // mysql max_length is not accurate - switch (strtoupper($t)) { - case 'R': - case 'INT': - case 'INTEGER': return 'I'; - case 'BIT': - case 'TINYINT': return 'I1'; - case 'SMALLINT': return 'I2'; - case 'BIGINT': return 'I8'; - case 'SMALLDATETIME': return 'T'; - case 'REAL': - case 'FLOAT': return 'F'; - default: return parent::MetaType($t,$len,$fieldobj); - } - } - - function ActualType($meta) - { - switch(strtoupper($meta)) { - - case 'C': return 'VARCHAR'; - case 'XL': return (isset($this)) ? $this->typeXL : 'TEXT'; - case 'X': return (isset($this)) ? $this->typeX : 'TEXT'; ## could be varchar(8000), but we want compat with oracle - case 'C2': return 'NVARCHAR'; - case 'X2': return 'NTEXT'; - - case 'B': return 'IMAGE'; - - case 'D': return 'DATETIME'; - - case 'TS': - case 'T': return 'DATETIME'; - case 'L': return 'BIT'; - - case 'R': - case 'I': return 'INT'; - case 'I1': return 'TINYINT'; - case 'I2': return 'SMALLINT'; - case 'I4': return 'INT'; - case 'I8': return 'BIGINT'; - - case 'F': return 'REAL'; - case 'N': return 'NUMERIC'; - default: - return $meta; - } - } - - - function AddColumnSQL($tabname, $flds) - { - $tabname = $this->TableName ($tabname); - $f = array(); - list($lines,$pkey) = $this->_GenFields($flds); - $s = "ALTER TABLE $tabname $this->addCol"; - foreach($lines as $v) { - $f[] = "\n $v"; - } - $s .= implode(', ',$f); - $sql[] = $s; - return $sql; - } - - /* - function AlterColumnSQL($tabname, $flds) - { - $tabname = $this->TableName ($tabname); - $sql = array(); - list($lines,$pkey) = $this->_GenFields($flds); - foreach($lines as $v) { - $sql[] = "ALTER TABLE $tabname $this->alterCol $v"; - } - - return $sql; - } - */ - - function DropColumnSQL($tabname, $flds) - { - $tabname = $this->TableName ($tabname); - if (!is_array($flds)) - $flds = explode(',',$flds); - $f = array(); - $s = 'ALTER TABLE ' . $tabname; - foreach($flds as $v) { - $f[] = "\n$this->dropCol ".$this->NameQuote($v); - } - $s .= implode(', ',$f); - $sql[] = $s; - return $sql; - } - - // return string must begin with space - function _CreateSuffix($fname,&$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned) - { - $suffix = ''; - if (strlen($fdefault)) $suffix .= " DEFAULT $fdefault"; - if ($fautoinc) $suffix .= ' IDENTITY(1,1)'; - if ($fnotnull) $suffix .= ' NOT NULL'; - else if ($suffix == '') $suffix .= ' NULL'; - if ($fconstraint) $suffix .= ' '.$fconstraint; - return $suffix; - } - - /* -CREATE TABLE - [ database_name.[ owner ] . | owner. ] table_name - ( { < column_definition > - | column_name AS computed_column_expression - | < table_constraint > ::= [ CONSTRAINT constraint_name ] } - - | [ { PRIMARY KEY | UNIQUE } [ ,...n ] - ) - -[ ON { filegroup | DEFAULT } ] -[ TEXTIMAGE_ON { filegroup | DEFAULT } ] - -< column_definition > ::= { column_name data_type } - [ COLLATE < collation_name > ] - [ [ DEFAULT constant_expression ] - | [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ] - ] - [ ROWGUIDCOL] - [ < column_constraint > ] [ ...n ] - -< column_constraint > ::= [ CONSTRAINT constraint_name ] - { [ NULL | NOT NULL ] - | [ { PRIMARY KEY | UNIQUE } - [ CLUSTERED | NONCLUSTERED ] - [ WITH FILLFACTOR = fillfactor ] - [ON {filegroup | DEFAULT} ] ] - ] - | [ [ FOREIGN KEY ] - REFERENCES ref_table [ ( ref_column ) ] - [ ON DELETE { CASCADE | NO ACTION } ] - [ ON UPDATE { CASCADE | NO ACTION } ] - [ NOT FOR REPLICATION ] - ] - | CHECK [ NOT FOR REPLICATION ] - ( logical_expression ) - } - -< table_constraint > ::= [ CONSTRAINT constraint_name ] - { [ { PRIMARY KEY | UNIQUE } - [ CLUSTERED | NONCLUSTERED ] - { ( column [ ASC | DESC ] [ ,...n ] ) } - [ WITH FILLFACTOR = fillfactor ] - [ ON { filegroup | DEFAULT } ] - ] - | FOREIGN KEY - [ ( column [ ,...n ] ) ] - REFERENCES ref_table [ ( ref_column [ ,...n ] ) ] - [ ON DELETE { CASCADE | NO ACTION } ] - [ ON UPDATE { CASCADE | NO ACTION } ] - [ NOT FOR REPLICATION ] - | CHECK [ NOT FOR REPLICATION ] - ( search_conditions ) - } - - - */ - - /* - CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name - ON { table | view } ( column [ ASC | DESC ] [ ,...n ] ) - [ WITH < index_option > [ ,...n] ] - [ ON filegroup ] - < index_option > :: = - { PAD_INDEX | - FILLFACTOR = fillfactor | - IGNORE_DUP_KEY | - DROP_EXISTING | - STATISTICS_NORECOMPUTE | - SORT_IN_TEMPDB - } -*/ - function _IndexSQL($idxname, $tabname, $flds, $idxoptions) - { - $sql = array(); - - if ( isset($idxoptions['REPLACE']) || isset($idxoptions['DROP']) ) { - $sql[] = sprintf ($this->dropIndex, $idxname, $tabname); - if ( isset($idxoptions['DROP']) ) - return $sql; - } - - if ( empty ($flds) ) { - return $sql; - } - - $unique = isset($idxoptions['UNIQUE']) ? ' UNIQUE' : ''; - $clustered = isset($idxoptions['CLUSTERED']) ? ' CLUSTERED' : ''; - - if ( is_array($flds) ) - $flds = implode(', ',$flds); - $s = 'CREATE' . $unique . $clustered . ' INDEX ' . $idxname . ' ON ' . $tabname . ' (' . $flds . ')'; - - if ( isset($idxoptions[$this->upperName]) ) - $s .= $idxoptions[$this->upperName]; - - - $sql[] = $s; - - return $sql; - } - - - function _GetSize($ftype, $ty, $fsize, $fprec) - { - switch ($ftype) { - case 'INT': - case 'SMALLINT': - case 'TINYINT': - case 'BIGINT': - return $ftype; - } - if ($ty == 'T') return $ftype; - return parent::_GetSize($ftype, $ty, $fsize, $fprec); - - } -} -?> \ No newline at end of file diff --git a/src/adodb5/datadict/datadict-mssqlnative.inc.php b/src/adodb5/datadict/datadict-mssqlnative.inc.php deleted file mode 100644 index 08f41331..00000000 --- a/src/adodb5/datadict/datadict-mssqlnative.inc.php +++ /dev/null @@ -1,282 +0,0 @@ -type; - $len = $fieldobj->max_length; - } - - $len = -1; // mysql max_length is not accurate - switch (strtoupper($t)) { - case 'R': - case 'INT': - case 'INTEGER': return 'I'; - case 'BIT': - case 'TINYINT': return 'I1'; - case 'SMALLINT': return 'I2'; - case 'BIGINT': return 'I8'; - - case 'REAL': - case 'FLOAT': return 'F'; - default: return parent::MetaType($t,$len,$fieldobj); - } - } - - function ActualType($meta) - { - switch(strtoupper($meta)) { - - case 'C': return 'VARCHAR'; - case 'XL': return (isset($this)) ? $this->typeXL : 'TEXT'; - case 'X': return (isset($this)) ? $this->typeX : 'TEXT'; ## could be varchar(8000), but we want compat with oracle - case 'C2': return 'NVARCHAR'; - case 'X2': return 'NTEXT'; - - case 'B': return 'IMAGE'; - - case 'D': return 'DATETIME'; - case 'T': return 'DATETIME'; - case 'L': return 'BIT'; - - case 'R': - case 'I': return 'INT'; - case 'I1': return 'TINYINT'; - case 'I2': return 'SMALLINT'; - case 'I4': return 'INT'; - case 'I8': return 'BIGINT'; - - case 'F': return 'REAL'; - case 'N': return 'NUMERIC'; - default: - return $meta; - } - } - - - function AddColumnSQL($tabname, $flds) - { - $tabname = $this->TableName ($tabname); - $f = array(); - list($lines,$pkey) = $this->_GenFields($flds); - $s = "ALTER TABLE $tabname $this->addCol"; - foreach($lines as $v) { - $f[] = "\n $v"; - } - $s .= implode(', ',$f); - $sql[] = $s; - return $sql; - } - - /* - function AlterColumnSQL($tabname, $flds) - { - $tabname = $this->TableName ($tabname); - $sql = array(); - list($lines,$pkey) = $this->_GenFields($flds); - foreach($lines as $v) { - $sql[] = "ALTER TABLE $tabname $this->alterCol $v"; - } - - return $sql; - } - */ - - function DropColumnSQL($tabname, $flds) - { - $tabname = $this->TableName ($tabname); - if (!is_array($flds)) - $flds = explode(',',$flds); - $f = array(); - $s = 'ALTER TABLE ' . $tabname; - foreach($flds as $v) { - $f[] = "\n$this->dropCol ".$this->NameQuote($v); - } - $s .= implode(', ',$f); - $sql[] = $s; - return $sql; - } - - // return string must begin with space - function _CreateSuffix($fname,&$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned) - { - $suffix = ''; - if (strlen($fdefault)) $suffix .= " DEFAULT $fdefault"; - if ($fautoinc) $suffix .= ' IDENTITY(1,1)'; - if ($fnotnull) $suffix .= ' NOT NULL'; - else if ($suffix == '') $suffix .= ' NULL'; - if ($fconstraint) $suffix .= ' '.$fconstraint; - return $suffix; - } - - /* -CREATE TABLE - [ database_name.[ owner ] . | owner. ] table_name - ( { < column_definition > - | column_name AS computed_column_expression - | < table_constraint > ::= [ CONSTRAINT constraint_name ] } - - | [ { PRIMARY KEY | UNIQUE } [ ,...n ] - ) - -[ ON { filegroup | DEFAULT } ] -[ TEXTIMAGE_ON { filegroup | DEFAULT } ] - -< column_definition > ::= { column_name data_type } - [ COLLATE < collation_name > ] - [ [ DEFAULT constant_expression ] - | [ IDENTITY [ ( seed , increment ) [ NOT FOR REPLICATION ] ] ] - ] - [ ROWGUIDCOL] - [ < column_constraint > ] [ ...n ] - -< column_constraint > ::= [ CONSTRAINT constraint_name ] - { [ NULL | NOT NULL ] - | [ { PRIMARY KEY | UNIQUE } - [ CLUSTERED | NONCLUSTERED ] - [ WITH FILLFACTOR = fillfactor ] - [ON {filegroup | DEFAULT} ] ] - ] - | [ [ FOREIGN KEY ] - REFERENCES ref_table [ ( ref_column ) ] - [ ON DELETE { CASCADE | NO ACTION } ] - [ ON UPDATE { CASCADE | NO ACTION } ] - [ NOT FOR REPLICATION ] - ] - | CHECK [ NOT FOR REPLICATION ] - ( logical_expression ) - } - -< table_constraint > ::= [ CONSTRAINT constraint_name ] - { [ { PRIMARY KEY | UNIQUE } - [ CLUSTERED | NONCLUSTERED ] - { ( column [ ASC | DESC ] [ ,...n ] ) } - [ WITH FILLFACTOR = fillfactor ] - [ ON { filegroup | DEFAULT } ] - ] - | FOREIGN KEY - [ ( column [ ,...n ] ) ] - REFERENCES ref_table [ ( ref_column [ ,...n ] ) ] - [ ON DELETE { CASCADE | NO ACTION } ] - [ ON UPDATE { CASCADE | NO ACTION } ] - [ NOT FOR REPLICATION ] - | CHECK [ NOT FOR REPLICATION ] - ( search_conditions ) - } - - - */ - - /* - CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name - ON { table | view } ( column [ ASC | DESC ] [ ,...n ] ) - [ WITH < index_option > [ ,...n] ] - [ ON filegroup ] - < index_option > :: = - { PAD_INDEX | - FILLFACTOR = fillfactor | - IGNORE_DUP_KEY | - DROP_EXISTING | - STATISTICS_NORECOMPUTE | - SORT_IN_TEMPDB - } -*/ - function _IndexSQL($idxname, $tabname, $flds, $idxoptions) - { - $sql = array(); - - if ( isset($idxoptions['REPLACE']) || isset($idxoptions['DROP']) ) { - $sql[] = sprintf ($this->dropIndex, $idxname, $tabname); - if ( isset($idxoptions['DROP']) ) - return $sql; - } - - if ( empty ($flds) ) { - return $sql; - } - - $unique = isset($idxoptions['UNIQUE']) ? ' UNIQUE' : ''; - $clustered = isset($idxoptions['CLUSTERED']) ? ' CLUSTERED' : ''; - - if ( is_array($flds) ) - $flds = implode(', ',$flds); - $s = 'CREATE' . $unique . $clustered . ' INDEX ' . $idxname . ' ON ' . $tabname . ' (' . $flds . ')'; - - if ( isset($idxoptions[$this->upperName]) ) - $s .= $idxoptions[$this->upperName]; - - - $sql[] = $s; - - return $sql; - } - - - function _GetSize($ftype, $ty, $fsize, $fprec) - { - switch ($ftype) { - case 'INT': - case 'SMALLINT': - case 'TINYINT': - case 'BIGINT': - return $ftype; - } - if ($ty == 'T') return $ftype; - return parent::_GetSize($ftype, $ty, $fsize, $fprec); - - } -} -?> \ No newline at end of file diff --git a/src/adodb5/datadict/datadict-oci8.inc.php b/src/adodb5/datadict/datadict-oci8.inc.php deleted file mode 100644 index 0b7ce05a..00000000 --- a/src/adodb5/datadict/datadict-oci8.inc.php +++ /dev/null @@ -1,297 +0,0 @@ -type; - $len = $fieldobj->max_length; - } - switch (strtoupper($t)) { - case 'VARCHAR': - case 'VARCHAR2': - case 'CHAR': - case 'VARBINARY': - case 'BINARY': - if (isset($this) && $len <= $this->blobSize) return 'C'; - return 'X'; - - case 'NCHAR': - case 'NVARCHAR2': - case 'NVARCHAR': - if (isset($this) && $len <= $this->blobSize) return 'C2'; - return 'X2'; - - case 'NCLOB': - case 'CLOB': - return 'XL'; - - case 'LONG RAW': - case 'LONG VARBINARY': - case 'BLOB': - return 'B'; - - case 'TIMESTAMP': - return 'TS'; - - case 'DATE': - return 'T'; - - case 'INT': - case 'SMALLINT': - case 'INTEGER': - return 'I'; - - default: - return 'N'; - } - } - - function ActualType($meta) - { - switch($meta) { - case 'C': return 'VARCHAR'; - case 'X': return $this->typeX; - case 'XL': return $this->typeXL; - - case 'C2': return 'NVARCHAR2'; - case 'X2': return 'NVARCHAR2(4000)'; - - case 'B': return 'BLOB'; - - case 'TS': - return 'TIMESTAMP'; - - case 'D': - case 'T': return 'DATE'; - case 'L': return 'NUMBER(1)'; - case 'I1': return 'NUMBER(3)'; - case 'I2': return 'NUMBER(5)'; - case 'I': - case 'I4': return 'NUMBER(10)'; - - case 'I8': return 'NUMBER(20)'; - case 'F': return 'NUMBER'; - case 'N': return 'NUMBER'; - case 'R': return 'NUMBER(20)'; - default: - return $meta; - } - } - - function CreateDatabase($dbname, $options=false) - { - $options = $this->_Options($options); - $password = isset($options['PASSWORD']) ? $options['PASSWORD'] : 'tiger'; - $tablespace = isset($options["TABLESPACE"]) ? " DEFAULT TABLESPACE ".$options["TABLESPACE"] : ''; - $sql[] = "CREATE USER ".$dbname." IDENTIFIED BY ".$password.$tablespace; - $sql[] = "GRANT CREATE SESSION, CREATE TABLE,UNLIMITED TABLESPACE,CREATE SEQUENCE TO $dbname"; - - return $sql; - } - - function AddColumnSQL($tabname, $flds) - { - $f = array(); - list($lines,$pkey) = $this->_GenFields($flds); - $s = "ALTER TABLE $tabname ADD ("; - foreach($lines as $v) { - $f[] = "\n $v"; - } - - $s .= implode(', ',$f).')'; - $sql[] = $s; - return $sql; - } - - function AlterColumnSQL($tabname, $flds) - { - $f = array(); - list($lines,$pkey) = $this->_GenFields($flds); - $s = "ALTER TABLE $tabname MODIFY("; - foreach($lines as $v) { - $f[] = "\n $v"; - } - $s .= implode(', ',$f).')'; - $sql[] = $s; - return $sql; - } - - function DropColumnSQL($tabname, $flds) - { - if (!is_array($flds)) $flds = explode(',',$flds); - foreach ($flds as $k => $v) $flds[$k] = $this->NameQuote($v); - - $sql = array(); - $s = "ALTER TABLE $tabname DROP("; - $s .= implode(', ',$flds).') CASCADE CONSTRAINTS'; - $sql[] = $s; - return $sql; - } - - function _DropAutoIncrement($t) - { - if (strpos($t,'.') !== false) { - $tarr = explode('.',$t); - return "drop sequence ".$tarr[0].".seq_".$tarr[1]; - } - return "drop sequence seq_".$t; - } - - // return string must begin with space - function _CreateSuffix($fname,&$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned) - { - $suffix = ''; - - if ($fdefault == "''" && $fnotnull) {// this is null in oracle - $fnotnull = false; - if ($this->debug) ADOConnection::outp("NOT NULL and DEFAULT='' illegal in Oracle"); - } - - if (strlen($fdefault)) $suffix .= " DEFAULT $fdefault"; - if ($fnotnull) $suffix .= ' NOT NULL'; - - if ($fautoinc) $this->seqField = $fname; - if ($fconstraint) $suffix .= ' '.$fconstraint; - - return $suffix; - } - -/* -CREATE or replace TRIGGER jaddress_insert -before insert on jaddress -for each row -begin -select seqaddress.nextval into :new.A_ID from dual; -end; -*/ - function _Triggers($tabname,$tableoptions) - { - if (!$this->seqField) return array(); - - if ($this->schema) { - $t = strpos($tabname,'.'); - if ($t !== false) $tab = substr($tabname,$t+1); - else $tab = $tabname; - $seqname = $this->schema.'.'.$this->seqPrefix.$tab; - $trigname = $this->schema.'.'.$this->trigPrefix.$this->seqPrefix.$tab; - } else { - $seqname = $this->seqPrefix.$tabname; - $trigname = $this->trigPrefix.$seqname; - } - - if (strlen($seqname) > 30) { - $seqname = $this->seqPrefix.uniqid(''); - } // end if - if (strlen($trigname) > 30) { - $trigname = $this->trigPrefix.uniqid(''); - } // end if - - if (isset($tableoptions['REPLACE'])) $sql[] = "DROP SEQUENCE $seqname"; - $seqCache = ''; - if (isset($tableoptions['SEQUENCE_CACHE'])){$seqCache = $tableoptions['SEQUENCE_CACHE'];} - $seqIncr = ''; - if (isset($tableoptions['SEQUENCE_INCREMENT'])){$seqIncr = ' INCREMENT BY '.$tableoptions['SEQUENCE_INCREMENT'];} - $seqStart = ''; - if (isset($tableoptions['SEQUENCE_START'])){$seqIncr = ' START WITH '.$tableoptions['SEQUENCE_START'];} - $sql[] = "CREATE SEQUENCE $seqname $seqStart $seqIncr $seqCache"; - $sql[] = "CREATE OR REPLACE TRIGGER $trigname BEFORE insert ON $tabname FOR EACH ROW WHEN (NEW.$this->seqField IS NULL OR NEW.$this->seqField = 0) BEGIN select $seqname.nextval into :new.$this->seqField from dual; END;"; - - $this->seqField = false; - return $sql; - } - - /* - CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] - [table_options] [select_statement] - create_definition: - col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] - [PRIMARY KEY] [reference_definition] - or PRIMARY KEY (index_col_name,...) - or KEY [index_name] (index_col_name,...) - or INDEX [index_name] (index_col_name,...) - or UNIQUE [INDEX] [index_name] (index_col_name,...) - or FULLTEXT [INDEX] [index_name] (index_col_name,...) - or [CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...) - [reference_definition] - or CHECK (expr) - */ - - - - function _IndexSQL($idxname, $tabname, $flds,$idxoptions) - { - $sql = array(); - - if ( isset($idxoptions['REPLACE']) || isset($idxoptions['DROP']) ) { - $sql[] = sprintf ($this->dropIndex, $idxname, $tabname); - if ( isset($idxoptions['DROP']) ) - return $sql; - } - - if ( empty ($flds) ) { - return $sql; - } - - if (isset($idxoptions['BITMAP'])) { - $unique = ' BITMAP'; - } elseif (isset($idxoptions['UNIQUE'])) { - $unique = ' UNIQUE'; - } else { - $unique = ''; - } - - if ( is_array($flds) ) - $flds = implode(', ',$flds); - $s = 'CREATE' . $unique . ' INDEX ' . $idxname . ' ON ' . $tabname . ' (' . $flds . ')'; - - if ( isset($idxoptions[$this->upperName]) ) - $s .= $idxoptions[$this->upperName]; - - if (isset($idxoptions['oci8'])) - $s .= $idxoptions['oci8']; - - - $sql[] = $s; - - return $sql; - } - - function GetCommentSQL($table,$col) - { - $table = $this->connection->qstr($table); - $col = $this->connection->qstr($col); - return "select comments from USER_COL_COMMENTS where TABLE_NAME=$table and COLUMN_NAME=$col"; - } - - function SetCommentSQL($table,$col,$cmt) - { - $cmt = $this->connection->qstr($cmt); - return "COMMENT ON COLUMN $table.$col IS $cmt"; - } -} -?> \ No newline at end of file diff --git a/src/adodb5/datadict/datadict-postgres.inc.php b/src/adodb5/datadict/datadict-postgres.inc.php deleted file mode 100644 index f31bdd75..00000000 --- a/src/adodb5/datadict/datadict-postgres.inc.php +++ /dev/null @@ -1,448 +0,0 @@ -type; - $len = $fieldobj->max_length; - } - $is_serial = is_object($fieldobj) && $fieldobj->primary_key && $fieldobj->unique && - $fieldobj->has_default && substr($fieldobj->default_value,0,8) == 'nextval('; - - switch (strtoupper($t)) { - case 'INTERVAL': - case 'CHAR': - case 'CHARACTER': - case 'VARCHAR': - case 'NAME': - case 'BPCHAR': - if ($len <= $this->blobSize) return 'C'; - - case 'TEXT': - return 'X'; - - case 'IMAGE': // user defined type - case 'BLOB': // user defined type - case 'BIT': // This is a bit string, not a single bit, so don't return 'L' - case 'VARBIT': - case 'BYTEA': - return 'B'; - - case 'BOOL': - case 'BOOLEAN': - return 'L'; - - case 'DATE': - return 'D'; - - case 'TIME': - case 'DATETIME': - case 'TIMESTAMP': - case 'TIMESTAMPTZ': - return 'T'; - - case 'INTEGER': return !$is_serial ? 'I' : 'R'; - case 'SMALLINT': - case 'INT2': return !$is_serial ? 'I2' : 'R'; - case 'INT4': return !$is_serial ? 'I4' : 'R'; - case 'BIGINT': - case 'INT8': return !$is_serial ? 'I8' : 'R'; - - case 'OID': - case 'SERIAL': - return 'R'; - - case 'FLOAT4': - case 'FLOAT8': - case 'DOUBLE PRECISION': - case 'REAL': - return 'F'; - - default: - return 'N'; - } - } - - function ActualType($meta) - { - switch($meta) { - case 'C': return 'VARCHAR'; - case 'XL': - case 'X': return 'TEXT'; - - case 'C2': return 'VARCHAR'; - case 'X2': return 'TEXT'; - - case 'B': return 'BYTEA'; - - case 'D': return 'DATE'; - case 'TS': - case 'T': return 'TIMESTAMP'; - - case 'L': return 'BOOLEAN'; - case 'I': return 'INTEGER'; - case 'I1': return 'SMALLINT'; - case 'I2': return 'INT2'; - case 'I4': return 'INT4'; - case 'I8': return 'INT8'; - - case 'F': return 'FLOAT8'; - case 'N': return 'NUMERIC'; - default: - return $meta; - } - } - - /** - * Adding a new Column - * - * reimplementation of the default function as postgres does NOT allow to set the default in the same statement - * - * @param string $tabname table-name - * @param string $flds column-names and types for the changed columns - * @return array with SQL strings - */ - function AddColumnSQL($tabname, $flds) - { - $tabname = $this->TableName ($tabname); - $sql = array(); - list($lines,$pkey) = $this->_GenFields($flds); - $alter = 'ALTER TABLE ' . $tabname . $this->addCol . ' '; - foreach($lines as $v) { - if (($not_null = preg_match('/NOT NULL/i',$v))) { - $v = preg_replace('/NOT NULL/i','',$v); - } - if (preg_match('/^([^ ]+) .*DEFAULT ([^ ]+)/',$v,$matches)) { - list(,$colname,$default) = $matches; - $sql[] = $alter . str_replace('DEFAULT '.$default,'',$v); - $sql[] = 'UPDATE '.$tabname.' SET '.$colname.'='.$default; - $sql[] = 'ALTER TABLE '.$tabname.' ALTER COLUMN '.$colname.' SET DEFAULT ' . $default; - } else { - $sql[] = $alter . $v; - } - if ($not_null) { - list($colname) = explode(' ',$v); - $sql[] = 'ALTER TABLE '.$tabname.' ALTER COLUMN '.$colname.' SET NOT NULL'; - } - } - return $sql; - } - - - function DropIndexSQL ($idxname, $tabname = NULL) - { - return array(sprintf($this->dropIndex, $this->TableName($idxname), $this->TableName($tabname))); - } - - /** - * Change the definition of one column - * - * Postgres can't do that on it's own, you need to supply the complete defintion of the new table, - * to allow, recreating the table and copying the content over to the new table - * @param string $tabname table-name - * @param string $flds column-name and type for the changed column - * @param string $tableflds complete defintion of the new table, eg. for postgres, default '' - * @param array/ $tableoptions options for the new table see CreateTableSQL, default '' - * @return array with SQL strings - */ - /* - function AlterColumnSQL($tabname, $flds, $tableflds='',$tableoptions='') - { - if (!$tableflds) { - if ($this->debug) ADOConnection::outp("AlterColumnSQL needs a complete table-definiton for PostgreSQL"); - return array(); - } - return $this->_recreate_copy_table($tabname,False,$tableflds,$tableoptions); - }*/ - - function AlterColumnSQL($tabname, $flds, $tableflds='',$tableoptions='') - { - // Check if alter single column datatype available - works with 8.0+ - $has_alter_column = 8.0 <= (float) @$this->serverInfo['version']; - - if ($has_alter_column) { - $tabname = $this->TableName($tabname); - $sql = array(); - list($lines,$pkey) = $this->_GenFields($flds); - $alter = 'ALTER TABLE ' . $tabname . $this->alterCol . ' '; - foreach($lines as $v) { - if ($not_null = preg_match('/NOT NULL/i',$v)) { - $v = preg_replace('/NOT NULL/i','',$v); - } - // this next block doesn't work - there is no way that I can see to - // explicitly ask a column to be null using $flds - else if ($set_null = preg_match('/NULL/i',$v)) { - // if they didn't specify not null, see if they explicitely asked for null - $v = preg_replace('/\sNULL/i','',$v); - } - - if (preg_match('/^([^ ]+) .*DEFAULT ([^ ]+)/',$v,$matches)) { - list(,$colname,$default) = $matches; - $v = preg_replace('/^' . preg_quote($colname) . '\s/', '', $v); - $sql[] = $alter . $colname . ' TYPE ' . str_replace('DEFAULT '.$default,'',$v); - $sql[] = 'ALTER TABLE '.$tabname.' ALTER COLUMN '.$colname.' SET DEFAULT ' . $default; - } - else { - // drop default? - preg_match ('/^\s*(\S+)\s+(.*)$/',$v,$matches); - list (,$colname,$rest) = $matches; - $sql[] = $alter . $colname . ' TYPE ' . $rest; - } - - list($colname) = explode(' ',$v); - if ($not_null) { - // this does not error out if the column is already not null - $sql[] = 'ALTER TABLE '.$tabname.' ALTER COLUMN '.$colname.' SET NOT NULL'; - } - if ($set_null) { - // this does not error out if the column is already null - $sql[] = 'ALTER TABLE '.$tabname.' ALTER COLUMN '.$colname.' DROP NOT NULL'; - } - } - return $sql; - } - - // does not have alter column - if (!$tableflds) { - if ($this->debug) ADOConnection::outp("AlterColumnSQL needs a complete table-definiton for PostgreSQL"); - return array(); - } - return $this->_recreate_copy_table($tabname,False,$tableflds,$tableoptions); - } - - /** - * Drop one column - * - * Postgres < 7.3 can't do that on it's own, you need to supply the complete defintion of the new table, - * to allow, recreating the table and copying the content over to the new table - * @param string $tabname table-name - * @param string $flds column-name and type for the changed column - * @param string $tableflds complete defintion of the new table, eg. for postgres, default '' - * @param array/ $tableoptions options for the new table see CreateTableSQL, default '' - * @return array with SQL strings - */ - function DropColumnSQL($tabname, $flds, $tableflds='',$tableoptions='') - { - $has_drop_column = 7.3 <= (float) @$this->serverInfo['version']; - if (!$has_drop_column && !$tableflds) { - if ($this->debug) ADOConnection::outp("DropColumnSQL needs complete table-definiton for PostgreSQL < 7.3"); - return array(); - } - if ($has_drop_column) { - return ADODB_DataDict::DropColumnSQL($tabname, $flds); - } - return $this->_recreate_copy_table($tabname,$flds,$tableflds,$tableoptions); - } - - /** - * Save the content into a temp. table, drop and recreate the original table and copy the content back in - * - * We also take care to set the values of the sequenz and recreate the indexes. - * All this is done in a transaction, to not loose the content of the table, if something went wrong! - * @internal - * @param string $tabname table-name - * @param string $dropflds column-names to drop - * @param string $tableflds complete defintion of the new table, eg. for postgres - * @param array/string $tableoptions options for the new table see CreateTableSQL, default '' - * @return array with SQL strings - */ - function _recreate_copy_table($tabname,$dropflds,$tableflds,$tableoptions='') - { - if ($dropflds && !is_array($dropflds)) $dropflds = explode(',',$dropflds); - $copyflds = array(); - foreach($this->MetaColumns($tabname) as $fld) { - if (!$dropflds || !in_array($fld->name,$dropflds)) { - // we need to explicit convert varchar to a number to be able to do an AlterColumn of a char column to a nummeric one - if (preg_match('/'.$fld->name.' (I|I2|I4|I8|N|F)/i',$tableflds,$matches) && - in_array($fld->type,array('varchar','char','text','bytea'))) { - $copyflds[] = "to_number($fld->name,'S9999999999999D99')"; - } else { - $copyflds[] = $fld->name; - } - // identify the sequence name and the fld its on - if ($fld->primary_key && $fld->has_default && - preg_match("/nextval\('([^']+)'::text\)/",$fld->default_value,$matches)) { - $seq_name = $matches[1]; - $seq_fld = $fld->name; - } - } - } - $copyflds = implode(', ',$copyflds); - - $tempname = $tabname.'_tmp'; - $aSql[] = 'BEGIN'; // we use a transaction, to make sure not to loose the content of the table - $aSql[] = "SELECT * INTO TEMPORARY TABLE $tempname FROM $tabname"; - $aSql = array_merge($aSql,$this->DropTableSQL($tabname)); - $aSql = array_merge($aSql,$this->CreateTableSQL($tabname,$tableflds,$tableoptions)); - $aSql[] = "INSERT INTO $tabname SELECT $copyflds FROM $tempname"; - if ($seq_name && $seq_fld) { // if we have a sequence we need to set it again - $seq_name = $tabname.'_'.$seq_fld.'_seq'; // has to be the name of the new implicit sequence - $aSql[] = "SELECT setval('$seq_name',MAX($seq_fld)) FROM $tabname"; - } - $aSql[] = "DROP TABLE $tempname"; - // recreate the indexes, if they not contain one of the droped columns - foreach($this->MetaIndexes($tabname) as $idx_name => $idx_data) - { - if (substr($idx_name,-5) != '_pkey' && (!$dropflds || !count(array_intersect($dropflds,$idx_data['columns'])))) { - $aSql = array_merge($aSql,$this->CreateIndexSQL($idx_name,$tabname,$idx_data['columns'], - $idx_data['unique'] ? array('UNIQUE') : False)); - } - } - $aSql[] = 'COMMIT'; - return $aSql; - } - - function DropTableSQL($tabname) - { - $sql = ADODB_DataDict::DropTableSQL($tabname); - - $drop_seq = $this->_DropAutoIncrement($tabname); - if ($drop_seq) $sql[] = $drop_seq; - - return $sql; - } - - // return string must begin with space - function _CreateSuffix($fname, &$ftype, $fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned) - { - if ($fautoinc) { - $ftype = 'SERIAL'; - return ''; - } - $suffix = ''; - if (strlen($fdefault)) $suffix .= " DEFAULT $fdefault"; - if ($fnotnull) $suffix .= ' NOT NULL'; - if ($fconstraint) $suffix .= ' '.$fconstraint; - return $suffix; - } - - // search for a sequece for the given table (asumes the seqence-name contains the table-name!) - // if yes return sql to drop it - // this is still necessary if postgres < 7.3 or the SERIAL was created on an earlier version!!! - function _DropAutoIncrement($tabname) - { - $tabname = $this->connection->quote('%'.$tabname.'%'); - - $seq = $this->connection->GetOne("SELECT relname FROM pg_class WHERE NOT relname ~ 'pg_.*' AND relname LIKE $tabname AND relkind='S'"); - - // check if a tables depends on the sequenz and it therefor cant and dont need to be droped separatly - if (!$seq || $this->connection->GetOne("SELECT relname FROM pg_class JOIN pg_depend ON pg_class.relfilenode=pg_depend.objid WHERE relname='$seq' AND relkind='S' AND deptype='i'")) { - return False; - } - return "DROP SEQUENCE ".$seq; - } - - function RenameTableSQL($tabname,$newname) - { - if (!empty($this->schema)) { - $rename_from = $this->TableName($tabname); - $schema_save = $this->schema; - $this->schema = false; - $rename_to = $this->TableName($newname); - $this->schema = $schema_save; - return array (sprintf($this->renameTable, $rename_from, $rename_to)); - } - - return array (sprintf($this->renameTable, $this->TableName($tabname),$this->TableName($newname))); - } - - /* - CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name ( - { column_name data_type [ DEFAULT default_expr ] [ column_constraint [, ... ] ] - | table_constraint } [, ... ] - ) - [ INHERITS ( parent_table [, ... ] ) ] - [ WITH OIDS | WITHOUT OIDS ] - where column_constraint is: - [ CONSTRAINT constraint_name ] - { NOT NULL | NULL | UNIQUE | PRIMARY KEY | - CHECK (expression) | - REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL ] - [ ON DELETE action ] [ ON UPDATE action ] } - [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] - and table_constraint is: - [ CONSTRAINT constraint_name ] - { UNIQUE ( column_name [, ... ] ) | - PRIMARY KEY ( column_name [, ... ] ) | - CHECK ( expression ) | - FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ] - [ MATCH FULL | MATCH PARTIAL ] [ ON DELETE action ] [ ON UPDATE action ] } - [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] - */ - - - /* - CREATE [ UNIQUE ] INDEX index_name ON table -[ USING acc_method ] ( column [ ops_name ] [, ...] ) -[ WHERE predicate ] -CREATE [ UNIQUE ] INDEX index_name ON table -[ USING acc_method ] ( func_name( column [, ... ]) [ ops_name ] ) -[ WHERE predicate ] - */ - function _IndexSQL($idxname, $tabname, $flds, $idxoptions) - { - $sql = array(); - - if ( isset($idxoptions['REPLACE']) || isset($idxoptions['DROP']) ) { - $sql[] = sprintf ($this->dropIndex, $idxname, $tabname); - if ( isset($idxoptions['DROP']) ) - return $sql; - } - - if ( empty ($flds) ) { - return $sql; - } - - $unique = isset($idxoptions['UNIQUE']) ? ' UNIQUE' : ''; - - $s = 'CREATE' . $unique . ' INDEX ' . $idxname . ' ON ' . $tabname . ' '; - - if (isset($idxoptions['HASH'])) - $s .= 'USING HASH '; - - if ( isset($idxoptions[$this->upperName]) ) - $s .= $idxoptions[$this->upperName]; - - if ( is_array($flds) ) - $flds = implode(', ',$flds); - $s .= '(' . $flds . ')'; - $sql[] = $s; - - return $sql; - } - - function _GetSize($ftype, $ty, $fsize, $fprec) - { - if (strlen($fsize) && $ty != 'X' && $ty != 'B' && $ty != 'I' && strpos($ftype,'(') === false) { - $ftype .= "(".$fsize; - if (strlen($fprec)) $ftype .= ",".$fprec; - $ftype .= ')'; - } - return $ftype; - } -} -?> \ No newline at end of file diff --git a/src/adodb5/datadict/datadict-sapdb.inc.php b/src/adodb5/datadict/datadict-sapdb.inc.php deleted file mode 100644 index d4143d10..00000000 --- a/src/adodb5/datadict/datadict-sapdb.inc.php +++ /dev/null @@ -1,122 +0,0 @@ -type; - $len = $fieldobj->max_length; - } - static $maxdb_type2adodb = array( - 'VARCHAR' => 'C', - 'CHARACTER' => 'C', - 'LONG' => 'X', // no way to differ between 'X' and 'B' :-( - 'DATE' => 'D', - 'TIMESTAMP' => 'T', - 'BOOLEAN' => 'L', - 'INTEGER' => 'I4', - 'SMALLINT' => 'I2', - 'FLOAT' => 'F', - 'FIXED' => 'N', - ); - $type = isset($maxdb_type2adodb[$t]) ? $maxdb_type2adodb[$t] : 'C'; - - // convert integer-types simulated with fixed back to integer - if ($t == 'FIXED' && !$fieldobj->scale && ($len == 20 || $len == 3)) { - $type = $len == 20 ? 'I8' : 'I1'; - } - if ($fieldobj->auto_increment) $type = 'R'; - - return $type; - } - - // return string must begin with space - function _CreateSuffix($fname,&$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned) - { - $suffix = ''; - if ($funsigned) $suffix .= ' UNSIGNED'; - if ($fnotnull) $suffix .= ' NOT NULL'; - if ($fautoinc) $suffix .= ' DEFAULT SERIAL'; - elseif (strlen($fdefault)) $suffix .= " DEFAULT $fdefault"; - if ($fconstraint) $suffix .= ' '.$fconstraint; - return $suffix; - } - - function AddColumnSQL($tabname, $flds) - { - $tabname = $this->TableName ($tabname); - $sql = array(); - list($lines,$pkey) = $this->_GenFields($flds); - return array( 'ALTER TABLE ' . $tabname . ' ADD (' . implode(', ',$lines) . ')' ); - } - - function AlterColumnSQL($tabname, $flds) - { - $tabname = $this->TableName ($tabname); - $sql = array(); - list($lines,$pkey) = $this->_GenFields($flds); - return array( 'ALTER TABLE ' . $tabname . ' MODIFY (' . implode(', ',$lines) . ')' ); - } - - function DropColumnSQL($tabname, $flds) - { - $tabname = $this->TableName ($tabname); - if (!is_array($flds)) $flds = explode(',',$flds); - foreach($flds as $k => $v) { - $flds[$k] = $this->NameQuote($v); - } - return array( 'ALTER TABLE ' . $tabname . ' DROP (' . implode(', ',$flds) . ')' ); - } -} - -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-access.inc.php b/src/adodb5/drivers/adodb-access.inc.php deleted file mode 100644 index f6eddb18..00000000 --- a/src/adodb5/drivers/adodb-access.inc.php +++ /dev/null @@ -1,87 +0,0 @@ -ADODB_odbc(); - } - - function Time() - { - return time(); - } - - function BeginTrans() { return false;} - - function IfNull( $field, $ifNull ) - { - return " IIF(IsNull($field), $ifNull, $field) "; // if Access - } -/* - function MetaTables() - { - global $ADODB_FETCH_MODE; - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $qid = odbc_tables($this->_connectionID); - $rs = new ADORecordSet_odbc($qid); - $ADODB_FETCH_MODE = $savem; - if (!$rs) return false; - - $rs->_has_stupid_odbc_fetch_api_change = $this->_has_stupid_odbc_fetch_api_change; - - $arr = $rs->GetArray(); - //print_pre($arr); - $arr2 = array(); - for ($i=0; $i < sizeof($arr); $i++) { - if ($arr[$i][2] && $arr[$i][3] != 'SYSTEM TABLE') - $arr2[] = $arr[$i][2]; - } - return $arr2; - }*/ -} - - -class ADORecordSet_access extends ADORecordSet_odbc { - - var $databaseType = "access"; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_odbc($id,$mode); - } -}// class -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-ado.inc.php b/src/adodb5/drivers/adodb-ado.inc.php deleted file mode 100644 index feb1bc06..00000000 --- a/src/adodb5/drivers/adodb-ado.inc.php +++ /dev/null @@ -1,660 +0,0 @@ -_affectedRows = new VARIANT; - } - - function ServerInfo() - { - if (!empty($this->_connectionID)) $desc = $this->_connectionID->provider; - return array('description' => $desc, 'version' => ''); - } - - function _affectedrows() - { - if (PHP_VERSION >= 5) return $this->_affectedRows; - - return $this->_affectedRows->value; - } - - // you can also pass a connection string like this: - // - // $DB->Connect('USER ID=sa;PASSWORD=pwd;SERVER=mangrove;DATABASE=ai',false,false,'SQLOLEDB'); - function _connect($argHostname, $argUsername, $argPassword, $argProvider= 'MSDASQL') - { - $u = 'UID'; - $p = 'PWD'; - - if (!empty($this->charPage)) - $dbc = new COM('ADODB.Connection',null,$this->charPage); - else - $dbc = new COM('ADODB.Connection'); - - if (! $dbc) return false; - - /* special support if provider is mssql or access */ - if ($argProvider=='mssql') { - $u = 'User Id'; //User parameter name for OLEDB - $p = 'Password'; - $argProvider = "SQLOLEDB"; // SQL Server Provider - - // not yet - //if ($argDatabasename) $argHostname .= ";Initial Catalog=$argDatabasename"; - - //use trusted conection for SQL if username not specified - if (!$argUsername) $argHostname .= ";Trusted_Connection=Yes"; - } else if ($argProvider=='access') - $argProvider = "Microsoft.Jet.OLEDB.4.0"; // Microsoft Jet Provider - - if ($argProvider) $dbc->Provider = $argProvider; - - if ($argUsername) $argHostname .= ";$u=$argUsername"; - if ($argPassword)$argHostname .= ";$p=$argPassword"; - - if ($this->debug) ADOConnection::outp( "Host=".$argHostname."
\n version=$dbc->version"); - // @ added below for php 4.0.1 and earlier - @$dbc->Open((string) $argHostname); - - $this->_connectionID = $dbc; - - $dbc->CursorLocation = $this->_cursor_location; - return $dbc->State > 0; - } - - // returns true or false - function _pconnect($argHostname, $argUsername, $argPassword, $argProvider='MSDASQL') - { - return $this->_connect($argHostname,$argUsername,$argPassword,$argProvider); - } - -/* - adSchemaCatalogs = 1, - adSchemaCharacterSets = 2, - adSchemaCollations = 3, - adSchemaColumns = 4, - adSchemaCheckConstraints = 5, - adSchemaConstraintColumnUsage = 6, - adSchemaConstraintTableUsage = 7, - adSchemaKeyColumnUsage = 8, - adSchemaReferentialContraints = 9, - adSchemaTableConstraints = 10, - adSchemaColumnsDomainUsage = 11, - adSchemaIndexes = 12, - adSchemaColumnPrivileges = 13, - adSchemaTablePrivileges = 14, - adSchemaUsagePrivileges = 15, - adSchemaProcedures = 16, - adSchemaSchemata = 17, - adSchemaSQLLanguages = 18, - adSchemaStatistics = 19, - adSchemaTables = 20, - adSchemaTranslations = 21, - adSchemaProviderTypes = 22, - adSchemaViews = 23, - adSchemaViewColumnUsage = 24, - adSchemaViewTableUsage = 25, - adSchemaProcedureParameters = 26, - adSchemaForeignKeys = 27, - adSchemaPrimaryKeys = 28, - adSchemaProcedureColumns = 29, - adSchemaDBInfoKeywords = 30, - adSchemaDBInfoLiterals = 31, - adSchemaCubes = 32, - adSchemaDimensions = 33, - adSchemaHierarchies = 34, - adSchemaLevels = 35, - adSchemaMeasures = 36, - adSchemaProperties = 37, - adSchemaMembers = 38 - -*/ - - function MetaTables() - { - $arr= array(); - $dbc = $this->_connectionID; - - $adors=@$dbc->OpenSchema(20);//tables - if ($adors){ - $f = $adors->Fields(2);//table/view name - $t = $adors->Fields(3);//table type - while (!$adors->EOF){ - $tt=substr($t->value,0,6); - if ($tt!='SYSTEM' && $tt !='ACCESS') - $arr[]=$f->value; - //print $f->value . ' ' . $t->value.'
'; - $adors->MoveNext(); - } - $adors->Close(); - } - - return $arr; - } - - function MetaColumns($table, $normalize=true) - { - $table = strtoupper($table); - $arr = array(); - $dbc = $this->_connectionID; - - $adors=@$dbc->OpenSchema(4);//tables - - if ($adors){ - $t = $adors->Fields(2);//table/view name - while (!$adors->EOF){ - - - if (strtoupper($t->Value) == $table) { - - $fld = new ADOFieldObject(); - $c = $adors->Fields(3); - $fld->name = $c->Value; - $fld->type = 'CHAR'; // cannot discover type in ADO! - $fld->max_length = -1; - $arr[strtoupper($fld->name)]=$fld; - } - - $adors->MoveNext(); - } - $adors->Close(); - } - $false = false; - return empty($arr) ? $false : $arr; - } - - - - - /* returns queryID or false */ - function _query($sql,$inputarr=false) - { - - $dbc = $this->_connectionID; - $false = false; - - // return rs - if ($inputarr) { - - if (!empty($this->charPage)) - $oCmd = new COM('ADODB.Command',null,$this->charPage); - else - $oCmd = new COM('ADODB.Command'); - $oCmd->ActiveConnection = $dbc; - $oCmd->CommandText = $sql; - $oCmd->CommandType = 1; - - // Map by http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmthcreateparam.asp - // Check issue http://bugs.php.net/bug.php?id=40664 !!! - foreach ($inputarr as $val) { - $type = gettype($val); - $len=strlen($val); - if ($type == 'boolean') - $this->adoParameterType = 11; - else if ($type == 'integer') - $this->adoParameterType = 3; - else if ($type == 'double') - $this->adoParameterType = 5; - elseif ($type == 'string') - $this->adoParameterType = 202; - else if (($val === null) || (!defined($val))) - $len=1; - else - $this->adoParameterType = 130; - - // name, type, direction 1 = input, len, - $p = $oCmd->CreateParameter('name',$this->adoParameterType,1,$len,$val); - - $oCmd->Parameters->Append($p); - } - $p = false; - $rs = $oCmd->Execute(); - $e = $dbc->Errors; - if ($dbc->Errors->Count > 0) return $false; - return $rs; - } - - $rs = @$dbc->Execute($sql,$this->_affectedRows, $this->_execute_option); - - if ($dbc->Errors->Count > 0) return $false; - if (! $rs) return $false; - - if ($rs->State == 0) { - $true = true; - return $true; // 0 = adStateClosed means no records returned - } - return $rs; - } - - - function BeginTrans() - { - if ($this->transOff) return true; - - if (isset($this->_thisTransactions)) - if (!$this->_thisTransactions) return false; - else { - $o = $this->_connectionID->Properties("Transaction DDL"); - $this->_thisTransactions = $o ? true : false; - if (!$o) return false; - } - @$this->_connectionID->BeginTrans(); - $this->transCnt += 1; - return true; - } - - function CommitTrans($ok=true) - { - if (!$ok) return $this->RollbackTrans(); - if ($this->transOff) return true; - - @$this->_connectionID->CommitTrans(); - if ($this->transCnt) @$this->transCnt -= 1; - return true; - } - function RollbackTrans() { - if ($this->transOff) return true; - @$this->_connectionID->RollbackTrans(); - if ($this->transCnt) @$this->transCnt -= 1; - return true; - } - - /* Returns: the last error message from previous database operation */ - - function ErrorMsg() - { - if (!$this->_connectionID) return "No connection established"; - $errc = $this->_connectionID->Errors; - if (!$errc) return "No Errors object found"; - if ($errc->Count == 0) return ''; - $err = $errc->Item($errc->Count-1); - return $err->Description; - } - - function ErrorNo() - { - $errc = $this->_connectionID->Errors; - if ($errc->Count == 0) return 0; - $err = $errc->Item($errc->Count-1); - return $err->NativeError; - } - - // returns true or false - function _close() - { - if ($this->_connectionID) $this->_connectionID->Close(); - $this->_connectionID = false; - return true; - } - - -} - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordSet_ado extends ADORecordSet { - - var $bind = false; - var $databaseType = "ado"; - var $dataProvider = "ado"; - var $_tarr = false; // caches the types - var $_flds; // and field objects - var $canSeek = true; - var $hideErrors = true; - - function __construct($id,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - $this->fetchMode = $mode; - $this->ADORecordSet($id,$mode); - } - - - // returns the field object - function FetchField($fieldOffset = -1) { - $off=$fieldOffset+1; // offsets begin at 1 - - $o= new ADOFieldObject(); - $rs = $this->_queryID; - $f = $rs->Fields($fieldOffset); - $o->name = $f->Name; - $t = $f->Type; - $o->type = $this->MetaType($t); - $o->max_length = $f->DefinedSize; - $o->ado_type = $t; - - //print "off=$off name=$o->name type=$o->type len=$o->max_length
"; - return $o; - } - - /* Use associative array to get fields array */ - function Fields($colname) - { - if ($this->fetchMode & ADODB_FETCH_ASSOC) return $this->fields[$colname]; - if (!$this->bind) { - $this->bind = array(); - for ($i=0; $i < $this->_numOfFields; $i++) { - $o = $this->FetchField($i); - $this->bind[strtoupper($o->name)] = $i; - } - } - - return $this->fields[$this->bind[strtoupper($colname)]]; - } - - - function _initrs() - { - $rs = $this->_queryID; - $this->_numOfRows = $rs->RecordCount; - - $f = $rs->Fields; - $this->_numOfFields = $f->Count; - } - - - // should only be used to move forward as we normally use forward-only cursors - function _seek($row) - { - $rs = $this->_queryID; - // absoluteposition doesn't work -- my maths is wrong ? - // $rs->AbsolutePosition->$row-2; - // return true; - if ($this->_currentRow > $row) return false; - @$rs->Move((integer)$row - $this->_currentRow-1); //adBookmarkFirst - return true; - } - -/* - OLEDB types - - enum DBTYPEENUM - { DBTYPE_EMPTY = 0, - DBTYPE_NULL = 1, - DBTYPE_I2 = 2, - DBTYPE_I4 = 3, - DBTYPE_R4 = 4, - DBTYPE_R8 = 5, - DBTYPE_CY = 6, - DBTYPE_DATE = 7, - DBTYPE_BSTR = 8, - DBTYPE_IDISPATCH = 9, - DBTYPE_ERROR = 10, - DBTYPE_BOOL = 11, - DBTYPE_VARIANT = 12, - DBTYPE_IUNKNOWN = 13, - DBTYPE_DECIMAL = 14, - DBTYPE_UI1 = 17, - DBTYPE_ARRAY = 0x2000, - DBTYPE_BYREF = 0x4000, - DBTYPE_I1 = 16, - DBTYPE_UI2 = 18, - DBTYPE_UI4 = 19, - DBTYPE_I8 = 20, - DBTYPE_UI8 = 21, - DBTYPE_GUID = 72, - DBTYPE_VECTOR = 0x1000, - DBTYPE_RESERVED = 0x8000, - DBTYPE_BYTES = 128, - DBTYPE_STR = 129, - DBTYPE_WSTR = 130, - DBTYPE_NUMERIC = 131, - DBTYPE_UDT = 132, - DBTYPE_DBDATE = 133, - DBTYPE_DBTIME = 134, - DBTYPE_DBTIMESTAMP = 135 - - ADO Types - - adEmpty = 0, - adTinyInt = 16, - adSmallInt = 2, - adInteger = 3, - adBigInt = 20, - adUnsignedTinyInt = 17, - adUnsignedSmallInt = 18, - adUnsignedInt = 19, - adUnsignedBigInt = 21, - adSingle = 4, - adDouble = 5, - adCurrency = 6, - adDecimal = 14, - adNumeric = 131, - adBoolean = 11, - adError = 10, - adUserDefined = 132, - adVariant = 12, - adIDispatch = 9, - adIUnknown = 13, - adGUID = 72, - adDate = 7, - adDBDate = 133, - adDBTime = 134, - adDBTimeStamp = 135, - adBSTR = 8, - adChar = 129, - adVarChar = 200, - adLongVarChar = 201, - adWChar = 130, - adVarWChar = 202, - adLongVarWChar = 203, - adBinary = 128, - adVarBinary = 204, - adLongVarBinary = 205, - adChapter = 136, - adFileTime = 64, - adDBFileTime = 137, - adPropVariant = 138, - adVarNumeric = 139 -*/ - function MetaType($t,$len=-1,$fieldobj=false) - { - if (is_object($t)) { - $fieldobj = $t; - $t = $fieldobj->type; - $len = $fieldobj->max_length; - } - - if (!is_numeric($t)) return $t; - - switch ($t) { - case 0: - case 12: // variant - case 8: // bstr - case 129: //char - case 130: //wc - case 200: // varc - case 202:// varWC - case 128: // bin - case 204: // varBin - case 72: // guid - if ($len <= $this->blobSize) return 'C'; - - case 201: - case 203: - return 'X'; - case 128: - case 204: - case 205: - return 'B'; - case 7: - case 133: return 'D'; - - case 134: - case 135: return 'T'; - - case 11: return 'L'; - - case 16:// adTinyInt = 16, - case 2://adSmallInt = 2, - case 3://adInteger = 3, - case 4://adBigInt = 20, - case 17://adUnsignedTinyInt = 17, - case 18://adUnsignedSmallInt = 18, - case 19://adUnsignedInt = 19, - case 20://adUnsignedBigInt = 21, - return 'I'; - default: return 'N'; - } - } - - // time stamp not supported yet - function _fetch() - { - $rs = $this->_queryID; - if (!$rs or $rs->EOF) { - $this->fields = false; - return false; - } - $this->fields = array(); - - if (!$this->_tarr) { - $tarr = array(); - $flds = array(); - for ($i=0,$max = $this->_numOfFields; $i < $max; $i++) { - $f = $rs->Fields($i); - $flds[] = $f; - $tarr[] = $f->Type; - } - // bind types and flds only once - $this->_tarr = $tarr; - $this->_flds = $flds; - } - $t = reset($this->_tarr); - $f = reset($this->_flds); - - if ($this->hideErrors) $olde = error_reporting(E_ERROR|E_CORE_ERROR);// sometimes $f->value be null - for ($i=0,$max = $this->_numOfFields; $i < $max; $i++) { - //echo "

",$t,' ';var_dump($f->value); echo '

'; - switch($t) { - case 135: // timestamp - if (!strlen((string)$f->value)) $this->fields[] = false; - else { - if (!is_numeric($f->value)) # $val = variant_date_to_timestamp($f->value); - // VT_DATE stores dates as (float) fractional days since 1899/12/30 00:00:00 - $val=(float) variant_cast($f->value,VT_R8)*3600*24-2209161600; - else - $val = $f->value; - $this->fields[] = adodb_date('Y-m-d H:i:s',$val); - } - break; - case 133:// A date value (yyyymmdd) - if ($val = $f->value) { - $this->fields[] = substr($val,0,4).'-'.substr($val,4,2).'-'.substr($val,6,2); - } else - $this->fields[] = false; - break; - case 7: // adDate - if (!strlen((string)$f->value)) $this->fields[] = false; - else { - if (!is_numeric($f->value)) $val = variant_date_to_timestamp($f->value); - else $val = $f->value; - - if (($val % 86400) == 0) $this->fields[] = adodb_date('Y-m-d',$val); - else $this->fields[] = adodb_date('Y-m-d H:i:s',$val); - } - break; - case 1: // null - $this->fields[] = false; - break; - case 6: // currency is not supported properly; - ADOConnection::outp( ''.$f->Name.': currency type not supported by PHP'); - $this->fields[] = (float) $f->value; - break; - case 11: //BIT; - $val = ""; - if(is_bool($f->value)) { - if($f->value==true) $val = 1; - else $val = 0; - } - if(is_null($f->value)) $val = null; - - $this->fields[] = $val; - break; - default: - $this->fields[] = $f->value; - break; - } - //print " $f->value $t, "; - $f = next($this->_flds); - $t = next($this->_tarr); - } // for - if ($this->hideErrors) error_reporting($olde); - @$rs->MoveNext(); // @ needed for some versions of PHP! - - if ($this->fetchMode & ADODB_FETCH_ASSOC) { - $this->fields = $this->GetRowAssoc(ADODB_ASSOC_CASE); - } - return true; - } - - function NextRecordSet() - { - $rs = $this->_queryID; - $this->_queryID = $rs->NextRecordSet(); - //$this->_queryID = $this->_QueryId->NextRecordSet(); - if ($this->_queryID == null) return false; - - $this->_currentRow = -1; - $this->_currentPage = -1; - $this->bind = false; - $this->fields = false; - $this->_flds = false; - $this->_tarr = false; - - $this->_inited = false; - $this->Init(); - return true; - } - - function _close() { - $this->_flds = false; - @$this->_queryID->Close();// by Pete Dishman (peterd@telephonetics.co.uk) - $this->_queryID = false; - } - -} - -?> diff --git a/src/adodb5/drivers/adodb-ado5.inc.php b/src/adodb5/drivers/adodb-ado5.inc.php deleted file mode 100644 index 1d00451c..00000000 --- a/src/adodb5/drivers/adodb-ado5.inc.php +++ /dev/null @@ -1,704 +0,0 @@ -_affectedRows = new VARIANT; - } - - function ServerInfo() - { - if (!empty($this->_connectionID)) $desc = $this->_connectionID->provider; - return array('description' => $desc, 'version' => ''); - } - - function _affectedrows() - { - if (PHP_VERSION >= 5) return $this->_affectedRows; - - return $this->_affectedRows->value; - } - - // you can also pass a connection string like this: - // - // $DB->Connect('USER ID=sa;PASSWORD=pwd;SERVER=mangrove;DATABASE=ai',false,false,'SQLOLEDB'); - function _connect($argHostname, $argUsername, $argPassword,$argDBorProvider, $argProvider= '') - { - // two modes - // - if $argProvider is empty, we assume that $argDBorProvider holds provider -- this is for backward compat - // - if $argProvider is not empty, then $argDBorProvider holds db - - - if ($argProvider) { - $argDatabasename = $argDBorProvider; - } else { - $argDatabasename = ''; - if ($argDBorProvider) $argProvider = $argDBorProvider; - else if (stripos($argHostname,'PROVIDER') === false) /* full conn string is not in $argHostname */ - $argProvider = 'MSDASQL'; - } - - - try { - $u = 'UID'; - $p = 'PWD'; - - if (!empty($this->charPage)) - $dbc = new COM('ADODB.Connection',null,$this->charPage); - else - $dbc = new COM('ADODB.Connection'); - - if (! $dbc) return false; - - /* special support if provider is mssql or access */ - if ($argProvider=='mssql') { - $u = 'User Id'; //User parameter name for OLEDB - $p = 'Password'; - $argProvider = "SQLOLEDB"; // SQL Server Provider - - // not yet - //if ($argDatabasename) $argHostname .= ";Initial Catalog=$argDatabasename"; - - //use trusted conection for SQL if username not specified - if (!$argUsername) $argHostname .= ";Trusted_Connection=Yes"; - } else if ($argProvider=='access') - $argProvider = "Microsoft.Jet.OLEDB.4.0"; // Microsoft Jet Provider - - if ($argProvider) $dbc->Provider = $argProvider; - - if ($argProvider) $argHostname = "PROVIDER=$argProvider;DRIVER={SQL Server};SERVER=$argHostname"; - - - if ($argDatabasename) $argHostname .= ";DATABASE=$argDatabasename"; - if ($argUsername) $argHostname .= ";$u=$argUsername"; - if ($argPassword)$argHostname .= ";$p=$argPassword"; - - if ($this->debug) ADOConnection::outp( "Host=".$argHostname."
\n version=$dbc->version"); - // @ added below for php 4.0.1 and earlier - @$dbc->Open((string) $argHostname); - - $this->_connectionID = $dbc; - - $dbc->CursorLocation = $this->_cursor_location; - return $dbc->State > 0; - } catch (exception $e) { - if ($this->debug);echo "
",$argHostname,"\n",$e,"
\n"; - } - - return false; - } - - // returns true or false - function _pconnect($argHostname, $argUsername, $argPassword, $argProvider='MSDASQL') - { - return $this->_connect($argHostname,$argUsername,$argPassword,$argProvider); - } - -/* - adSchemaCatalogs = 1, - adSchemaCharacterSets = 2, - adSchemaCollations = 3, - adSchemaColumns = 4, - adSchemaCheckConstraints = 5, - adSchemaConstraintColumnUsage = 6, - adSchemaConstraintTableUsage = 7, - adSchemaKeyColumnUsage = 8, - adSchemaReferentialContraints = 9, - adSchemaTableConstraints = 10, - adSchemaColumnsDomainUsage = 11, - adSchemaIndexes = 12, - adSchemaColumnPrivileges = 13, - adSchemaTablePrivileges = 14, - adSchemaUsagePrivileges = 15, - adSchemaProcedures = 16, - adSchemaSchemata = 17, - adSchemaSQLLanguages = 18, - adSchemaStatistics = 19, - adSchemaTables = 20, - adSchemaTranslations = 21, - adSchemaProviderTypes = 22, - adSchemaViews = 23, - adSchemaViewColumnUsage = 24, - adSchemaViewTableUsage = 25, - adSchemaProcedureParameters = 26, - adSchemaForeignKeys = 27, - adSchemaPrimaryKeys = 28, - adSchemaProcedureColumns = 29, - adSchemaDBInfoKeywords = 30, - adSchemaDBInfoLiterals = 31, - adSchemaCubes = 32, - adSchemaDimensions = 33, - adSchemaHierarchies = 34, - adSchemaLevels = 35, - adSchemaMeasures = 36, - adSchemaProperties = 37, - adSchemaMembers = 38 - -*/ - - function MetaTables() - { - $arr= array(); - $dbc = $this->_connectionID; - - $adors=@$dbc->OpenSchema(20);//tables - if ($adors){ - $f = $adors->Fields(2);//table/view name - $t = $adors->Fields(3);//table type - while (!$adors->EOF){ - $tt=substr($t->value,0,6); - if ($tt!='SYSTEM' && $tt !='ACCESS') - $arr[]=$f->value; - //print $f->value . ' ' . $t->value.'
'; - $adors->MoveNext(); - } - $adors->Close(); - } - - return $arr; - } - - function MetaColumns($table, $normalize=true) - { - $table = strtoupper($table); - $arr= array(); - $dbc = $this->_connectionID; - - $adors=@$dbc->OpenSchema(4);//tables - - if ($adors){ - $t = $adors->Fields(2);//table/view name - while (!$adors->EOF){ - - - if (strtoupper($t->Value) == $table) { - - $fld = new ADOFieldObject(); - $c = $adors->Fields(3); - $fld->name = $c->Value; - $fld->type = 'CHAR'; // cannot discover type in ADO! - $fld->max_length = -1; - $arr[strtoupper($fld->name)]=$fld; - } - - $adors->MoveNext(); - } - $adors->Close(); - } - - return $arr; - } - - /* returns queryID or false */ - function _query($sql,$inputarr=false) - { - try { // In PHP5, all COM errors are exceptions, so to maintain old behaviour... - - $dbc = $this->_connectionID; - - // return rs - - $false = false; - - if ($inputarr) { - - if (!empty($this->charPage)) - $oCmd = new COM('ADODB.Command',null,$this->charPage); - else - $oCmd = new COM('ADODB.Command'); - $oCmd->ActiveConnection = $dbc; - $oCmd->CommandText = $sql; - $oCmd->CommandType = 1; - - foreach ($inputarr as $val) { - $type = gettype($val); - $len=strlen($val); - if ($type == 'boolean') - $this->adoParameterType = 11; - else if ($type == 'integer') - $this->adoParameterType = 3; - else if ($type == 'double') - $this->adoParameterType = 5; - elseif ($type == 'string') - $this->adoParameterType = 202; - else if (($val === null) || (!defined($val))) - $len=1; - else - $this->adoParameterType = 130; - - // name, type, direction 1 = input, len, - $p = $oCmd->CreateParameter('name',$this->adoParameterType,1,$len,$val); - - $oCmd->Parameters->Append($p); - } - - $p = false; - $rs = $oCmd->Execute(); - $e = $dbc->Errors; - if ($dbc->Errors->Count > 0) return $false; - return $rs; - } - - $rs = @$dbc->Execute($sql,$this->_affectedRows, $this->_execute_option); - - if ($dbc->Errors->Count > 0) return $false; - if (! $rs) return $false; - - if ($rs->State == 0) { - $true = true; - return $true; // 0 = adStateClosed means no records returned - } - return $rs; - - } catch (exception $e) { - - } - return $false; - } - - - function BeginTrans() - { - if ($this->transOff) return true; - - if (isset($this->_thisTransactions)) - if (!$this->_thisTransactions) return false; - else { - $o = $this->_connectionID->Properties("Transaction DDL"); - $this->_thisTransactions = $o ? true : false; - if (!$o) return false; - } - @$this->_connectionID->BeginTrans(); - $this->transCnt += 1; - return true; - } - function CommitTrans($ok=true) - { - if (!$ok) return $this->RollbackTrans(); - if ($this->transOff) return true; - - @$this->_connectionID->CommitTrans(); - if ($this->transCnt) @$this->transCnt -= 1; - return true; - } - function RollbackTrans() { - if ($this->transOff) return true; - @$this->_connectionID->RollbackTrans(); - if ($this->transCnt) @$this->transCnt -= 1; - return true; - } - - /* Returns: the last error message from previous database operation */ - - function ErrorMsg() - { - if (!$this->_connectionID) return "No connection established"; - $errmsg = ''; - - try { - $errc = $this->_connectionID->Errors; - if (!$errc) return "No Errors object found"; - if ($errc->Count == 0) return ''; - $err = $errc->Item($errc->Count-1); - $errmsg = $err->Description; - }catch(exception $e) { - } - return $errmsg; - } - - function ErrorNo() - { - $errc = $this->_connectionID->Errors; - if ($errc->Count == 0) return 0; - $err = $errc->Item($errc->Count-1); - return $err->NativeError; - } - - // returns true or false - function _close() - { - if ($this->_connectionID) $this->_connectionID->Close(); - $this->_connectionID = false; - return true; - } - - -} - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordSet_ado extends ADORecordSet { - - var $bind = false; - var $databaseType = "ado"; - var $dataProvider = "ado"; - var $_tarr = false; // caches the types - var $_flds; // and field objects - var $canSeek = true; - var $hideErrors = true; - - function __construct($id,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - $this->fetchMode = $mode; - $this->ADORecordSet($id,$mode); - } - - - // returns the field object - function FetchField($fieldOffset = -1) { - $off=$fieldOffset+1; // offsets begin at 1 - - $o= new ADOFieldObject(); - $rs = $this->_queryID; - if (!$rs) return false; - - $f = $rs->Fields($fieldOffset); - $o->name = $f->Name; - $t = $f->Type; - $o->type = $this->MetaType($t); - $o->max_length = $f->DefinedSize; - $o->ado_type = $t; - - - //print "off=$off name=$o->name type=$o->type len=$o->max_length
"; - return $o; - } - - /* Use associative array to get fields array */ - function Fields($colname) - { - if ($this->fetchMode & ADODB_FETCH_ASSOC) return $this->fields[$colname]; - if (!$this->bind) { - $this->bind = array(); - for ($i=0; $i < $this->_numOfFields; $i++) { - $o = $this->FetchField($i); - $this->bind[strtoupper($o->name)] = $i; - } - } - - return $this->fields[$this->bind[strtoupper($colname)]]; - } - - - function _initrs() - { - $rs = $this->_queryID; - - try { - $this->_numOfRows = $rs->RecordCount; - } catch (Exception $e) { - $this->_numOfRows = -1; - } - $f = $rs->Fields; - $this->_numOfFields = $f->Count; - } - - - // should only be used to move forward as we normally use forward-only cursors - function _seek($row) - { - $rs = $this->_queryID; - // absoluteposition doesn't work -- my maths is wrong ? - // $rs->AbsolutePosition->$row-2; - // return true; - if ($this->_currentRow > $row) return false; - @$rs->Move((integer)$row - $this->_currentRow-1); //adBookmarkFirst - return true; - } - -/* - OLEDB types - - enum DBTYPEENUM - { DBTYPE_EMPTY = 0, - DBTYPE_NULL = 1, - DBTYPE_I2 = 2, - DBTYPE_I4 = 3, - DBTYPE_R4 = 4, - DBTYPE_R8 = 5, - DBTYPE_CY = 6, - DBTYPE_DATE = 7, - DBTYPE_BSTR = 8, - DBTYPE_IDISPATCH = 9, - DBTYPE_ERROR = 10, - DBTYPE_BOOL = 11, - DBTYPE_VARIANT = 12, - DBTYPE_IUNKNOWN = 13, - DBTYPE_DECIMAL = 14, - DBTYPE_UI1 = 17, - DBTYPE_ARRAY = 0x2000, - DBTYPE_BYREF = 0x4000, - DBTYPE_I1 = 16, - DBTYPE_UI2 = 18, - DBTYPE_UI4 = 19, - DBTYPE_I8 = 20, - DBTYPE_UI8 = 21, - DBTYPE_GUID = 72, - DBTYPE_VECTOR = 0x1000, - DBTYPE_RESERVED = 0x8000, - DBTYPE_BYTES = 128, - DBTYPE_STR = 129, - DBTYPE_WSTR = 130, - DBTYPE_NUMERIC = 131, - DBTYPE_UDT = 132, - DBTYPE_DBDATE = 133, - DBTYPE_DBTIME = 134, - DBTYPE_DBTIMESTAMP = 135 - - ADO Types - - adEmpty = 0, - adTinyInt = 16, - adSmallInt = 2, - adInteger = 3, - adBigInt = 20, - adUnsignedTinyInt = 17, - adUnsignedSmallInt = 18, - adUnsignedInt = 19, - adUnsignedBigInt = 21, - adSingle = 4, - adDouble = 5, - adCurrency = 6, - adDecimal = 14, - adNumeric = 131, - adBoolean = 11, - adError = 10, - adUserDefined = 132, - adVariant = 12, - adIDispatch = 9, - adIUnknown = 13, - adGUID = 72, - adDate = 7, - adDBDate = 133, - adDBTime = 134, - adDBTimeStamp = 135, - adBSTR = 8, - adChar = 129, - adVarChar = 200, - adLongVarChar = 201, - adWChar = 130, - adVarWChar = 202, - adLongVarWChar = 203, - adBinary = 128, - adVarBinary = 204, - adLongVarBinary = 205, - adChapter = 136, - adFileTime = 64, - adDBFileTime = 137, - adPropVariant = 138, - adVarNumeric = 139 -*/ - function MetaType($t,$len=-1,$fieldobj=false) - { - if (is_object($t)) { - $fieldobj = $t; - $t = $fieldobj->type; - $len = $fieldobj->max_length; - } - - if (!is_numeric($t)) return $t; - - switch ($t) { - case 0: - case 12: // variant - case 8: // bstr - case 129: //char - case 130: //wc - case 200: // varc - case 202:// varWC - case 128: // bin - case 204: // varBin - case 72: // guid - if ($len <= $this->blobSize) return 'C'; - - case 201: - case 203: - return 'X'; - case 128: - case 204: - case 205: - return 'B'; - case 7: - case 133: return 'D'; - - case 134: - case 135: return 'T'; - - case 11: return 'L'; - - case 16:// adTinyInt = 16, - case 2://adSmallInt = 2, - case 3://adInteger = 3, - case 4://adBigInt = 20, - case 17://adUnsignedTinyInt = 17, - case 18://adUnsignedSmallInt = 18, - case 19://adUnsignedInt = 19, - case 20://adUnsignedBigInt = 21, - return 'I'; - default: return 'N'; - } - } - - // time stamp not supported yet - function _fetch() - { - $rs = $this->_queryID; - if (!$rs or $rs->EOF) { - $this->fields = false; - return false; - } - $this->fields = array(); - - if (!$this->_tarr) { - $tarr = array(); - $flds = array(); - for ($i=0,$max = $this->_numOfFields; $i < $max; $i++) { - $f = $rs->Fields($i); - $flds[] = $f; - $tarr[] = $f->Type; - } - // bind types and flds only once - $this->_tarr = $tarr; - $this->_flds = $flds; - } - $t = reset($this->_tarr); - $f = reset($this->_flds); - - if ($this->hideErrors) $olde = error_reporting(E_ERROR|E_CORE_ERROR);// sometimes $f->value be null - for ($i=0,$max = $this->_numOfFields; $i < $max; $i++) { - //echo "

",$t,' ';var_dump($f->value); echo '

'; - switch($t) { - case 135: // timestamp - if (!strlen((string)$f->value)) $this->fields[] = false; - else { - if (!is_numeric($f->value)) # $val = variant_date_to_timestamp($f->value); - // VT_DATE stores dates as (float) fractional days since 1899/12/30 00:00:00 - $val= (float) variant_cast($f->value,VT_R8)*3600*24-2209161600; - else - $val = $f->value; - $this->fields[] = adodb_date('Y-m-d H:i:s',$val); - } - break; - case 133:// A date value (yyyymmdd) - if ($val = $f->value) { - $this->fields[] = substr($val,0,4).'-'.substr($val,4,2).'-'.substr($val,6,2); - } else - $this->fields[] = false; - break; - case 7: // adDate - if (!strlen((string)$f->value)) $this->fields[] = false; - else { - if (!is_numeric($f->value)) $val = variant_date_to_timestamp($f->value); - else $val = $f->value; - - if (($val % 86400) == 0) $this->fields[] = adodb_date('Y-m-d',$val); - else $this->fields[] = adodb_date('Y-m-d H:i:s',$val); - } - break; - case 1: // null - $this->fields[] = false; - break; - case 6: // currency is not supported properly; - ADOConnection::outp( ''.$f->Name.': currency type not supported by PHP'); - $this->fields[] = (float) $f->value; - break; - case 11: //BIT; - $val = ""; - if(is_bool($f->value)) { - if($f->value==true) $val = 1; - else $val = 0; - } - if(is_null($f->value)) $val = null; - - $this->fields[] = $val; - break; - default: - $this->fields[] = $f->value; - break; - } - //print " $f->value $t, "; - $f = next($this->_flds); - $t = next($this->_tarr); - } // for - if ($this->hideErrors) error_reporting($olde); - @$rs->MoveNext(); // @ needed for some versions of PHP! - - if ($this->fetchMode & ADODB_FETCH_ASSOC) { - $this->fields = $this->GetRowAssoc(ADODB_ASSOC_CASE); - } - return true; - } - - function NextRecordSet() - { - $rs = $this->_queryID; - $this->_queryID = $rs->NextRecordSet(); - //$this->_queryID = $this->_QueryId->NextRecordSet(); - if ($this->_queryID == null) return false; - - $this->_currentRow = -1; - $this->_currentPage = -1; - $this->bind = false; - $this->fields = false; - $this->_flds = false; - $this->_tarr = false; - - $this->_inited = false; - $this->Init(); - return true; - } - - function _close() { - $this->_flds = false; - try { - @$this->_queryID->Close();// by Pete Dishman (peterd@telephonetics.co.uk) - } catch (Exception $e) { - } - $this->_queryID = false; - } - -} - -?> diff --git a/src/adodb5/drivers/adodb-ado_access.inc.php b/src/adodb5/drivers/adodb-ado_access.inc.php deleted file mode 100644 index bb449f70..00000000 --- a/src/adodb5/drivers/adodb-ado_access.inc.php +++ /dev/null @@ -1,54 +0,0 @@ -= 5) include(ADODB_DIR."/drivers/adodb-ado5.inc.php"); - else include(ADODB_DIR."/drivers/adodb-ado.inc.php"); -} - -class ADODB_ado_access extends ADODB_ado { - var $databaseType = 'ado_access'; - var $hasTop = 'top'; // support mssql SELECT TOP 10 * FROM TABLE - var $fmtDate = "#Y-m-d#"; - var $fmtTimeStamp = "#Y-m-d h:i:sA#";// note no comma - var $sysDate = "FORMAT(NOW,'yyyy-mm-dd')"; - var $sysTimeStamp = 'NOW'; - var $upperCase = 'ucase'; - - function __construct() - { - $this->ADODB_ado(); - } - - /*function BeginTrans() { return false;} - - function CommitTrans() { return false;} - - function RollbackTrans() { return false;}*/ - -} - - -class ADORecordSet_ado_access extends ADORecordSet_ado { - - var $databaseType = "ado_access"; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_ado($id,$mode); - } -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-ado_mssql.inc.php b/src/adodb5/drivers/adodb-ado_mssql.inc.php deleted file mode 100644 index 532e8e70..00000000 --- a/src/adodb5/drivers/adodb-ado_mssql.inc.php +++ /dev/null @@ -1,154 +0,0 @@ -= 5) include(ADODB_DIR."/drivers/adodb-ado5.inc.php"); - else include(ADODB_DIR."/drivers/adodb-ado.inc.php"); -} - - -class ADODB_ado_mssql extends ADODB_ado { - var $databaseType = 'ado_mssql'; - var $hasTop = 'top'; - var $hasInsertID = true; - var $sysDate = 'convert(datetime,convert(char,GetDate(),102),102)'; - var $sysTimeStamp = 'GetDate()'; - var $leftOuter = '*='; - var $rightOuter = '=*'; - var $ansiOuter = true; // for mssql7 or later - var $substr = "substring"; - var $length = 'len'; - var $_dropSeqSQL = "drop table %s"; - - //var $_inTransaction = 1; // always open recordsets, so no transaction problems. - - function __construct() - { - $this->ADODB_ado(); - } - - function _insertid() - { - return $this->GetOne('select SCOPE_IDENTITY()'); - } - - function _affectedrows() - { - return $this->GetOne('select @@rowcount'); - } - - function SetTransactionMode( $transaction_mode ) - { - $this->_transmode = $transaction_mode; - if (empty($transaction_mode)) { - $this->Execute('SET TRANSACTION ISOLATION LEVEL READ COMMITTED'); - return; - } - if (!stristr($transaction_mode,'isolation')) $transaction_mode = 'ISOLATION LEVEL '.$transaction_mode; - $this->Execute("SET TRANSACTION ".$transaction_mode); - } - - function qstr($s,$magic_quotes=false) - { - $s = ADOConnection::qstr($s, $magic_quotes); - return str_replace("\0", "\\\\000", $s); - } - - function MetaColumns($table, $normalize=true) - { - $table = strtoupper($table); - $arr= array(); - $dbc = $this->_connectionID; - - $osoptions = array(); - $osoptions[0] = null; - $osoptions[1] = null; - $osoptions[2] = $table; - $osoptions[3] = null; - - $adors=@$dbc->OpenSchema(4, $osoptions);//tables - - if ($adors){ - while (!$adors->EOF){ - $fld = new ADOFieldObject(); - $c = $adors->Fields(3); - $fld->name = $c->Value; - $fld->type = 'CHAR'; // cannot discover type in ADO! - $fld->max_length = -1; - $arr[strtoupper($fld->name)]=$fld; - - $adors->MoveNext(); - } - $adors->Close(); - } - $false = false; - return empty($arr) ? $false : $arr; - } - - function CreateSequence($seq='adodbseq',$start=1) - { - - $this->Execute('BEGIN TRANSACTION adodbseq'); - $start -= 1; - $this->Execute("create table $seq (id float(53))"); - $ok = $this->Execute("insert into $seq with (tablock,holdlock) values($start)"); - if (!$ok) { - $this->Execute('ROLLBACK TRANSACTION adodbseq'); - return false; - } - $this->Execute('COMMIT TRANSACTION adodbseq'); - return true; - } - - function GenID($seq='adodbseq',$start=1) - { - //$this->debug=1; - $this->Execute('BEGIN TRANSACTION adodbseq'); - $ok = $this->Execute("update $seq with (tablock,holdlock) set id = id + 1"); - if (!$ok) { - $this->Execute("create table $seq (id float(53))"); - $ok = $this->Execute("insert into $seq with (tablock,holdlock) values($start)"); - if (!$ok) { - $this->Execute('ROLLBACK TRANSACTION adodbseq'); - return false; - } - $this->Execute('COMMIT TRANSACTION adodbseq'); - return $start; - } - $num = $this->GetOne("select id from $seq"); - $this->Execute('COMMIT TRANSACTION adodbseq'); - return $num; - - // in old implementation, pre 1.90, we returned GUID... - //return $this->GetOne("SELECT CONVERT(varchar(255), NEWID()) AS 'Char'"); - } - - } // end class - - class ADORecordSet_ado_mssql extends ADORecordSet_ado { - - var $databaseType = 'ado_mssql'; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_ado($id,$mode); - } -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-ads.inc.php b/src/adodb5/drivers/adodb-ads.inc.php deleted file mode 100644 index c59e6e4d..00000000 --- a/src/adodb5/drivers/adodb-ads.inc.php +++ /dev/null @@ -1,788 +0,0 @@ -_haserrorfunctions = ADODB_PHPVER >= 0x4050; - $this->_has_stupid_odbc_fetch_api_change = ADODB_PHPVER >= 0x4200; - } - - // returns true or false - function _connect($argDSN, $argUsername, $argPassword, $argDatabasename) - { - if (!function_exists('ads_connect')) return null; - - if ($this->debug && $argDatabasename && $this->databaseType != 'vfp') { - ADOConnection::outp("For Advantage Connect(), $argDatabasename is not used. Place dsn in 1st parameter."); - } - if ($this->curmode === false) $this->_connectionID = ads_connect($argDSN,$argUsername,$argPassword); - else $this->_connectionID = ads_connect($argDSN,$argUsername,$argPassword,$this->curmode); - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - if (isset($this->connectStmt)) $this->Execute($this->connectStmt); - - return $this->_connectionID != false; - } - - // returns true or false - function _pconnect($argDSN, $argUsername, $argPassword, $argDatabasename) - { - if (!function_exists('ads_connect')) return null; - - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - if ($this->debug && $argDatabasename) { - ADOConnection::outp("For PConnect(), $argDatabasename is not used. Place dsn in 1st parameter."); - } - // print "dsn=$argDSN u=$argUsername p=$argPassword
"; flush(); - if ($this->curmode === false) $this->_connectionID = ads_connect($argDSN,$argUsername,$argPassword); - else $this->_connectionID = ads_pconnect($argDSN,$argUsername,$argPassword,$this->curmode); - - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - if ($this->_connectionID && $this->autoRollback) @ads_rollback($this->_connectionID); - if (isset($this->connectStmt)) $this->Execute($this->connectStmt); - - return $this->_connectionID != false; - } - - // returns the Server version and Description - function ServerInfo() - { - - if (!empty($this->host) && ADODB_PHPVER >= 0x4300) { - $stmt = $this->Prepare('EXECUTE PROCEDURE sp_mgGetInstallInfo()'); - $res = $this->Execute($stmt); - if(!$res) - print $this->ErrorMsg(); - else{ - $ret["version"]= $res->fields[3]; - $ret["description"]="Advantage Database Server"; - return $ret; - } - } - else { - return ADOConnection::ServerInfo(); - } - } - - - // returns true or false - function CreateSequence( $seqname,$start=1) - { - $res = $this->Execute("CREATE TABLE $seqname ( ID autoinc( 1 ) ) IN DATABASE"); - if(!$res){ - print $this->ErrorMsg(); - return false; - } - else - return true; - - } - - // returns true or false - function DropSequence($seqname) - { - $res = $this->Execute("DROP TABLE $seqname"); - if(!$res){ - print $this->ErrorMsg(); - return false; - } - else - return true; - } - - - // returns the generated ID or false - // checks if the table already exists, else creates the table and inserts a record into the table - // and gets the ID number of the last inserted record. - function GenID($seqname,$start=1) - { - $go = $this->Execute("select * from $seqname"); - if (!$go){ - $res = $this->Execute("CREATE TABLE $seqname ( ID autoinc( 1 ) ) IN DATABASE"); - if(!res){ - print $this->ErrorMsg(); - return false; - } - } - $res = $this->Execute("INSERT INTO $seqname VALUES( DEFAULT )"); - if(!$res){ - print $this->ErrorMsg(); - return false; - } - else{ - $gen = $this->Execute("SELECT LastAutoInc( STATEMENT ) FROM system.iota"); - $ret = $gen->fields[0]; - return $ret; - } - - } - - - - - function ErrorMsg() - { - if ($this->_haserrorfunctions) { - if ($this->_errorMsg !== false) return $this->_errorMsg; - if (empty($this->_connectionID)) return @ads_errormsg(); - return @ads_errormsg($this->_connectionID); - } else return ADOConnection::ErrorMsg(); - } - - - function ErrorNo() - { - - if ($this->_haserrorfunctions) { - if ($this->_errorCode !== false) { - // bug in 4.0.6, error number can be corrupted string (should be 6 digits) - return (strlen($this->_errorCode)<=2) ? 0 : $this->_errorCode; - } - - if (empty($this->_connectionID)) $e = @ads_error(); - else $e = @ads_error($this->_connectionID); - - // bug in 4.0.6, error number can be corrupted string (should be 6 digits) - // so we check and patch - if (strlen($e)<=2) return 0; - return $e; - } else return ADOConnection::ErrorNo(); - } - - - - function BeginTrans() - { - if (!$this->hasTransactions) return false; - if ($this->transOff) return true; - $this->transCnt += 1; - $this->_autocommit = false; - return ads_autocommit($this->_connectionID,false); - } - - function CommitTrans($ok=true) - { - if ($this->transOff) return true; - if (!$ok) return $this->RollbackTrans(); - if ($this->transCnt) $this->transCnt -= 1; - $this->_autocommit = true; - $ret = ads_commit($this->_connectionID); - ads_autocommit($this->_connectionID,true); - return $ret; - } - - function RollbackTrans() - { - if ($this->transOff) return true; - if ($this->transCnt) $this->transCnt -= 1; - $this->_autocommit = true; - $ret = ads_rollback($this->_connectionID); - ads_autocommit($this->_connectionID,true); - return $ret; - } - - - // Returns tables,Views or both on succesfull execution. Returns - // tables by default on succesfull execustion. - function &MetaTables($ttype) - { - $recordSet1 = $this->Execute("select * from system.tables"); - if(!$recordSet1){ - print $this->ErrorMsg(); - return false; - } - $recordSet2 = $this->Execute("select * from system.views"); - if(!$recordSet2){ - print $this->ErrorMsg(); - return false; - } - $i=0; - while (!$recordSet1->EOF){ - $arr["$i"] = $recordSet1->fields[0]; - $recordSet1->MoveNext(); - $i=$i+1; - } - if($ttype=='FALSE'){ - while (!$recordSet2->EOF){ - $arr["$i"] = $recordSet2->fields[0]; - $recordSet2->MoveNext(); - $i=$i+1; - } - return $arr; - } - elseif($ttype=='VIEWS'){ - while (!$recordSet2->EOF){ - $arrV["$i"] = $recordSet2->fields[0]; - $recordSet2->MoveNext(); - $i=$i+1; - } - return $arrV; - } - else{ - return $arr; - } - - } - - function &MetaPrimaryKeys($table) - { - $recordSet = $this->Execute("select table_primary_key from system.tables where name='$table'"); - if(!$recordSet){ - print $this->ErrorMsg(); - return false; - } - $i=0; - while (!$recordSet->EOF){ - $arr["$i"] = $recordSet->fields[0]; - $recordSet->MoveNext(); - $i=$i+1; - } - return $arr; - } - -/* -See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcdatetime_data_type_changes.asp -/ SQL data type codes / -#define SQL_UNKNOWN_TYPE 0 -#define SQL_CHAR 1 -#define SQL_NUMERIC 2 -#define SQL_DECIMAL 3 -#define SQL_INTEGER 4 -#define SQL_SMALLINT 5 -#define SQL_FLOAT 6 -#define SQL_REAL 7 -#define SQL_DOUBLE 8 -#if (ODBCVER >= 0x0300) -#define SQL_DATETIME 9 -#endif -#define SQL_VARCHAR 12 - - -/ One-parameter shortcuts for date/time data types / -#if (ODBCVER >= 0x0300) -#define SQL_TYPE_DATE 91 -#define SQL_TYPE_TIME 92 -#define SQL_TYPE_TIMESTAMP 93 - -#define SQL_UNICODE (-95) -#define SQL_UNICODE_VARCHAR (-96) -#define SQL_UNICODE_LONGVARCHAR (-97) -*/ - function ODBCTypes($t) - { - switch ((integer)$t) { - case 1: - case 12: - case 0: - case -95: - case -96: - return 'C'; - case -97: - case -1: //text - return 'X'; - case -4: //image - return 'B'; - - case 9: - case 91: - return 'D'; - - case 10: - case 11: - case 92: - case 93: - return 'T'; - - case 4: - case 5: - case -6: - return 'I'; - - case -11: // uniqidentifier - return 'R'; - case -7: //bit - return 'L'; - - default: - return 'N'; - } - } - - function &MetaColumns($table) - { - global $ADODB_FETCH_MODE; - - $false = false; - if ($this->uCaseTables) $table = strtoupper($table); - $schema = ''; - $this->_findschema($table,$schema); - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - - /*if (false) { // after testing, confirmed that the following does not work becoz of a bug - $qid2 = ads_tables($this->_connectionID); - $rs = new ADORecordSet_ads($qid2); - $ADODB_FETCH_MODE = $savem; - if (!$rs) return false; - $rs->_has_stupid_odbc_fetch_api_change = $this->_has_stupid_odbc_fetch_api_change; - $rs->_fetch(); - - while (!$rs->EOF) { - if ($table == strtoupper($rs->fields[2])) { - $q = $rs->fields[0]; - $o = $rs->fields[1]; - break; - } - $rs->MoveNext(); - } - $rs->Close(); - - $qid = ads_columns($this->_connectionID,$q,$o,strtoupper($table),'%'); - } */ - - switch ($this->databaseType) { - case 'access': - case 'vfp': - $qid = ads_columns($this->_connectionID);#,'%','',strtoupper($table),'%'); - break; - - - case 'db2': - $colname = "%"; - $qid = ads_columns($this->_connectionID, "", $schema, $table, $colname); - break; - - default: - $qid = @ads_columns($this->_connectionID,'%','%',strtoupper($table),'%'); - if (empty($qid)) $qid = ads_columns($this->_connectionID); - break; - } - if (empty($qid)) return $false; - - $rs = new ADORecordSet_ads($qid); - $ADODB_FETCH_MODE = $savem; - - if (!$rs) return $false; - $rs->_has_stupid_odbc_fetch_api_change = $this->_has_stupid_odbc_fetch_api_change; - $rs->_fetch(); - - $retarr = array(); - - /* - $rs->fields indices - 0 TABLE_QUALIFIER - 1 TABLE_SCHEM - 2 TABLE_NAME - 3 COLUMN_NAME - 4 DATA_TYPE - 5 TYPE_NAME - 6 PRECISION - 7 LENGTH - 8 SCALE - 9 RADIX - 10 NULLABLE - 11 REMARKS - */ - while (!$rs->EOF) { - // adodb_pr($rs->fields); - if (strtoupper(trim($rs->fields[2])) == $table && (!$schema || strtoupper($rs->fields[1]) == $schema)) { - $fld = new ADOFieldObject(); - $fld->name = $rs->fields[3]; - $fld->type = $this->ODBCTypes($rs->fields[4]); - - // ref: http://msdn.microsoft.com/library/default.asp?url=/archive/en-us/dnaraccgen/html/msdn_odk.asp - // access uses precision to store length for char/varchar - if ($fld->type == 'C' or $fld->type == 'X') { - if ($this->databaseType == 'access') - $fld->max_length = $rs->fields[6]; - else if ($rs->fields[4] <= -95) // UNICODE - $fld->max_length = $rs->fields[7]/2; - else - $fld->max_length = $rs->fields[7]; - } else - $fld->max_length = $rs->fields[7]; - $fld->not_null = !empty($rs->fields[10]); - $fld->scale = $rs->fields[8]; - $retarr[strtoupper($fld->name)] = $fld; - } else if (sizeof($retarr)>0) - break; - $rs->MoveNext(); - } - $rs->Close(); //-- crashes 4.03pl1 -- why? - - if (empty($retarr)) $retarr = false; - return $retarr; - } - - // Returns an array of columns names for a given table - function &MetaColumnNames($table) - { - $recordSet = $this->Execute("select name from system.columns where parent='$table'"); - if(!$recordSet){ - print $this->ErrorMsg(); - return false; - } - else{ - $i=0; - while (!$recordSet->EOF){ - $arr["FIELD$i"] = $recordSet->fields[0]; - $recordSet->MoveNext(); - $i=$i+1; - } - return $arr; - } - } - - - function Prepare($sql) - { - if (! $this->_bindInputArray) return $sql; // no binding - $stmt = ads_prepare($this->_connectionID,$sql); - if (!$stmt) { - // we don't know whether odbc driver is parsing prepared stmts, so just return sql - return $sql; - } - return array($sql,$stmt,false); - } - - /* returns queryID or false */ - function _query($sql,$inputarr=false) - { - $this->_error = ''; - - if ($inputarr) { - if (is_array($sql)) { - $stmtid = $sql[1]; - } else { - $stmtid = ads_prepare($this->_connectionID,$sql); - - if ($stmtid == false) { - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - return false; - } - } - - if (! ads_execute($stmtid,$inputarr)) { - //@ads_free_result($stmtid); - if ($this->_haserrorfunctions) { - $this->_errorMsg = ads_errormsg(); - $this->_errorCode = ads_error(); - } - return false; - } - - } else if (is_array($sql)) { - $stmtid = $sql[1]; - if (!ads_execute($stmtid)) { - //@ads_free_result($stmtid); - if ($this->_haserrorfunctions) { - $this->_errorMsg = ads_errormsg(); - $this->_errorCode = ads_error(); - } - return false; - } - } else - { - - $stmtid = ads_exec($this->_connectionID,$sql); - - } - - $this->_lastAffectedRows = 0; - - if ($stmtid) - { - - if (@ads_num_fields($stmtid) == 0) { - $this->_lastAffectedRows = ads_num_rows($stmtid); - $stmtid = true; - - } else { - - $this->_lastAffectedRows = 0; - ads_binmode($stmtid,$this->binmode); - ads_longreadlen($stmtid,$this->maxblobsize); - - } - - if ($this->_haserrorfunctions) - { - - $this->_errorMsg = ''; - $this->_errorCode = 0; - } - else - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - } - else - { - if ($this->_haserrorfunctions) { - $this->_errorMsg = ads_errormsg(); - $this->_errorCode = ads_error(); - } else - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - } - - return $stmtid; - - } - - /* - Insert a null into the blob field of the table first. - Then use UpdateBlob to store the blob. - - Usage: - - $conn->Execute('INSERT INTO blobtable (id, blobcol) VALUES (1, null)'); - $conn->UpdateBlob('blobtable','blobcol',$blob,'id=1'); - */ - function UpdateBlob($table,$column,$val,$where,$blobtype='BLOB') - { - $sql = "UPDATE $table SET $column=? WHERE $where"; - $stmtid = ads_prepare($this->_connectionID,$sql); - if ($stmtid == false){ - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - return false; - } - if (! ads_execute($stmtid,array($val),array(SQL_BINARY) )){ - if ($this->_haserrorfunctions){ - $this->_errorMsg = ads_errormsg(); - $this->_errorCode = ads_error(); - } - return false; - } - return TRUE; - } - - // returns true or false - function _close() - { - $ret = @ads_close($this->_connectionID); - $this->_connectionID = false; - return $ret; - } - - function _affectedrows() - { - return $this->_lastAffectedRows; - } - -} - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordSet_ads extends ADORecordSet { - - var $bind = false; - var $databaseType = "ads"; - var $dataProvider = "ads"; - var $useFetchArray; - var $_has_stupid_odbc_fetch_api_change; - - function __construct($id,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - $this->fetchMode = $mode; - - $this->_queryID = $id; - - // the following is required for mysql odbc driver in 4.3.1 -- why? - $this->EOF = false; - $this->_currentRow = -1; - //$this->ADORecordSet($id); - } - - - // returns the field object - function &FetchField($fieldOffset = -1) - { - - $off=$fieldOffset+1; // offsets begin at 1 - - $o= new ADOFieldObject(); - $o->name = @ads_field_name($this->_queryID,$off); - $o->type = @ads_field_type($this->_queryID,$off); - $o->max_length = @ads_field_len($this->_queryID,$off); - if (ADODB_ASSOC_CASE == 0) $o->name = strtolower($o->name); - else if (ADODB_ASSOC_CASE == 1) $o->name = strtoupper($o->name); - return $o; - } - - /* Use associative array to get fields array */ - function Fields($colname) - { - if ($this->fetchMode & ADODB_FETCH_ASSOC) return $this->fields[$colname]; - if (!$this->bind) { - $this->bind = array(); - for ($i=0; $i < $this->_numOfFields; $i++) { - $o = $this->FetchField($i); - $this->bind[strtoupper($o->name)] = $i; - } - } - - return $this->fields[$this->bind[strtoupper($colname)]]; - } - - - function _initrs() - { - global $ADODB_COUNTRECS; - $this->_numOfRows = ($ADODB_COUNTRECS) ? @ads_num_rows($this->_queryID) : -1; - $this->_numOfFields = @ads_num_fields($this->_queryID); - // some silly drivers such as db2 as/400 and intersystems cache return _numOfRows = 0 - if ($this->_numOfRows == 0) $this->_numOfRows = -1; - //$this->useFetchArray = $this->connection->useFetchArray; - $this->_has_stupid_odbc_fetch_api_change = ADODB_PHPVER >= 0x4200; - } - - function _seek($row) - { - return false; - } - - // speed up SelectLimit() by switching to ADODB_FETCH_NUM as ADODB_FETCH_ASSOC is emulated - function &GetArrayLimit($nrows,$offset=-1) - { - if ($offset <= 0) { - $rs =& $this->GetArray($nrows); - return $rs; - } - $savem = $this->fetchMode; - $this->fetchMode = ADODB_FETCH_NUM; - $this->Move($offset); - $this->fetchMode = $savem; - - if ($this->fetchMode & ADODB_FETCH_ASSOC) { - $this->fields =& $this->GetRowAssoc(ADODB_ASSOC_CASE); - } - - $results = array(); - $cnt = 0; - while (!$this->EOF && $nrows != $cnt) { - $results[$cnt++] = $this->fields; - $this->MoveNext(); - } - - return $results; - } - - - function MoveNext() - { - if ($this->_numOfRows != 0 && !$this->EOF) { - $this->_currentRow++; - - if ($this->_has_stupid_odbc_fetch_api_change) - $rez = @ads_fetch_into($this->_queryID,$this->fields); - else { - $row = 0; - $rez = @ads_fetch_into($this->_queryID,$row,$this->fields); - } - if ($rez) { - if ($this->fetchMode & ADODB_FETCH_ASSOC) { - $this->fields =& $this->GetRowAssoc(ADODB_ASSOC_CASE); - } - return true; - } - } - $this->fields = false; - $this->EOF = true; - return false; - } - - function _fetch() - { - - if ($this->_has_stupid_odbc_fetch_api_change) - $rez = @ads_fetch_into($this->_queryID,$this->fields); - else { - $row = 0; - $rez = @ads_fetch_into($this->_queryID,$row,$this->fields); - } - if ($rez) { - if ($this->fetchMode & ADODB_FETCH_ASSOC) { - $this->fields =& $this->GetRowAssoc(ADODB_ASSOC_CASE); - } - return true; - } - $this->fields = false; - return false; - } - - function _close() - { - return @ads_free_result($this->_queryID); - } - -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-csv.inc.php b/src/adodb5/drivers/adodb-csv.inc.php deleted file mode 100644 index 95cb238b..00000000 --- a/src/adodb5/drivers/adodb-csv.inc.php +++ /dev/null @@ -1,207 +0,0 @@ -_insertid; - } - - function _affectedrows() - { - return $this->_affectedrows; - } - - function MetaDatabases() - { - return false; - } - - - // returns true or false - function _connect($argHostname, $argUsername, $argPassword, $argDatabasename) - { - if (strtolower(substr($argHostname,0,7)) !== 'http://') return false; - $this->_url = $argHostname; - return true; - } - - // returns true or false - function _pconnect($argHostname, $argUsername, $argPassword, $argDatabasename) - { - if (strtolower(substr($argHostname,0,7)) !== 'http://') return false; - $this->_url = $argHostname; - return true; - } - - function MetaColumns($table, $normalize=true) - { - return false; - } - - - // parameters use PostgreSQL convention, not MySQL - function SelectLimit($sql,$nrows=-1,$offset=-1) - { - global $ADODB_FETCH_MODE; - - $url = $this->_url.'?sql='.urlencode($sql)."&nrows=$nrows&fetch=". - (($this->fetchMode !== false)?$this->fetchMode : $ADODB_FETCH_MODE). - "&offset=$offset"; - $err = false; - $rs = csv2rs($url,$err,false); - - if ($this->debug) print "$url
$err
"; - - $at = strpos($err,'::::'); - if ($at === false) { - $this->_errorMsg = $err; - $this->_errorNo = (integer)$err; - } else { - $this->_errorMsg = substr($err,$at+4,1024); - $this->_errorNo = -9999; - } - if ($this->_errorNo) - if ($fn = $this->raiseErrorFn) { - $fn($this->databaseType,'EXECUTE',$this->ErrorNo(),$this->ErrorMsg(),$sql,''); - } - - if (is_object($rs)) { - - $rs->databaseType='csv'; - $rs->fetchMode = ($this->fetchMode !== false) ? $this->fetchMode : $ADODB_FETCH_MODE; - $rs->connection = $this; - } - return $rs; - } - - // returns queryID or false - function _Execute($sql,$inputarr=false) - { - global $ADODB_FETCH_MODE; - - if (!$this->_bindInputArray && $inputarr) { - $sqlarr = explode('?',$sql); - $sql = ''; - $i = 0; - foreach($inputarr as $v) { - - $sql .= $sqlarr[$i]; - if (gettype($v) == 'string') - $sql .= $this->qstr($v); - else if ($v === null) - $sql .= 'NULL'; - else - $sql .= $v; - $i += 1; - - } - $sql .= $sqlarr[$i]; - if ($i+1 != sizeof($sqlarr)) - print "Input Array does not match ?: ".htmlspecialchars($sql); - $inputarr = false; - } - - $url = $this->_url.'?sql='.urlencode($sql)."&fetch=". - (($this->fetchMode !== false)?$this->fetchMode : $ADODB_FETCH_MODE); - $err = false; - - - $rs = csv2rs($url,$err,false); - if ($this->debug) print urldecode($url)."
$err
"; - $at = strpos($err,'::::'); - if ($at === false) { - $this->_errorMsg = $err; - $this->_errorNo = (integer)$err; - } else { - $this->_errorMsg = substr($err,$at+4,1024); - $this->_errorNo = -9999; - } - - if ($this->_errorNo) - if ($fn = $this->raiseErrorFn) { - $fn($this->databaseType,'EXECUTE',$this->ErrorNo(),$this->ErrorMsg(),$sql,$inputarr); - } - if (is_object($rs)) { - $rs->fetchMode = ($this->fetchMode !== false) ? $this->fetchMode : $ADODB_FETCH_MODE; - - $this->_affectedrows = $rs->affectedrows; - $this->_insertid = $rs->insertid; - $rs->databaseType='csv'; - $rs->connection = $this; - } - return $rs; - } - - /* Returns: the last error message from previous database operation */ - function ErrorMsg() - { - return $this->_errorMsg; - } - - /* Returns: the last error number from previous database operation */ - function ErrorNo() - { - return $this->_errorNo; - } - - // returns true or false - function _close() - { - return true; - } -} // class - -class ADORecordset_csv extends ADORecordset { - function __construct($id,$mode=false) - { - $this->ADORecordset($id,$mode); - } - - function _close() - { - return true; - } -} - -} // define - -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-db2.inc.php b/src/adodb5/drivers/adodb-db2.inc.php deleted file mode 100644 index fbda7a97..00000000 --- a/src/adodb5/drivers/adodb-db2.inc.php +++ /dev/null @@ -1,819 +0,0 @@ -_haserrorfunctions = ADODB_PHPVER >= 0x4050; - } - - // returns true or false - function _connect($argDSN, $argUsername, $argPassword, $argDatabasename) - { - if (!function_exists('db2_connect')) { - ADOConnection::outp("Warning: The old ODBC based DB2 driver has been renamed 'odbc_db2'. This ADOdb driver calls PHP's native db2 extension which is not installed."); - return null; - } - // This needs to be set before the connect(). - // Replaces the odbc_binmode() call that was in Execute() - ini_set('ibm_db2.binmode', $this->binmode); - - if ($argDatabasename) { - $this->_connectionID = db2_connect($argDatabasename,$argUsername,$argPassword); - } else { - $this->_connectionID = db2_connect($argDSN,$argUsername,$argPassword); - } - - // For db2_connect(), there is an optional 4th arg. If present, it must be - // an array of valid options. So far, we don't use them. - - $this->_errorMsg = @db2_conn_errormsg(); - - if (isset($this->connectStmt)) $this->Execute($this->connectStmt); - - return $this->_connectionID != false; - } - - // returns true or false - function _pconnect($argDSN, $argUsername, $argPassword, $argDatabasename) - { - - if (!function_exists('db2_connect')) return null; - - // This needs to be set before the connect(). - // Replaces the odbc_binmode() call that was in Execute() - ini_set('ibm_db2.binmode', $this->binmode); - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - - if ($argDatabasename) { - $this->_connectionID = db2_pconnect($argDatabasename,$argUsername,$argPassword); - } else { - $this->_connectionID = db2_pconnect($argDSN,$argUsername,$argPassword); - } - - $this->_errorMsg = @db2_conn_errormsg(); - if ($this->_connectionID && $this->autoRollback) @db2_rollback($this->_connectionID); - if (isset($this->connectStmt)) $this->Execute($this->connectStmt); - - return $this->_connectionID != false; - } - - // format and return date string in database timestamp format - function DBTimeStamp($ts) - { - if (empty($ts) && $ts !== 0) return 'null'; - if (is_string($ts)) $ts = ADORecordSet::UnixTimeStamp($ts); - return 'TO_DATE('.adodb_date($this->fmtTimeStamp,$ts).",'YYYY-MM-DD HH24:MI:SS')"; - } - - // Format date column in sql string given an input format that understands Y M D - function SQLDate($fmt, $col=false) - { - // use right() and replace() ? - if (!$col) $col = $this->sysDate; - - /* use TO_CHAR() if $fmt is TO_CHAR() allowed fmt */ - if ($fmt== 'Y-m-d H:i:s') - return 'TO_CHAR('.$col.", 'YYYY-MM-DD HH24:MI:SS')"; - - $s = ''; - - $len = strlen($fmt); - for ($i=0; $i < $len; $i++) { - if ($s) $s .= $this->concat_operator; - $ch = $fmt[$i]; - switch($ch) { - case 'Y': - case 'y': - if ($len==1) return "year($col)"; - $s .= "char(year($col))"; - break; - case 'M': - if ($len==1) return "monthname($col)"; - $s .= "substr(monthname($col),1,3)"; - break; - case 'm': - if ($len==1) return "month($col)"; - $s .= "right(digits(month($col)),2)"; - break; - case 'D': - case 'd': - if ($len==1) return "day($col)"; - $s .= "right(digits(day($col)),2)"; - break; - case 'H': - case 'h': - if ($len==1) return "hour($col)"; - if ($col != $this->sysDate) $s .= "right(digits(hour($col)),2)"; - else $s .= "''"; - break; - case 'i': - case 'I': - if ($len==1) return "minute($col)"; - if ($col != $this->sysDate) - $s .= "right(digits(minute($col)),2)"; - else $s .= "''"; - break; - case 'S': - case 's': - if ($len==1) return "second($col)"; - if ($col != $this->sysDate) - $s .= "right(digits(second($col)),2)"; - else $s .= "''"; - break; - default: - if ($ch == '\\') { - $i++; - $ch = substr($fmt,$i,1); - } - $s .= $this->qstr($ch); - } - } - return $s; - } - - - function ServerInfo() - { - - if (!empty($this->host) && ADODB_PHPVER >= 0x4300) { - $dsn = strtoupper($this->host); - $first = true; - $found = false; - - if (!function_exists('db2_data_source')) return false; - - while(true) { - - $rez = @db2_data_source($this->_connectionID, - $first ? SQL_FETCH_FIRST : SQL_FETCH_NEXT); - $first = false; - if (!is_array($rez)) break; - if (strtoupper($rez['server']) == $dsn) { - $found = true; - break; - } - } - if (!$found) return ADOConnection::ServerInfo(); - if (!isset($rez['version'])) $rez['version'] = ''; - return $rez; - } else { - return ADOConnection::ServerInfo(); - } - } - - - function CreateSequence($seqname='adodbseq',$start=1) - { - if (empty($this->_genSeqSQL)) return false; - $ok = $this->Execute(sprintf($this->_genSeqSQL,$seqname,$start)); - if (!$ok) return false; - return true; - } - - function DropSequence($seqname) - { - if (empty($this->_dropSeqSQL)) return false; - return $this->Execute(sprintf($this->_dropSeqSQL,$seqname)); - } - - /* - This algorithm is not very efficient, but works even if table locking - is not available. - - Will return false if unable to generate an ID after $MAXLOOPS attempts. - */ - function GenID($seq='adodbseq',$start=1) - { - // if you have to modify the parameter below, your database is overloaded, - // or you need to implement generation of id's yourself! - $num = $this->GetOne("VALUES NEXTVAL FOR $seq"); - return $num; - } - - - function ErrorMsg() - { - if ($this->_haserrorfunctions) { - if ($this->_errorMsg !== false) return $this->_errorMsg; - if (empty($this->_connectionID)) return @db2_conn_errormsg(); - return @db2_conn_errormsg($this->_connectionID); - } else return ADOConnection::ErrorMsg(); - } - - function ErrorNo() - { - - if ($this->_haserrorfunctions) { - if ($this->_errorCode !== false) { - // bug in 4.0.6, error number can be corrupted string (should be 6 digits) - return (strlen($this->_errorCode)<=2) ? 0 : $this->_errorCode; - } - - if (empty($this->_connectionID)) $e = @db2_conn_error(); - else $e = @db2_conn_error($this->_connectionID); - - // bug in 4.0.6, error number can be corrupted string (should be 6 digits) - // so we check and patch - if (strlen($e)<=2) return 0; - return $e; - } else return ADOConnection::ErrorNo(); - } - - - - function BeginTrans() - { - if (!$this->hasTransactions) return false; - if ($this->transOff) return true; - $this->transCnt += 1; - $this->_autocommit = false; - return db2_autocommit($this->_connectionID,false); - } - - function CommitTrans($ok=true) - { - if ($this->transOff) return true; - if (!$ok) return $this->RollbackTrans(); - if ($this->transCnt) $this->transCnt -= 1; - $this->_autocommit = true; - $ret = db2_commit($this->_connectionID); - db2_autocommit($this->_connectionID,true); - return $ret; - } - - function RollbackTrans() - { - if ($this->transOff) return true; - if ($this->transCnt) $this->transCnt -= 1; - $this->_autocommit = true; - $ret = db2_rollback($this->_connectionID); - db2_autocommit($this->_connectionID,true); - return $ret; - } - - function MetaPrimaryKeys($table) - { - global $ADODB_FETCH_MODE; - - if ($this->uCaseTables) $table = strtoupper($table); - $schema = ''; - $this->_findschema($table,$schema); - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $qid = @db2_primarykeys($this->_connectionID,'',$schema,$table); - - if (!$qid) { - $ADODB_FETCH_MODE = $savem; - return false; - } - $rs = new ADORecordSet_db2($qid); - $ADODB_FETCH_MODE = $savem; - - if (!$rs) return false; - - $arr = $rs->GetArray(); - $rs->Close(); - $arr2 = array(); - for ($i=0; $i < sizeof($arr); $i++) { - if ($arr[$i][3]) $arr2[] = $arr[$i][3]; - } - return $arr2; - } - - function MetaForeignKeys($table, $owner = FALSE, $upper = FALSE, $asociative = FALSE ) - { - global $ADODB_FETCH_MODE; - - if ($this->uCaseTables) $table = strtoupper($table); - $schema = ''; - $this->_findschema($table,$schema); - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $qid = @db2_foreign_keys($this->_connectionID,'',$schema,$table); - if (!$qid) { - $ADODB_FETCH_MODE = $savem; - return false; - } - $rs = new ADORecordSet_db2($qid); - - $ADODB_FETCH_MODE = $savem; - /* - $rs->fields indices - 0 PKTABLE_CAT - 1 PKTABLE_SCHEM - 2 PKTABLE_NAME - 3 PKCOLUMN_NAME - 4 FKTABLE_CAT - 5 FKTABLE_SCHEM - 6 FKTABLE_NAME - 7 FKCOLUMN_NAME - */ - if (!$rs) return false; - - $foreign_keys = array(); - while (!$rs->EOF) { - if (strtoupper(trim($rs->fields[2])) == $table && (!$schema || strtoupper($rs->fields[1]) == $schema)) { - if (!is_array($foreign_keys[$rs->fields[5].'.'.$rs->fields[6]])) - $foreign_keys[$rs->fields[5].'.'.$rs->fields[6]] = array(); - $foreign_keys[$rs->fields[5].'.'.$rs->fields[6]][$rs->fields[7]] = $rs->fields[3]; - } - $rs->MoveNext(); - } - - $rs->Close(); - return $foreign_key; - } - - - function MetaTables($ttype=false,$schema=false) - { - global $ADODB_FETCH_MODE; - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $qid = db2_tables($this->_connectionID); - - $rs = new ADORecordSet_db2($qid); - - $ADODB_FETCH_MODE = $savem; - if (!$rs) { - $false = false; - return $false; - } - - $arr = $rs->GetArray(); - - $rs->Close(); - $arr2 = array(); - - if ($ttype) { - $isview = strncmp($ttype,'V',1) === 0; - } - for ($i=0; $i < sizeof($arr); $i++) { - if (!$arr[$i][2]) continue; - $type = $arr[$i][3]; - $schemaval = ($schema) ? $arr[$i][1].'.' : ''; - if ($ttype) { - if ($isview) { - if (strncmp($type,'V',1) === 0) $arr2[] = $schemaval.$arr[$i][2]; - } else if (strncmp($type,'SYS',3) !== 0) $arr2[] = $schemaval.$arr[$i][2]; - } else if (strncmp($type,'SYS',3) !== 0) $arr2[] = $schemaval.$arr[$i][2]; - } - return $arr2; - } - -/* -See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/db2/htm/db2datetime_data_type_changes.asp -/ SQL data type codes / -#define SQL_UNKNOWN_TYPE 0 -#define SQL_CHAR 1 -#define SQL_NUMERIC 2 -#define SQL_DECIMAL 3 -#define SQL_INTEGER 4 -#define SQL_SMALLINT 5 -#define SQL_FLOAT 6 -#define SQL_REAL 7 -#define SQL_DOUBLE 8 -#if (DB2VER >= 0x0300) -#define SQL_DATETIME 9 -#endif -#define SQL_VARCHAR 12 - - -/ One-parameter shortcuts for date/time data types / -#if (DB2VER >= 0x0300) -#define SQL_TYPE_DATE 91 -#define SQL_TYPE_TIME 92 -#define SQL_TYPE_TIMESTAMP 93 - -#define SQL_UNICODE (-95) -#define SQL_UNICODE_VARCHAR (-96) -#define SQL_UNICODE_LONGVARCHAR (-97) -*/ - function DB2Types($t) - { - switch ((integer)$t) { - case 1: - case 12: - case 0: - case -95: - case -96: - return 'C'; - case -97: - case -1: //text - return 'X'; - case -4: //image - return 'B'; - - case 9: - case 91: - return 'D'; - - case 10: - case 11: - case 92: - case 93: - return 'T'; - - case 4: - case 5: - case -6: - return 'I'; - - case -11: // uniqidentifier - return 'R'; - case -7: //bit - return 'L'; - - default: - return 'N'; - } - } - - function MetaColumns($table, $normalize=true) - { - global $ADODB_FETCH_MODE; - - $false = false; - if ($this->uCaseTables) $table = strtoupper($table); - $schema = ''; - $this->_findschema($table,$schema); - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - - $colname = "%"; - $qid = db2_columns($this->_connectionID, "", $schema, $table, $colname); - if (empty($qid)) return $false; - - $rs = new ADORecordSet_db2($qid); - $ADODB_FETCH_MODE = $savem; - - if (!$rs) return $false; - $rs->_fetch(); - - $retarr = array(); - - /* - $rs->fields indices - 0 TABLE_QUALIFIER - 1 TABLE_SCHEM - 2 TABLE_NAME - 3 COLUMN_NAME - 4 DATA_TYPE - 5 TYPE_NAME - 6 PRECISION - 7 LENGTH - 8 SCALE - 9 RADIX - 10 NULLABLE - 11 REMARKS - */ - while (!$rs->EOF) { - if (strtoupper(trim($rs->fields[2])) == $table && (!$schema || strtoupper($rs->fields[1]) == $schema)) { - $fld = new ADOFieldObject(); - $fld->name = $rs->fields[3]; - $fld->type = $this->DB2Types($rs->fields[4]); - - // ref: http://msdn.microsoft.com/library/default.asp?url=/archive/en-us/dnaraccgen/html/msdn_odk.asp - // access uses precision to store length for char/varchar - if ($fld->type == 'C' or $fld->type == 'X') { - if ($rs->fields[4] <= -95) // UNICODE - $fld->max_length = $rs->fields[7]/2; - else - $fld->max_length = $rs->fields[7]; - } else - $fld->max_length = $rs->fields[7]; - $fld->not_null = !empty($rs->fields[10]); - $fld->scale = $rs->fields[8]; - $fld->primary_key = false; - $retarr[strtoupper($fld->name)] = $fld; - } else if (sizeof($retarr)>0) - break; - $rs->MoveNext(); - } - $rs->Close(); - if (empty($retarr)) $retarr = false; - - $qid = db2_primary_keys($this->_connectionID, "", $schema, $table); - if (empty($qid)) return $false; - - $rs = new ADORecordSet_db2($qid); - $ADODB_FETCH_MODE = $savem; - - if (!$rs) return $retarr; - $rs->_fetch(); - - /* - $rs->fields indices - 0 TABLE_CAT - 1 TABLE_SCHEM - 2 TABLE_NAME - 3 COLUMN_NAME - 4 KEY_SEQ - 5 PK_NAME - */ - while (!$rs->EOF) { - if (strtoupper(trim($rs->fields[2])) == $table && (!$schema || strtoupper($rs->fields[1]) == $schema)) { - $retarr[strtoupper($rs->fields[3])]->primary_key = true; - } else if (sizeof($retarr)>0) - break; - $rs->MoveNext(); - } - $rs->Close(); - - if (empty($retarr)) $retarr = false; - return $retarr; - } - - function Prepare($sql) - { - if (! $this->_bindInputArray) return $sql; // no binding - $stmt = db2_prepare($this->_connectionID,$sql); - if (!$stmt) { - // we don't know whether db2 driver is parsing prepared stmts, so just return sql - return $sql; - } - return array($sql,$stmt,false); - } - - /* returns queryID or false */ - function _query($sql,$inputarr=false) - { - $this->_error = ''; - - if ($inputarr) { - if (is_array($sql)) { - $stmtid = $sql[1]; - } else { - $stmtid = db2_prepare($this->_connectionID,$sql); - - if ($stmtid == false) { - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - return false; - } - } - - if (! db2_execute($stmtid,$inputarr)) { - if ($this->_haserrorfunctions) { - $this->_errorMsg = db2_stmt_errormsg(); - $this->_errorCode = db2_stmt_error(); - } - return false; - } - - } else if (is_array($sql)) { - $stmtid = $sql[1]; - if (!db2_execute($stmtid)) { - if ($this->_haserrorfunctions) { - $this->_errorMsg = db2_stmt_errormsg(); - $this->_errorCode = db2_stmt_error(); - } - return false; - } - } else - $stmtid = @db2_exec($this->_connectionID,$sql); - - $this->_lastAffectedRows = 0; - if ($stmtid) { - if (@db2_num_fields($stmtid) == 0) { - $this->_lastAffectedRows = db2_num_rows($stmtid); - $stmtid = true; - } else { - $this->_lastAffectedRows = 0; - } - - if ($this->_haserrorfunctions) { - $this->_errorMsg = ''; - $this->_errorCode = 0; - } else - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - } else { - if ($this->_haserrorfunctions) { - $this->_errorMsg = db2_stmt_errormsg(); - $this->_errorCode = db2_stmt_error(); - } else - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - - } - return $stmtid; - } - - /* - Insert a null into the blob field of the table first. - Then use UpdateBlob to store the blob. - - Usage: - - $conn->Execute('INSERT INTO blobtable (id, blobcol) VALUES (1, null)'); - $conn->UpdateBlob('blobtable','blobcol',$blob,'id=1'); - */ - function UpdateBlob($table,$column,$val,$where,$blobtype='BLOB') - { - return $this->Execute("UPDATE $table SET $column=? WHERE $where",array($val)) != false; - } - - // returns true or false - function _close() - { - $ret = @db2_close($this->_connectionID); - $this->_connectionID = false; - return $ret; - } - - function _affectedrows() - { - return $this->_lastAffectedRows; - } - -} - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordSet_db2 extends ADORecordSet { - - var $bind = false; - var $databaseType = "db2"; - var $dataProvider = "db2"; - var $useFetchArray; - - function __construct($id,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - $this->fetchMode = $mode; - - $this->_queryID = $id; - } - - - // returns the field object - function FetchField($offset = -1) - { - $o= new ADOFieldObject(); - $o->name = @db2_field_name($this->_queryID,$offset); - $o->type = @db2_field_type($this->_queryID,$offset); - $o->max_length = db2_field_width($this->_queryID,$offset); - if (ADODB_ASSOC_CASE == 0) $o->name = strtolower($o->name); - else if (ADODB_ASSOC_CASE == 1) $o->name = strtoupper($o->name); - return $o; - } - - /* Use associative array to get fields array */ - function Fields($colname) - { - if ($this->fetchMode & ADODB_FETCH_ASSOC) return $this->fields[$colname]; - if (!$this->bind) { - $this->bind = array(); - for ($i=0; $i < $this->_numOfFields; $i++) { - $o = $this->FetchField($i); - $this->bind[strtoupper($o->name)] = $i; - } - } - - return $this->fields[$this->bind[strtoupper($colname)]]; - } - - - function _initrs() - { - global $ADODB_COUNTRECS; - $this->_numOfRows = ($ADODB_COUNTRECS) ? @db2_num_rows($this->_queryID) : -1; - $this->_numOfFields = @db2_num_fields($this->_queryID); - // some silly drivers such as db2 as/400 and intersystems cache return _numOfRows = 0 - if ($this->_numOfRows == 0) $this->_numOfRows = -1; - } - - function _seek($row) - { - return false; - } - - // speed up SelectLimit() by switching to ADODB_FETCH_NUM as ADODB_FETCH_ASSOC is emulated - function GetArrayLimit($nrows,$offset=-1) - { - if ($offset <= 0) { - $rs = $this->GetArray($nrows); - return $rs; - } - $savem = $this->fetchMode; - $this->fetchMode = ADODB_FETCH_NUM; - $this->Move($offset); - $this->fetchMode = $savem; - - if ($this->fetchMode & ADODB_FETCH_ASSOC) { - $this->fields = $this->GetRowAssoc(ADODB_ASSOC_CASE); - } - - $results = array(); - $cnt = 0; - while (!$this->EOF && $nrows != $cnt) { - $results[$cnt++] = $this->fields; - $this->MoveNext(); - } - - return $results; - } - - - function MoveNext() - { - if ($this->_numOfRows != 0 && !$this->EOF) { - $this->_currentRow++; - - $this->fields = @db2_fetch_array($this->_queryID); - if ($this->fields) { - if ($this->fetchMode & ADODB_FETCH_ASSOC) { - $this->fields = $this->GetRowAssoc(ADODB_ASSOC_CASE); - } - return true; - } - } - $this->fields = false; - $this->EOF = true; - return false; - } - - function _fetch() - { - - $this->fields = db2_fetch_array($this->_queryID); - if ($this->fields) { - if ($this->fetchMode & ADODB_FETCH_ASSOC) { - $this->fields = $this->GetRowAssoc(ADODB_ASSOC_CASE); - } - return true; - } - $this->fields = false; - return false; - } - - function _close() - { - return @db2_free_result($this->_queryID); - } - -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-informix.inc.php b/src/adodb5/drivers/adodb-informix.inc.php deleted file mode 100644 index e46d6eb5..00000000 --- a/src/adodb5/drivers/adodb-informix.inc.php +++ /dev/null @@ -1,40 +0,0 @@ -ADORecordset_informix72($id,$mode); - } -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-informix72.inc.php b/src/adodb5/drivers/adodb-informix72.inc.php deleted file mode 100644 index 56662135..00000000 --- a/src/adodb5/drivers/adodb-informix72.inc.php +++ /dev/null @@ -1,475 +0,0 @@ - - -*/ - -// security - hide paths -if (!defined('ADODB_DIR')) die(); - -if (!defined('IFX_SCROLL')) define('IFX_SCROLL',1); - -class ADODB_informix72 extends ADOConnection { - var $databaseType = "informix72"; - var $dataProvider = "informix"; - var $replaceQuote = "''"; // string to use to replace quotes - var $fmtDate = "'Y-m-d'"; - var $fmtTimeStamp = "'Y-m-d H:i:s'"; - var $hasInsertID = true; - var $hasAffectedRows = true; - var $substr = 'substr'; - var $metaTablesSQL="select tabname,tabtype from systables where tabtype in ('T','V') and owner!='informix'"; //Don't get informix tables and pseudo-tables - - - var $metaColumnsSQL = - "select c.colname, c.coltype, c.collength, d.default,c.colno - from syscolumns c, systables t,outer sysdefaults d - where c.tabid=t.tabid and d.tabid=t.tabid and d.colno=c.colno - and tabname='%s' order by c.colno"; - - var $metaPrimaryKeySQL = - "select part1,part2,part3,part4,part5,part6,part7,part8 from - systables t,sysconstraints s,sysindexes i where t.tabname='%s' - and s.tabid=t.tabid and s.constrtype='P' - and i.idxname=s.idxname"; - - var $concat_operator = '||'; - - var $lastQuery = false; - var $has_insertid = true; - - var $_autocommit = true; - var $_bindInputArray = true; // set to true if ADOConnection.Execute() permits binding of array parameters. - var $sysDate = 'TODAY'; - var $sysTimeStamp = 'CURRENT'; - var $cursorType = IFX_SCROLL; // IFX_SCROLL or IFX_HOLD or 0 - - function __construct() - { - // alternatively, use older method: - //putenv("DBDATE=Y4MD-"); - - // force ISO date format - putenv('GL_DATE=%Y-%m-%d'); - - if (function_exists('ifx_byteasvarchar')) { - ifx_byteasvarchar(1); // Mode "0" will return a blob id, and mode "1" will return a varchar with text content. - ifx_textasvarchar(1); // Mode "0" will return a blob id, and mode "1" will return a varchar with text content. - ifx_blobinfile_mode(0); // Mode "0" means save Byte-Blobs in memory, and mode "1" means save Byte-Blobs in a file. - } - } - - function ServerInfo() - { - if (isset($this->version)) return $this->version; - - $arr['description'] = $this->GetOne("select DBINFO('version','full') from systables where tabid = 1"); - $arr['version'] = $this->GetOne("select DBINFO('version','major') || DBINFO('version','minor') from systables where tabid = 1"); - $this->version = $arr; - return $arr; - } - - - - function _insertid() - { - $sqlca =ifx_getsqlca($this->lastQuery); - return @$sqlca["sqlerrd1"]; - } - - function _affectedrows() - { - if ($this->lastQuery) { - return @ifx_affected_rows ($this->lastQuery); - } - return 0; - } - - function BeginTrans() - { - if ($this->transOff) return true; - $this->transCnt += 1; - $this->Execute('BEGIN'); - $this->_autocommit = false; - return true; - } - - function CommitTrans($ok=true) - { - if (!$ok) return $this->RollbackTrans(); - if ($this->transOff) return true; - if ($this->transCnt) $this->transCnt -= 1; - $this->Execute('COMMIT'); - $this->_autocommit = true; - return true; - } - - function RollbackTrans() - { - if ($this->transOff) return true; - if ($this->transCnt) $this->transCnt -= 1; - $this->Execute('ROLLBACK'); - $this->_autocommit = true; - return true; - } - - function RowLock($tables,$where,$flds='1 as ignore') - { - if ($this->_autocommit) $this->BeginTrans(); - return $this->GetOne("select $flds from $tables where $where for update"); - } - - /* Returns: the last error message from previous database operation - Note: This function is NOT available for Microsoft SQL Server. */ - - function ErrorMsg() - { - if (!empty($this->_logsql)) return $this->_errorMsg; - $this->_errorMsg = ifx_errormsg(); - return $this->_errorMsg; - } - - function ErrorNo() - { - preg_match("/.*SQLCODE=([^\]]*)/",ifx_error(),$parse); - if (is_array($parse) && isset($parse[1])) return (int)$parse[1]; - return 0; - } - - - function MetaColumns($table, $normalize=true) - { - global $ADODB_FETCH_MODE; - - $false = false; - if (!empty($this->metaColumnsSQL)) { - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false); - $rs = $this->Execute(sprintf($this->metaColumnsSQL,$table)); - if (isset($savem)) $this->SetFetchMode($savem); - $ADODB_FETCH_MODE = $save; - if ($rs === false) return $false; - $rspkey = $this->Execute(sprintf($this->metaPrimaryKeySQL,$table)); //Added to get primary key colno items - - $retarr = array(); - while (!$rs->EOF) { //print_r($rs->fields); - $fld = new ADOFieldObject(); - $fld->name = $rs->fields[0]; -/* //!eos. - $rs->fields[1] is not the correct adodb type - $rs->fields[2] is not correct max_length, because can include not-null bit - - $fld->type = $rs->fields[1]; - $fld->primary_key=$rspkey->fields && array_search($rs->fields[4],$rspkey->fields); //Added to set primary key flag - $fld->max_length = $rs->fields[2];*/ - $pr=ifx_props($rs->fields[1],$rs->fields[2]); //!eos - $fld->type = $pr[0] ;//!eos - $fld->primary_key=$rspkey->fields && array_search($rs->fields[4],$rspkey->fields); - $fld->max_length = $pr[1]; //!eos - $fld->precision = $pr[2] ;//!eos - $fld->not_null = $pr[3]=="N"; //!eos - - if (trim($rs->fields[3]) != "AAAAAA 0") { - $fld->has_default = 1; - $fld->default_value = $rs->fields[3]; - } else { - $fld->has_default = 0; - } - - $retarr[strtolower($fld->name)] = $fld; - $rs->MoveNext(); - } - - $rs->Close(); - $rspkey->Close(); //!eos - return $retarr; - } - - return $false; - } - - function xMetaColumns($table) - { - return ADOConnection::MetaColumns($table,false); - } - - function MetaForeignKeys($table, $owner=false, $upper=false) //!Eos - { - $sql = " - select tr.tabname,updrule,delrule, - i.part1 o1,i2.part1 d1,i.part2 o2,i2.part2 d2,i.part3 o3,i2.part3 d3,i.part4 o4,i2.part4 d4, - i.part5 o5,i2.part5 d5,i.part6 o6,i2.part6 d6,i.part7 o7,i2.part7 d7,i.part8 o8,i2.part8 d8 - from systables t,sysconstraints s,sysindexes i, - sysreferences r,systables tr,sysconstraints s2,sysindexes i2 - where t.tabname='$table' - and s.tabid=t.tabid and s.constrtype='R' and r.constrid=s.constrid - and i.idxname=s.idxname and tr.tabid=r.ptabid - and s2.constrid=r.primary and i2.idxname=s2.idxname"; - - $rs = $this->Execute($sql); - if (!$rs || $rs->EOF) return false; - $arr = $rs->GetArray(); - $a = array(); - foreach($arr as $v) { - $coldest=$this->metaColumnNames($v["tabname"]); - $colorig=$this->metaColumnNames($table); - $colnames=array(); - for($i=1;$i<=8 && $v["o$i"] ;$i++) { - $colnames[]=$coldest[$v["d$i"]-1]."=".$colorig[$v["o$i"]-1]; - } - if($upper) - $a[strtoupper($v["tabname"])] = $colnames; - else - $a[$v["tabname"]] = $colnames; - } - return $a; - } - - function UpdateBlob($table, $column, $val, $where, $blobtype = 'BLOB') - { - $type = ($blobtype == 'TEXT') ? 1 : 0; - $blobid = ifx_create_blob($type,0,$val); - return $this->Execute("UPDATE $table SET $column=(?) WHERE $where",array($blobid)); - } - - function BlobDecode($blobid) - { - return function_exists('ifx_byteasvarchar') ? $blobid : @ifx_get_blob($blobid); - } - - // returns true or false - function _connect($argHostname, $argUsername, $argPassword, $argDatabasename) - { - if (!function_exists('ifx_connect')) return null; - - $dbs = $argDatabasename . "@" . $argHostname; - if ($argHostname) putenv("INFORMIXSERVER=$argHostname"); - putenv("INFORMIXSERVER=".trim($argHostname)); - $this->_connectionID = ifx_connect($dbs,$argUsername,$argPassword); - if ($this->_connectionID === false) return false; - #if ($argDatabasename) return $this->SelectDB($argDatabasename); - return true; - } - - // returns true or false - function _pconnect($argHostname, $argUsername, $argPassword, $argDatabasename) - { - if (!function_exists('ifx_connect')) return null; - - $dbs = $argDatabasename . "@" . $argHostname; - putenv("INFORMIXSERVER=".trim($argHostname)); - $this->_connectionID = ifx_pconnect($dbs,$argUsername,$argPassword); - if ($this->_connectionID === false) return false; - #if ($argDatabasename) return $this->SelectDB($argDatabasename); - return true; - } -/* - // ifx_do does not accept bind parameters - weird ??? - function Prepare($sql) - { - $stmt = ifx_prepare($sql); - if (!$stmt) return $sql; - else return array($sql,$stmt); - } -*/ - // returns query ID if successful, otherwise false - function _query($sql,$inputarr=false) - { - global $ADODB_COUNTRECS; - - // String parameters have to be converted using ifx_create_char - if ($inputarr) { - foreach($inputarr as $v) { - if (gettype($v) == 'string') { - $tab[] = ifx_create_char($v); - } - else { - $tab[] = $v; - } - } - } - - // In case of select statement, we use a scroll cursor in order - // to be able to call "move", or "movefirst" statements - if (!$ADODB_COUNTRECS && preg_match("/^\s*select/is", $sql)) { - if ($inputarr) { - $this->lastQuery = ifx_query($sql,$this->_connectionID, $this->cursorType, $tab); - } - else { - $this->lastQuery = ifx_query($sql,$this->_connectionID, $this->cursorType); - } - } - else { - if ($inputarr) { - $this->lastQuery = ifx_query($sql,$this->_connectionID, $tab); - } - else { - $this->lastQuery = ifx_query($sql,$this->_connectionID); - } - } - - // Following line have been commented because autocommit mode is - // not supported by informix SE 7.2 - - //if ($this->_autocommit) ifx_query('COMMIT',$this->_connectionID); - - return $this->lastQuery; - } - - // returns true or false - function _close() - { - $this->lastQuery = false; - return ifx_close($this->_connectionID); - } -} - - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordset_informix72 extends ADORecordSet { - - var $databaseType = "informix72"; - var $canSeek = true; - var $_fieldprops = false; - - function __construct($id,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - $this->fetchMode = $mode; - $this->ADORecordSet($id); - } - - - - /* Returns: an object containing field information. - Get column information in the Recordset object. fetchField() can be used in order to obtain information about - fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by - fetchField() is retrieved. */ - function FetchField($fieldOffset = -1) - { - if (empty($this->_fieldprops)) { - $fp = ifx_fieldproperties($this->_queryID); - foreach($fp as $k => $v) { - $o = new ADOFieldObject; - $o->name = $k; - $arr = explode(';',$v); //"SQLTYPE;length;precision;scale;ISNULLABLE" - $o->type = $arr[0]; - $o->max_length = $arr[1]; - $this->_fieldprops[] = $o; - $o->not_null = $arr[4]=="N"; - } - } - $ret = $this->_fieldprops[$fieldOffset]; - return $ret; - } - - function _initrs() - { - $this->_numOfRows = -1; // ifx_affected_rows not reliable, only returns estimate -- ($ADODB_COUNTRECS)? ifx_affected_rows($this->_queryID):-1; - $this->_numOfFields = ifx_num_fields($this->_queryID); - } - - function _seek($row) - { - return @ifx_fetch_row($this->_queryID, (int) $row); - } - - function MoveLast() - { - $this->fields = @ifx_fetch_row($this->_queryID, "LAST"); - if ($this->fields) $this->EOF = false; - $this->_currentRow = -1; - - if ($this->fetchMode == ADODB_FETCH_NUM) { - foreach($this->fields as $v) { - $arr[] = $v; - } - $this->fields = $arr; - } - - return true; - } - - function MoveFirst() - { - $this->fields = @ifx_fetch_row($this->_queryID, "FIRST"); - if ($this->fields) $this->EOF = false; - $this->_currentRow = 0; - - if ($this->fetchMode == ADODB_FETCH_NUM) { - foreach($this->fields as $v) { - $arr[] = $v; - } - $this->fields = $arr; - } - - return true; - } - - function _fetch($ignore_fields=false) - { - - $this->fields = @ifx_fetch_row($this->_queryID); - - if (!is_array($this->fields)) return false; - - if ($this->fetchMode == ADODB_FETCH_NUM) { - foreach($this->fields as $v) { - $arr[] = $v; - } - $this->fields = $arr; - } - return true; - } - - /* close() only needs to be called if you are worried about using too much memory while your script - is running. All associated result memory for the specified result identifier will automatically be freed. */ - function _close() - { - return ifx_free_result($this->_queryID); - } - -} -/** !Eos -* Auxiliar function to Parse coltype,collength. Used by Metacolumns -* return: array ($mtype,$length,$precision,$nullable) (similar to ifx_fieldpropierties) -*/ -function ifx_props($coltype,$collength){ - $itype=fmod($coltype+1,256); - $nullable=floor(($coltype+1) /256) ?"N":"Y"; - $mtype=substr(" CIIFFNNDN TBXCC ",$itype,1); - switch ($itype){ - case 2: - $length=4; - case 6: - case 9: - case 14: - $length=floor($collength/256); - $precision=fmod($collength,256); - break; - default: - $precision=0; - $length=$collength; - } - return array($mtype,$length,$precision,$nullable); -} - - -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-ldap.inc.php b/src/adodb5/drivers/adodb-ldap.inc.php deleted file mode 100644 index 76b34890..00000000 --- a/src/adodb5/drivers/adodb-ldap.inc.php +++ /dev/null @@ -1,423 +0,0 @@ -_connectionID = @ldap_connect($host); - } else { - $conn_info = array( $host,$this->port); - - if ( strstr( $host, ':' ) ) { - $conn_info = explode( ':', $host ); - } - - $this->_connectionID = @ldap_connect( $conn_info[0], $conn_info[1] ); - } - if (!$this->_connectionID) { - $e = 'Could not connect to ' . $conn_info[0]; - $this->_errorMsg = $e; - if ($this->debug) ADOConnection::outp($e); - return false; - } - if( count( $LDAP_CONNECT_OPTIONS ) > 0 ) { - $this->_inject_bind_options( $LDAP_CONNECT_OPTIONS ); - } - - if ($username) { - $bind = @ldap_bind( $this->_connectionID, $username, $password ); - } else { - $username = 'anonymous'; - $bind = @ldap_bind( $this->_connectionID ); - } - - if (!$bind) { - $e = sprintf($this->_bind_errmsg,ldap_error($this->_connectionID)); - $this->_errorMsg = $e; - if ($this->debug) ADOConnection::outp($e); - return false; - } - $this->_errorMsg = ''; - $this->database = $ldapbase; - return $this->_connectionID; - } - -/* - Valid Domain Values for LDAP Options: - - LDAP_OPT_DEREF (integer) - LDAP_OPT_SIZELIMIT (integer) - LDAP_OPT_TIMELIMIT (integer) - LDAP_OPT_PROTOCOL_VERSION (integer) - LDAP_OPT_ERROR_NUMBER (integer) - LDAP_OPT_REFERRALS (boolean) - LDAP_OPT_RESTART (boolean) - LDAP_OPT_HOST_NAME (string) - LDAP_OPT_ERROR_STRING (string) - LDAP_OPT_MATCHED_DN (string) - LDAP_OPT_SERVER_CONTROLS (array) - LDAP_OPT_CLIENT_CONTROLS (array) - - Make sure to set this BEFORE calling Connect() - - Example: - - $LDAP_CONNECT_OPTIONS = Array( - Array ( - "OPTION_NAME"=>LDAP_OPT_DEREF, - "OPTION_VALUE"=>2 - ), - Array ( - "OPTION_NAME"=>LDAP_OPT_SIZELIMIT, - "OPTION_VALUE"=>100 - ), - Array ( - "OPTION_NAME"=>LDAP_OPT_TIMELIMIT, - "OPTION_VALUE"=>30 - ), - Array ( - "OPTION_NAME"=>LDAP_OPT_PROTOCOL_VERSION, - "OPTION_VALUE"=>3 - ), - Array ( - "OPTION_NAME"=>LDAP_OPT_ERROR_NUMBER, - "OPTION_VALUE"=>13 - ), - Array ( - "OPTION_NAME"=>LDAP_OPT_REFERRALS, - "OPTION_VALUE"=>FALSE - ), - Array ( - "OPTION_NAME"=>LDAP_OPT_RESTART, - "OPTION_VALUE"=>FALSE - ) - ); -*/ - - function _inject_bind_options( $options ) { - foreach( $options as $option ) { - ldap_set_option( $this->_connectionID, $option["OPTION_NAME"], $option["OPTION_VALUE"] ) - or die( "Unable to set server option: " . $option["OPTION_NAME"] ); - } - } - - /* returns _queryID or false */ - function _query($sql,$inputarr=false) - { - $rs = @ldap_search( $this->_connectionID, $this->database, $sql ); - $this->_errorMsg = ($rs) ? '' : 'Search error on '.$sql.': '.ldap_error($this->_connectionID); - return $rs; - } - - function ErrorMsg() - { - return $this->_errorMsg; - } - - function ErrorNo() - { - return @ldap_errno($this->_connectionID); - } - - /* closes the LDAP connection */ - function _close() - { - @ldap_close( $this->_connectionID ); - $this->_connectionID = false; - } - - function SelectDB($db) { - $this->database = $db; - return true; - } // SelectDB - - function ServerInfo() - { - if( !empty( $this->version ) ) return $this->version; - $version = array(); - /* - Determines how aliases are handled during search. - LDAP_DEREF_NEVER (0x00) - LDAP_DEREF_SEARCHING (0x01) - LDAP_DEREF_FINDING (0x02) - LDAP_DEREF_ALWAYS (0x03) - The LDAP_DEREF_SEARCHING value means aliases are dereferenced during the search but - not when locating the base object of the search. The LDAP_DEREF_FINDING value means - aliases are dereferenced when locating the base object but not during the search. - Default: LDAP_DEREF_NEVER - */ - ldap_get_option( $this->_connectionID, LDAP_OPT_DEREF, $version['LDAP_OPT_DEREF'] ) ; - switch ( $version['LDAP_OPT_DEREF'] ) { - case 0: - $version['LDAP_OPT_DEREF'] = 'LDAP_DEREF_NEVER'; - case 1: - $version['LDAP_OPT_DEREF'] = 'LDAP_DEREF_SEARCHING'; - case 2: - $version['LDAP_OPT_DEREF'] = 'LDAP_DEREF_FINDING'; - case 3: - $version['LDAP_OPT_DEREF'] = 'LDAP_DEREF_ALWAYS'; - } - - /* - A limit on the number of entries to return from a search. - LDAP_NO_LIMIT (0) means no limit. - Default: LDAP_NO_LIMIT - */ - ldap_get_option( $this->_connectionID, LDAP_OPT_SIZELIMIT, $version['LDAP_OPT_SIZELIMIT'] ); - if ( $version['LDAP_OPT_SIZELIMIT'] == 0 ) { - $version['LDAP_OPT_SIZELIMIT'] = 'LDAP_NO_LIMIT'; - } - - /* - A limit on the number of seconds to spend on a search. - LDAP_NO_LIMIT (0) means no limit. - Default: LDAP_NO_LIMIT - */ - ldap_get_option( $this->_connectionID, LDAP_OPT_TIMELIMIT, $version['LDAP_OPT_TIMELIMIT'] ); - if ( $version['LDAP_OPT_TIMELIMIT'] == 0 ) { - $version['LDAP_OPT_TIMELIMIT'] = 'LDAP_NO_LIMIT'; - } - - /* - Determines whether the LDAP library automatically follows referrals returned by LDAP servers or not. - LDAP_OPT_ON - LDAP_OPT_OFF - Default: ON - */ - ldap_get_option( $this->_connectionID, LDAP_OPT_REFERRALS, $version['LDAP_OPT_REFERRALS'] ); - if ( $version['LDAP_OPT_REFERRALS'] == 0 ) { - $version['LDAP_OPT_REFERRALS'] = 'LDAP_OPT_OFF'; - } else { - $version['LDAP_OPT_REFERRALS'] = 'LDAP_OPT_ON'; - - } - /* - Determines whether LDAP I/O operations are automatically restarted if they abort prematurely. - LDAP_OPT_ON - LDAP_OPT_OFF - Default: OFF - */ - ldap_get_option( $this->_connectionID, LDAP_OPT_RESTART, $version['LDAP_OPT_RESTART'] ); - if ( $version['LDAP_OPT_RESTART'] == 0 ) { - $version['LDAP_OPT_RESTART'] = 'LDAP_OPT_OFF'; - } else { - $version['LDAP_OPT_RESTART'] = 'LDAP_OPT_ON'; - - } - /* - This option indicates the version of the LDAP protocol used when communicating with the primary LDAP server. - LDAP_VERSION2 (2) - LDAP_VERSION3 (3) - Default: LDAP_VERSION2 (2) - */ - ldap_get_option( $this->_connectionID, LDAP_OPT_PROTOCOL_VERSION, $version['LDAP_OPT_PROTOCOL_VERSION'] ); - if ( $version['LDAP_OPT_PROTOCOL_VERSION'] == 2 ) { - $version['LDAP_OPT_PROTOCOL_VERSION'] = 'LDAP_VERSION2'; - } else { - $version['LDAP_OPT_PROTOCOL_VERSION'] = 'LDAP_VERSION3'; - - } - /* The host name (or list of hosts) for the primary LDAP server. */ - ldap_get_option( $this->_connectionID, LDAP_OPT_HOST_NAME, $version['LDAP_OPT_HOST_NAME'] ); - ldap_get_option( $this->_connectionID, LDAP_OPT_ERROR_NUMBER, $version['LDAP_OPT_ERROR_NUMBER'] ); - ldap_get_option( $this->_connectionID, LDAP_OPT_ERROR_STRING, $version['LDAP_OPT_ERROR_STRING'] ); - ldap_get_option( $this->_connectionID, LDAP_OPT_MATCHED_DN, $version['LDAP_OPT_MATCHED_DN'] ); - - return $this->version = $version; - - } -} - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordSet_ldap extends ADORecordSet{ - - var $databaseType = "ldap"; - var $canSeek = false; - var $_entryID; /* keeps track of the entry resource identifier */ - - function __construct($queryID,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - switch ($mode) - { - case ADODB_FETCH_NUM: - $this->fetchMode = LDAP_NUM; - break; - case ADODB_FETCH_ASSOC: - $this->fetchMode = LDAP_ASSOC; - break; - case ADODB_FETCH_DEFAULT: - case ADODB_FETCH_BOTH: - default: - $this->fetchMode = LDAP_BOTH; - break; - } - - $this->ADORecordSet($queryID); - } - - function _initrs() - { - /* - This could be teaked to respect the $COUNTRECS directive from ADODB - It's currently being used in the _fetch() function and the - GetAssoc() function - */ - $this->_numOfRows = ldap_count_entries( $this->connection->_connectionID, $this->_queryID ); - - } - - /* - Return whole recordset as a multi-dimensional associative array - */ - function GetAssoc($force_array = false, $first2cols = false) - { - $records = $this->_numOfRows; - $results = array(); - for ( $i=0; $i < $records; $i++ ) { - foreach ( $this->fields as $k=>$v ) { - if ( is_array( $v ) ) { - if ( $v['count'] == 1 ) { - $results[$i][$k] = $v[0]; - } else { - array_shift( $v ); - $results[$i][$k] = $v; - } - } - } - } - - return $results; - } - - function GetRowAssoc() - { - $results = array(); - foreach ( $this->fields as $k=>$v ) { - if ( is_array( $v ) ) { - if ( $v['count'] == 1 ) { - $results[$k] = $v[0]; - } else { - array_shift( $v ); - $results[$k] = $v; - } - } - } - - return $results; - } - - function GetRowNums() - { - $results = array(); - foreach ( $this->fields as $k=>$v ) { - static $i = 0; - if (is_array( $v )) { - if ( $v['count'] == 1 ) { - $results[$i] = $v[0]; - } else { - array_shift( $v ); - $results[$i] = $v; - } - $i++; - } - } - return $results; - } - - function _fetch() - { - if ( $this->_currentRow >= $this->_numOfRows && $this->_numOfRows >= 0 ) - return false; - - if ( $this->_currentRow == 0 ) { - $this->_entryID = ldap_first_entry( $this->connection->_connectionID, $this->_queryID ); - } else { - $this->_entryID = ldap_next_entry( $this->connection->_connectionID, $this->_entryID ); - } - - $this->fields = ldap_get_attributes( $this->connection->_connectionID, $this->_entryID ); - $this->_numOfFields = $this->fields['count']; - switch ( $this->fetchMode ) { - - case LDAP_ASSOC: - $this->fields = $this->GetRowAssoc(); - break; - - case LDAP_NUM: - $this->fields = array_merge($this->GetRowNums(),$this->GetRowAssoc()); - break; - - case LDAP_BOTH: - default: - $this->fields = $this->GetRowNums(); - break; - } - return ( is_array( $this->fields ) ); - } - - function _close() { - @ldap_free_result( $this->_queryID ); - $this->_queryID = false; - } - -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-mysqli.inc.php b/src/adodb5/drivers/adodb-mysqli.inc.php index 22ebc5a7..687fb49e 100644 --- a/src/adodb5/drivers/adodb-mysqli.inc.php +++ b/src/adodb5/drivers/adodb-mysqli.inc.php @@ -39,7 +39,7 @@ class ADODB_mysqli extends ADOConnection { - var $databaseType = 'mysqli'; + var $databaseType = \mysqli::class; var $dataProvider = 'native'; var $hasInsertID = true; var $hasAffectedRows = true; @@ -99,7 +99,7 @@ function _connect( $persist = false ) { - if (!extension_loaded("mysqli")) + if (!extension_loaded(\mysqli::class)) { return null; } @@ -210,6 +210,7 @@ function GetOne($sql, $inputarr = false) function ServerInfo() { + $arr = []; $arr['description'] = $this->GetOne("select version()"); $arr['version'] = ADOConnection::_findvers($arr['description']); @@ -728,7 +729,7 @@ function MetaForeignKeys($table, $owner = false, $upper = false, $associative = $a_create_table = $this->getRow(sprintf('SHOW CREATE TABLE %s', $table)); if ($associative) { - $create_sql = isset($a_create_table["Create Table"]) ? $a_create_table["Create Table"] : $a_create_table["Create View"]; + $create_sql = $a_create_table["Create Table"] ?? $a_create_table["Create View"]; } else { @@ -742,7 +743,7 @@ function MetaForeignKeys($table, $owner = false, $upper = false, $associative = return false; } $foreign_keys = array(); - $num_keys = count($matches[0]); + $num_keys = is_countable($matches[0]) ? count($matches[0]) : 0; for ($i = 0; $i < $num_keys; $i++) { $my_field = explode('`, `', $matches[1][$i]); @@ -994,7 +995,7 @@ function _query($sql, $inputarr) { $rs = ($ADODB_COUNTRECS) ? @mysqli_store_result($this->_connectionID) : @mysqli_use_result($this->_connectionID); - return $rs ? $rs : true; // mysqli_more_results( $this->_connectionID ) + return $rs ?: true; // mysqli_more_results( $this->_connectionID ) } } else @@ -1063,7 +1064,7 @@ function CharMax() */ function TextMax() { - return 4294967295; + return 4_294_967_295; } @@ -1128,7 +1129,7 @@ function SetCharSet($charset_name) class ADORecordSet_mysqli extends ADORecordSet { - var $databaseType = "mysqli"; + var $databaseType = \mysqli::class; var $canSeek = true; function __construct($queryID, $mode = false) @@ -1468,7 +1469,7 @@ class ADORecordSet_array_mysqli extends ADORecordSet_array function __construct($id = -1, $mode = false) { - $this->ADORecordSet_array($id, $mode); + $this->ADORecordSet_array($id); } function MetaType($t, $len = -1, $fieldobj = false) diff --git a/src/adodb5/drivers/adodb-netezza.inc.php b/src/adodb5/drivers/adodb-netezza.inc.php deleted file mode 100644 index 0d89b6cc..00000000 --- a/src/adodb5/drivers/adodb-netezza.inc.php +++ /dev/null @@ -1,170 +0,0 @@ - 0 ORDER BY attnum"; - var $metaColumnsSQL1 = "SELECT attname, atttype FROM _v_relation_column_def WHERE name = '%s' AND attnum > 0 ORDER BY attnum"; - // netezza doesn't have keys. it does have distributions, so maybe this is - // something that can be pulled from the system tables - var $metaKeySQL = ""; - var $hasAffectedRows = true; - var $hasLimit = true; - var $true = 't'; // string that represents TRUE for a database - var $false = 'f'; // string that represents FALSE for a database - var $fmtDate = "'Y-m-d'"; // used by DBDate() as the default date format used by the database - var $fmtTimeStamp = "'Y-m-d G:i:s'"; // used by DBTimeStamp as the default timestamp fmt. - var $ansiOuter = true; - var $autoRollback = true; // apparently pgsql does not autorollback properly before 4.3.4 - // http://bugs.php.net/bug.php?id=25404 - - - function __construct() - { - - } - - function MetaColumns($table,$upper=true) - { - - // Changed this function to support Netezza which has no concept of keys - // could posisbly work on other things from the system table later. - - global $ADODB_FETCH_MODE; - - $table = strtolower($table); - - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false); - - $rs = $this->Execute(sprintf($this->metaColumnsSQL,$table,$table)); - if (isset($savem)) $this->SetFetchMode($savem); - $ADODB_FETCH_MODE = $save; - - if ($rs === false) return false; - - $retarr = array(); - while (!$rs->EOF) { - $fld = new ADOFieldObject(); - $fld->name = $rs->fields[0]; - - // since we're returning type and length as one string, - // split them out here. - - if ($first = strstr($rs->fields[1], "(")) { - $fld->max_length = trim($first, "()"); - } else { - $fld->max_length = -1; - } - - if ($first = strpos($rs->fields[1], "(")) { - $fld->type = substr($rs->fields[1], 0, $first); - } else { - $fld->type = $rs->fields[1]; - } - - switch ($fld->type) { - case "byteint": - case "boolean": - $fld->max_length = 1; - break; - case "smallint": - $fld->max_length = 2; - break; - case "integer": - case "numeric": - case "date": - $fld->max_length = 4; - break; - case "bigint": - case "time": - case "timestamp": - $fld->max_length = 8; - break; - case "timetz": - case "time with time zone": - $fld->max_length = 12; - break; - } - - if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld; - else $retarr[($upper) ? strtoupper($fld->name) : $fld->name] = $fld; - - $rs->MoveNext(); - } - $rs->Close(); - return $retarr; - - } - - -} - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordSet_netezza extends ADORecordSet_postgres64 -{ - var $databaseType = "netezza"; - var $canSeek = true; - - function __construct($queryID,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - switch ($mode) - { - case ADODB_FETCH_NUM: $this->fetchMode = PGSQL_NUM; break; - case ADODB_FETCH_ASSOC:$this->fetchMode = PGSQL_ASSOC; break; - - case ADODB_FETCH_DEFAULT: - case ADODB_FETCH_BOTH: - default: $this->fetchMode = PGSQL_BOTH; break; - } - $this->adodbFetchMode = $mode; - $this->ADORecordSet($queryID); - } - - // _initrs modified to disable blob handling - function _initrs() - { - global $ADODB_COUNTRECS; - $this->_numOfRows = ($ADODB_COUNTRECS)? @pg_numrows($this->_queryID):-1; - $this->_numOfFields = @pg_numfields($this->_queryID); - } - -} -?> diff --git a/src/adodb5/drivers/adodb-oci8.inc.php b/src/adodb5/drivers/adodb-oci8.inc.php deleted file mode 100644 index 8cca5539..00000000 --- a/src/adodb5/drivers/adodb-oci8.inc.php +++ /dev/null @@ -1,1612 +0,0 @@ - - - 13 Nov 2000 jlim - removed all ora_* references. -*/ - -// security - hide paths -if (!defined('ADODB_DIR')) die(); - -/* -NLS_Date_Format -Allows you to use a date format other than the Oracle Lite default. When a literal -character string appears where a date value is expected, the Oracle Lite database -tests the string to see if it matches the formats of Oracle, SQL-92, or the value -specified for this parameter in the POLITE.INI file. Setting this parameter also -defines the default format used in the TO_CHAR or TO_DATE functions when no -other format string is supplied. - -For Oracle the default is dd-mon-yy or dd-mon-yyyy, and for SQL-92 the default is -yy-mm-dd or yyyy-mm-dd. - -Using 'RR' in the format forces two-digit years less than or equal to 49 to be -interpreted as years in the 21st century (2000�2049), and years over 50 as years in -the 20th century (1950�1999). Setting the RR format as the default for all two-digit -year entries allows you to become year-2000 compliant. For example: -NLS_DATE_FORMAT='RR-MM-DD' - -You can also modify the date format using the ALTER SESSION command. -*/ - -# define the LOB descriptor type for the given type -# returns false if no LOB descriptor -function oci_lob_desc($type) { - switch ($type) { - case OCI_B_BFILE: $result = OCI_D_FILE; break; - case OCI_B_CFILEE: $result = OCI_D_FILE; break; - case OCI_B_CLOB: $result = OCI_D_LOB; break; - case OCI_B_BLOB: $result = OCI_D_LOB; break; - case OCI_B_ROWID: $result = OCI_D_ROWID; break; - default: $result = false; break; - } - return $result; -} - -class ADODB_oci8 extends ADOConnection { - var $databaseType = 'oci8'; - var $dataProvider = 'oci8'; - var $replaceQuote = "''"; // string to use to replace quotes - var $concat_operator='||'; - var $sysDate = "TRUNC(SYSDATE)"; - var $sysTimeStamp = 'SYSDATE'; // requires oracle 9 or later, otherwise use SYSDATE - var $metaDatabasesSQL = "SELECT USERNAME FROM ALL_USERS WHERE USERNAME NOT IN ('SYS','SYSTEM','DBSNMP','OUTLN') ORDER BY 1"; - var $_stmt; - var $_commit = OCI_COMMIT_ON_SUCCESS; - var $_initdate = true; // init date to YYYY-MM-DD - var $metaTablesSQL = "select table_name,table_type from cat where table_type in ('TABLE','VIEW') and table_name not like 'BIN\$%'"; // bin$ tables are recycle bin tables - var $metaColumnsSQL = "select cname,coltype,width, SCALE, PRECISION, NULLS, DEFAULTVAL from col where tname='%s' order by colno"; //changed by smondino@users.sourceforge. net - var $_bindInputArray = true; - var $hasGenID = true; - var $_genIDSQL = "SELECT (%s.nextval) FROM DUAL"; - var $_genSeqSQL = "CREATE SEQUENCE %s START WITH %s"; - var $_dropSeqSQL = "DROP SEQUENCE %s"; - var $hasAffectedRows = true; - var $random = "abs(mod(DBMS_RANDOM.RANDOM,10000001)/10000000)"; - var $noNullStrings = false; - var $connectSID = false; - var $_bind = false; - var $_nestedSQL = true; - var $_hasOCIFetchStatement = false; - var $_getarray = false; // currently not working - var $leftOuter = ''; // oracle wierdness, $col = $value (+) for LEFT OUTER, $col (+)= $value for RIGHT OUTER - var $session_sharing_force_blob = false; // alter session on updateblob if set to true - var $firstrows = true; // enable first rows optimization on SelectLimit() - var $selectOffsetAlg1 = 1000; // when to use 1st algorithm of selectlimit. - var $NLS_DATE_FORMAT = 'YYYY-MM-DD'; // To include time, use 'RRRR-MM-DD HH24:MI:SS' - var $dateformat = 'YYYY-MM-DD'; // DBDate format - var $useDBDateFormatForTextInput=false; - var $datetime = false; // MetaType('DATE') returns 'D' (datetime==false) or 'T' (datetime == true) - var $_refLOBs = array(); - - // var $ansiOuter = true; // if oracle9 - - function __construct() - { - $this->_hasOCIFetchStatement = ADODB_PHPVER >= 0x4200; - if (defined('ADODB_EXTENSION')) $this->rsPrefix .= 'ext_'; - } - - /* function MetaColumns($table, $normalize=true) added by smondino@users.sourceforge.net*/ - function MetaColumns($table, $normalize=true) - { - global $ADODB_FETCH_MODE; - - $false = false; - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false); - - $rs = $this->Execute(sprintf($this->metaColumnsSQL,strtoupper($table))); - - if (isset($savem)) $this->SetFetchMode($savem); - $ADODB_FETCH_MODE = $save; - if (!$rs) { - return $false; - } - $retarr = array(); - while (!$rs->EOF) { //print_r($rs->fields); - $fld = new ADOFieldObject(); - $fld->name = $rs->fields[0]; - $fld->type = $rs->fields[1]; - $fld->max_length = $rs->fields[2]; - $fld->scale = $rs->fields[3]; - if ($rs->fields[1] == 'NUMBER') { - if ($rs->fields[3] == 0) $fld->type = 'INT'; - $fld->max_length = $rs->fields[4]; - } - $fld->not_null = (strncmp($rs->fields[5], 'NOT',3) === 0); - $fld->binary = (strpos($fld->type,'BLOB') !== false); - $fld->default_value = $rs->fields[6]; - - if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld; - else $retarr[strtoupper($fld->name)] = $fld; - $rs->MoveNext(); - } - $rs->Close(); - if (empty($retarr)) - return $false; - else - return $retarr; - } - - function Time() - { - $rs = $this->Execute("select TO_CHAR($this->sysTimeStamp,'YYYY-MM-DD HH24:MI:SS') from dual"); - if ($rs && !$rs->EOF) return $this->UnixTimeStamp(reset($rs->fields)); - - return false; - } - -/* - - Multiple modes of connection are supported: - - a. Local Database - $conn->Connect(false,'scott','tiger'); - - b. From tnsnames.ora - $conn->Connect(false,'scott','tiger',$tnsname); - $conn->Connect($tnsname,'scott','tiger'); - - c. Server + service name - $conn->Connect($serveraddress,'scott,'tiger',$service_name); - - d. Server + SID - $conn->connectSID = true; - $conn->Connect($serveraddress,'scott,'tiger',$SID); - - -Example TNSName: ---------------- -NATSOFT.DOMAIN = - (DESCRIPTION = - (ADDRESS_LIST = - (ADDRESS = (PROTOCOL = TCP)(HOST = kermit)(PORT = 1523)) - ) - (CONNECT_DATA = - (SERVICE_NAME = natsoft.domain) - ) - ) - - There are 3 connection modes, 0 = non-persistent, 1 = persistent, 2 = force new connection - -*/ - function _connect($argHostname, $argUsername, $argPassword, $argDatabasename,$mode=0) - { - if (!function_exists('OCIPLogon')) return null; - #adodb_backtrace(); - - $this->_errorMsg = false; - $this->_errorCode = false; - - if($argHostname) { // added by Jorma Tuomainen - if (empty($argDatabasename)) $argDatabasename = $argHostname; - else { - if(strpos($argHostname,":")) { - $argHostinfo=explode(":",$argHostname); - $argHostname=$argHostinfo[0]; - $argHostport=$argHostinfo[1]; - } else { - $argHostport = empty($this->port)? "1521" : $this->port; - } - - if (strncasecmp($argDatabasename,'SID=',4) == 0) { - $argDatabasename = substr($argDatabasename,4); - $this->connectSID = true; - } - - if ($this->connectSID) { - $argDatabasename="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=".$argHostname - .")(PORT=$argHostport))(CONNECT_DATA=(SID=$argDatabasename)))"; - } else - $argDatabasename="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=".$argHostname - .")(PORT=$argHostport))(CONNECT_DATA=(SERVICE_NAME=$argDatabasename)))"; - } - } - - //if ($argHostname) print "

Connect: 1st argument should be left blank for $this->databaseType

"; - if ($mode==1) { - $this->_connectionID = ($this->charSet) ? - oci_pconnect($argUsername,$argPassword, $argDatabasename,$this->charSet) - : - oci_pconnect($argUsername,$argPassword, $argDatabasename) - ; - if ($this->_connectionID && $this->autoRollback) oci_rollback($this->_connectionID); - } else if ($mode==2) { - $this->_connectionID = ($this->charSet) ? - oci_new_connect($argUsername,$argPassword, $argDatabasename,$this->charSet) - : - oci_new_connect($argUsername,$argPassword, $argDatabasename); - - } else { - $this->_connectionID = ($this->charSet) ? - oci_connect($argUsername,$argPassword, $argDatabasename,$this->charSet) - : - oci_connect($argUsername,$argPassword, $argDatabasename); - } - if (!$this->_connectionID) return false; - if ($this->_initdate) { - $this->Execute("ALTER SESSION SET NLS_DATE_FORMAT='".$this->NLS_DATE_FORMAT."'"); - } - - // looks like: - // Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production With the Partitioning option JServer Release 8.1.7.0.0 - Production - // $vers = OCIServerVersion($this->_connectionID); - // if (strpos($vers,'8i') !== false) $this->ansiOuter = true; - return true; - } - - function ServerInfo() - { - $arr['compat'] = $this->GetOne('select value from sys.database_compatible_level'); - $arr['description'] = @oci_server_version($this->_connectionID); - $arr['version'] = ADOConnection::_findvers($arr['description']); - return $arr; - } - // returns true or false - function _pconnect($argHostname, $argUsername, $argPassword, $argDatabasename) - { - return $this->_connect($argHostname, $argUsername, $argPassword, $argDatabasename,1); - } - - // returns true or false - function _nconnect($argHostname, $argUsername, $argPassword, $argDatabasename) - { - return $this->_connect($argHostname, $argUsername, $argPassword, $argDatabasename,2); - } - - function _affectedrows() - { - if (is_resource($this->_stmt)) return @oci_num_rows($this->_stmt); - return 0; - } - - function IfNull( $field, $ifNull ) - { - return " NVL($field, $ifNull) "; // if Oracle - } - - // format and return date string in database date format - function DBDate($d,$isfld=false) - { - if (empty($d) && $d !== 0) return 'null'; - if ($isfld) return 'TO_DATE('.$d.",'".$this->dateformat."')"; - - if (is_string($d)) $d = ADORecordSet::UnixDate($d); - - if (is_object($d)) $ds = $d->format($this->fmtDate); - else $ds = adodb_date($this->fmtDate,$d); - - return "TO_DATE(".$ds.",'".$this->dateformat."')"; - } - - function BindDate($d) - { - $d = ADOConnection::DBDate($d); - if (strncmp($d,"'",1)) return $d; - - return substr($d,1,strlen($d)-2); - } - - function BindTimeStamp($ts) - { - if (empty($ts) && $ts !== 0) return 'null'; - if (is_string($ts)) $ts = ADORecordSet::UnixTimeStamp($ts); - - if (is_object($ts)) $tss = $ts->format("'Y-m-d H:i:s'"); - else $tss = adodb_date("'Y-m-d H:i:s'",$ts); - - return $tss; - } - - // format and return date string in database timestamp format - function DBTimeStamp($ts,$isfld=false) - { - if (empty($ts) && $ts !== 0) return 'null'; - if ($isfld) return 'TO_DATE(substr('.$ts.",1,19),'RRRR-MM-DD, HH24:MI:SS')"; - if (is_string($ts)) $ts = ADORecordSet::UnixTimeStamp($ts); - - if (is_object($ts)) $tss = $ts->format("'Y-m-d H:i:s'"); - else $tss = adodb_date("'Y-m-d H:i:s'",$ts); - - return 'TO_DATE('.$tss.",'RRRR-MM-DD, HH24:MI:SS')"; - } - - function RowLock($tables,$where,$flds='1 as ignore') - { - if ($this->autoCommit) $this->BeginTrans(); - return $this->GetOne("select $flds from $tables where $where for update"); - } - - function MetaTables($ttype=false,$showSchema=false,$mask=false) - { - if ($mask) { - $save = $this->metaTablesSQL; - $mask = $this->qstr(strtoupper($mask)); - $this->metaTablesSQL .= " AND upper(table_name) like $mask"; - } - $ret = ADOConnection::MetaTables($ttype,$showSchema); - - if ($mask) { - $this->metaTablesSQL = $save; - } - return $ret; - } - - // Mark Newnham - function MetaIndexes ($table, $primary = FALSE, $owner=false) - { - // save old fetch mode - global $ADODB_FETCH_MODE; - - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - - if ($this->fetchMode !== FALSE) { - $savem = $this->SetFetchMode(FALSE); - } - - // get index details - $table = strtoupper($table); - - // get Primary index - $primary_key = ''; - - $false = false; - $rs = $this->Execute(sprintf("SELECT * FROM ALL_CONSTRAINTS WHERE UPPER(TABLE_NAME)='%s' AND CONSTRAINT_TYPE='P'",$table)); - if ($row = $rs->FetchRow()) - $primary_key = $row[1]; //constraint_name - - if ($primary==TRUE && $primary_key=='') { - if (isset($savem)) - $this->SetFetchMode($savem); - $ADODB_FETCH_MODE = $save; - return $false; //There is no primary key - } - - $rs = $this->Execute(sprintf("SELECT ALL_INDEXES.INDEX_NAME, ALL_INDEXES.UNIQUENESS, ALL_IND_COLUMNS.COLUMN_POSITION, ALL_IND_COLUMNS.COLUMN_NAME FROM ALL_INDEXES,ALL_IND_COLUMNS WHERE UPPER(ALL_INDEXES.TABLE_NAME)='%s' AND ALL_IND_COLUMNS.INDEX_NAME=ALL_INDEXES.INDEX_NAME",$table)); - - - if (!is_object($rs)) { - if (isset($savem)) - $this->SetFetchMode($savem); - $ADODB_FETCH_MODE = $save; - return $false; - } - - $indexes = array (); - // parse index data into array - - while ($row = $rs->FetchRow()) { - if ($primary && $row[0] != $primary_key) continue; - if (!isset($indexes[$row[0]])) { - $indexes[$row[0]] = array( - 'unique' => ($row[1] == 'UNIQUE'), - 'columns' => array() - ); - } - $indexes[$row[0]]['columns'][$row[2] - 1] = $row[3]; - } - - // sort columns by order in the index - foreach ( array_keys ($indexes) as $index ) { - ksort ($indexes[$index]['columns']); - } - - if (isset($savem)) { - $this->SetFetchMode($savem); - $ADODB_FETCH_MODE = $save; - } - return $indexes; - } - - function BeginTrans() - { - if ($this->transOff) return true; - $this->transCnt += 1; - $this->autoCommit = false; - $this->_commit = OCI_DEFAULT; - - if ($this->_transmode) $ok = $this->Execute("SET TRANSACTION ".$this->_transmode); - else $ok = true; - - return $ok ? true : false; - } - - function CommitTrans($ok=true) - { - if ($this->transOff) return true; - if (!$ok) return $this->RollbackTrans(); - - if ($this->transCnt) $this->transCnt -= 1; - $ret = oci_commit($this->_connectionID); - $this->_commit = OCI_COMMIT_ON_SUCCESS; - $this->autoCommit = true; - return $ret; - } - - function RollbackTrans() - { - if ($this->transOff) return true; - if ($this->transCnt) $this->transCnt -= 1; - $ret = oci_rollback($this->_connectionID); - $this->_commit = OCI_COMMIT_ON_SUCCESS; - $this->autoCommit = true; - return $ret; - } - - - function SelectDB($dbName) - { - return false; - } - - function ErrorMsg() - { - if ($this->_errorMsg !== false) return $this->_errorMsg; - - if (is_resource($this->_stmt)) $arr = @oci_error($this->_stmt); - if (empty($arr)) { - if (is_resource($this->_connectionID)) $arr = @oci_error($this->_connectionID); - else $arr = @oci_error(); - if ($arr === false) return ''; - } - $this->_errorMsg = $arr['message']; - $this->_errorCode = $arr['code']; - return $this->_errorMsg; - } - - function ErrorNo() - { - if ($this->_errorCode !== false) return $this->_errorCode; - - if (is_resource($this->_stmt)) $arr = @oci_error($this->_stmt); - if (empty($arr)) { - $arr = @oci_error($this->_connectionID); - if ($arr == false) $arr = @oci_error(); - if ($arr == false) return ''; - } - - $this->_errorMsg = $arr['message']; - $this->_errorCode = $arr['code']; - - return $arr['code']; - } - - // Format date column in sql string given an input format that understands Y M D - function SQLDate($fmt, $col=false) - { - if (!$col) $col = $this->sysTimeStamp; - $s = 'TO_CHAR('.$col.",'"; - - $len = strlen($fmt); - for ($i=0; $i < $len; $i++) { - $ch = $fmt[$i]; - switch($ch) { - case 'Y': - case 'y': - $s .= 'YYYY'; - break; - case 'Q': - case 'q': - $s .= 'Q'; - break; - - case 'M': - $s .= 'Mon'; - break; - - case 'm': - $s .= 'MM'; - break; - case 'D': - case 'd': - $s .= 'DD'; - break; - - case 'H': - $s.= 'HH24'; - break; - - case 'h': - $s .= 'HH'; - break; - - case 'i': - $s .= 'MI'; - break; - - case 's': - $s .= 'SS'; - break; - - case 'a': - case 'A': - $s .= 'AM'; - break; - - case 'w': - $s .= 'D'; - break; - - case 'l': - $s .= 'DAY'; - break; - - case 'W': - $s .= 'WW'; - break; - - default: - // handle escape characters... - if ($ch == '\\') { - $i++; - $ch = substr($fmt,$i,1); - } - if (strpos('-/.:;, ',$ch) !== false) $s .= $ch; - else $s .= '"'.$ch.'"'; - - } - } - return $s. "')"; - } - - function GetRandRow($sql, $arr = false) - { - $sql = "SELECT * FROM ($sql ORDER BY dbms_random.value) WHERE rownum = 1"; - - return $this->GetRow($sql,$arr); - } - - /* - This algorithm makes use of - - a. FIRST_ROWS hint - The FIRST_ROWS hint explicitly chooses the approach to optimize response time, - that is, minimum resource usage to return the first row. Results will be returned - as soon as they are identified. - - b. Uses rownum tricks to obtain only the required rows from a given offset. - As this uses complicated sql statements, we only use this if the $offset >= 100. - This idea by Tomas V V Cox. - - This implementation does not appear to work with oracle 8.0.5 or earlier. Comment - out this function then, and the slower SelectLimit() in the base class will be used. - */ - function SelectLimit($sql,$nrows=-1,$offset=-1, $inputarr=false,$secs2cache=0) - { - // seems that oracle only supports 1 hint comment in 8i - if ($this->firstrows) { - if (strpos($sql,'/*+') !== false) - $sql = str_replace('/*+ ','/*+FIRST_ROWS ',$sql); - else - $sql = preg_replace('/^[ \t\n]*select/i','SELECT /*+FIRST_ROWS*/',$sql); - } - - if ($offset == -1 || ($offset < $this->selectOffsetAlg1 && 0 < $nrows && $nrows < 1000)) { - if ($nrows > 0) { - if ($offset > 0) $nrows += $offset; - //$inputarr['adodb_rownum'] = $nrows; - if ($this->databaseType == 'oci8po') { - $sql = "select * from (".$sql.") where rownum <= ?"; - } else { - $sql = "select * from (".$sql.") where rownum <= :adodb_offset"; - } - $inputarr['adodb_offset'] = $nrows; - $nrows = -1; - } - // note that $nrows = 0 still has to work ==> no rows returned - - $rs = ADOConnection::SelectLimit($sql,$nrows,$offset,$inputarr,$secs2cache); - return $rs; - - } else { - // Algorithm by Tomas V V Cox, from PEAR DB oci8.php - - // Let Oracle return the name of the columns - $q_fields = "SELECT * FROM (".$sql.") WHERE NULL = NULL"; - - $false = false; - if (! $stmt_arr = $this->Prepare($q_fields)) { - return $false; - } - $stmt = $stmt_arr[1]; - - if (is_array($inputarr)) { - foreach($inputarr as $k => $v) { - if (is_array($v)) { - if (sizeof($v) == 2) // suggested by g.giunta@libero. - oci_bind_by_name($stmt,":$k",$inputarr[$k][0],$v[1]); - else - oci_bind_by_name($stmt,":$k",$inputarr[$k][0],$v[1],$v[2]); - } else { - $len = -1; - if ($v === ' ') $len = 1; - if (isset($bindarr)) { // is prepared sql, so no need to ocibindbyname again - $bindarr[$k] = $v; - } else { // dynamic sql, so rebind every time - oci_bind_by_name($stmt,":$k",$inputarr[$k],$len); - - } - } - } - } - - if (!oci_execute($stmt, OCI_DEFAULT)) { - oci_free_statement($stmt); - return $false; - } - - $ncols = oci_num_fields($stmt); - for ( $i = 1; $i <= $ncols; $i++ ) { - $cols[] = '"'.oci_field_name($stmt, $i).'"'; - } - $result = false; - - oci_free_statement($stmt); - $fields = implode(',', $cols); - if ($nrows <= 0) $nrows = 999999999999; - else $nrows += $offset; - $offset += 1; // in Oracle rownum starts at 1 - - if ($this->databaseType == 'oci8po') { - $sql = "SELECT /*+ FIRST_ROWS */ $fields FROM". - "(SELECT rownum as adodb_rownum, $fields FROM". - " ($sql) WHERE rownum <= ?". - ") WHERE adodb_rownum >= ?"; - } else { - $sql = "SELECT /*+ FIRST_ROWS */ $fields FROM". - "(SELECT rownum as adodb_rownum, $fields FROM". - " ($sql) WHERE rownum <= :adodb_nrows". - ") WHERE adodb_rownum >= :adodb_offset"; - } - $inputarr['adodb_nrows'] = $nrows; - $inputarr['adodb_offset'] = $offset; - - if ($secs2cache>0) $rs = $this->CacheExecute($secs2cache, $sql,$inputarr); - else $rs = $this->Execute($sql,$inputarr); - return $rs; - } - - } - - /** - * Usage: - * Store BLOBs and CLOBs - * - * Example: to store $var in a blob - * - * $conn->Execute('insert into TABLE (id,ablob) values(12,empty_blob())'); - * $conn->UpdateBlob('TABLE', 'ablob', $varHoldingBlob, 'ID=12', 'BLOB'); - * - * $blobtype supports 'BLOB' and 'CLOB', but you need to change to 'empty_clob()'. - * - * to get length of LOB: - * select DBMS_LOB.GETLENGTH(ablob) from TABLE - * - * If you are using CURSOR_SHARING = force, it appears this will case a segfault - * under oracle 8.1.7.0. Run: - * $db->Execute('ALTER SESSION SET CURSOR_SHARING=EXACT'); - * before UpdateBlob() then... - */ - - function UpdateBlob($table,$column,$val,$where,$blobtype='BLOB') - { - - //if (strlen($val) < 4000) return $this->Execute("UPDATE $table SET $column=:blob WHERE $where",array('blob'=>$val)) != false; - - switch(strtoupper($blobtype)) { - default: ADOConnection::outp("UpdateBlob: Unknown blobtype=$blobtype"); return false; - case 'BLOB': $type = OCI_B_BLOB; break; - case 'CLOB': $type = OCI_B_CLOB; break; - } - - if ($this->databaseType == 'oci8po') - $sql = "UPDATE $table set $column=EMPTY_{$blobtype}() WHERE $where RETURNING $column INTO ?"; - else - $sql = "UPDATE $table set $column=EMPTY_{$blobtype}() WHERE $where RETURNING $column INTO :blob"; - - $desc = oci_new_descriptor($this->_connectionID, OCI_D_LOB); - $arr['blob'] = array($desc,-1,$type); - if ($this->session_sharing_force_blob) $this->Execute('ALTER SESSION SET CURSOR_SHARING=EXACT'); - $commit = $this->autoCommit; - if ($commit) $this->BeginTrans(); - $rs = $this->_Execute($sql,$arr); - if ($rez = !empty($rs)) $desc->save($val); - $desc->free(); - if ($commit) $this->CommitTrans(); - if ($this->session_sharing_force_blob) $this->Execute('ALTER SESSION SET CURSOR_SHARING=FORCE'); - - if ($rez) $rs->Close(); - return $rez; - } - - /** - * Usage: store file pointed to by $val in a blob - */ - function UpdateBlobFile($table,$column,$val,$where,$blobtype='BLOB') - { - switch(strtoupper($blobtype)) { - default: ADOConnection::outp( "UpdateBlob: Unknown blobtype=$blobtype"); return false; - case 'BLOB': $type = OCI_B_BLOB; break; - case 'CLOB': $type = OCI_B_CLOB; break; - } - - if ($this->databaseType == 'oci8po') - $sql = "UPDATE $table set $column=EMPTY_{$blobtype}() WHERE $where RETURNING $column INTO ?"; - else - $sql = "UPDATE $table set $column=EMPTY_{$blobtype}() WHERE $where RETURNING $column INTO :blob"; - - $desc = oci_new_descriptor($this->_connectionID, OCI_D_LOB); - $arr['blob'] = array($desc,-1,$type); - - $this->BeginTrans(); - $rs = ADODB_oci8::Execute($sql,$arr); - if ($rez = !empty($rs)) $desc->savefile($val); - $desc->free(); - $this->CommitTrans(); - - if ($rez) $rs->Close(); - return $rez; - } - - /** - * Execute SQL - * - * @param sql SQL statement to execute, or possibly an array holding prepared statement ($sql[0] will hold sql text) - * @param [inputarr] holds the input data to bind to. Null elements will be set to null. - * @return RecordSet or false - */ - function Execute($sql,$inputarr=false) - { - if ($this->fnExecute) { - $fn = $this->fnExecute; - $ret = $fn($this,$sql,$inputarr); - if (isset($ret)) return $ret; - } - if ($inputarr) { - #if (!is_array($inputarr)) $inputarr = array($inputarr); - - $element0 = reset($inputarr); - - if (!$this->_bindInputArray) { - # is_object check because oci8 descriptors can be passed in - if (is_array($element0) && !is_object(reset($element0))) { - if (is_string($sql)) - $stmt = $this->Prepare($sql); - else - $stmt = $sql; - - foreach($inputarr as $arr) { - $ret = $this->_Execute($stmt,$arr); - if (!$ret) return $ret; - } - } else { - $sqlarr = explode(':',$sql); - $sql = ''; - $lastnomatch = -2; - #var_dump($sqlarr);echo "
";var_dump($inputarr);echo"
"; - foreach($sqlarr as $k => $str) { - if ($k == 0) { $sql = $str; continue; } - // we need $lastnomatch because of the following datetime, - // eg. '10:10:01', which causes code to think that there is bind param :10 and :1 - $ok = preg_match('/^([0-9]*)/', $str, $arr); - - if (!$ok) $sql .= $str; - else { - $at = $arr[1]; - if (isset($inputarr[$at]) || is_null($inputarr[$at])) { - if ((strlen($at) == strlen($str) && $k < sizeof($arr)-1)) { - $sql .= ':'.$str; - $lastnomatch = $k; - } else if ($lastnomatch == $k-1) { - $sql .= ':'.$str; - } else { - if (is_null($inputarr[$at])) $sql .= 'null'; - else $sql .= $this->qstr($inputarr[$at]); - $sql .= substr($str, strlen($at)); - } - } else { - $sql .= ':'.$str; - } - - } - } - $inputarr = false; - } - } - $ret = $this->_Execute($sql,$inputarr); - - - } else { - $ret = $this->_Execute($sql,false); - } - - return $ret; - } - - /* - Example of usage: - - $stmt = $this->Prepare('insert into emp (empno, ename) values (:empno, :ename)'); - */ - function Prepare($sql,$cursor=false) - { - static $BINDNUM = 0; - - $stmt = oci_parse($this->_connectionID,$sql); - - if (!$stmt) { - $this->_errorMsg = false; - $this->_errorCode = false; - $arr = @oci_error($this->_connectionID); - if ($arr === false) return false; - - $this->_errorMsg = $arr['message']; - $this->_errorCode = $arr['code']; - return false; - } - - $BINDNUM += 1; - - $sttype = @oci_statement_type($stmt); - if ($sttype == 'BEGIN' || $sttype == 'DECLARE') { - return array($sql,$stmt,0,$BINDNUM, ($cursor) ? oci_new_cursor($this->_connectionID) : false); - } - return array($sql,$stmt,0,$BINDNUM); - } - - /* - Call an oracle stored procedure and returns a cursor variable as a recordset. - Concept by Robert Tuttle robert@ud.com - - Example: - Note: we return a cursor variable in :RS2 - $rs = $db->ExecuteCursor("BEGIN adodb.open_tab(:RS2); END;",'RS2'); - - $rs = $db->ExecuteCursor( - "BEGIN :RS2 = adodb.getdata(:VAR1); END;", - 'RS2', - array('VAR1' => 'Mr Bean')); - - */ - function ExecuteCursor($sql,$cursorName='rs',$params=false) - { - if (is_array($sql)) $stmt = $sql; - else $stmt = ADODB_oci8::Prepare($sql,true); # true to allocate OCINewCursor - - if (is_array($stmt) && sizeof($stmt) >= 5) { - $hasref = true; - $ignoreCur = false; - $this->Parameter($stmt, $ignoreCur, $cursorName, false, -1, OCI_B_CURSOR); - if ($params) { - foreach($params as $k => $v) { - $this->Parameter($stmt,$params[$k], $k); - } - } - } else - $hasref = false; - - $rs = $this->Execute($stmt); - if ($rs) { - if ($rs->databaseType == 'array') oci_free_statement($stmt[4]); - else if ($hasref) $rs->_refcursor = $stmt[4]; - } - return $rs; - } - - /* - Bind a variable -- very, very fast for executing repeated statements in oracle. - Better than using - for ($i = 0; $i < $max; $i++) { - $p1 = ?; $p2 = ?; $p3 = ?; - $this->Execute("insert into table (col0, col1, col2) values (:0, :1, :2)", - array($p1,$p2,$p3)); - } - - Usage: - $stmt = $DB->Prepare("insert into table (col0, col1, col2) values (:0, :1, :2)"); - $DB->Bind($stmt, $p1); - $DB->Bind($stmt, $p2); - $DB->Bind($stmt, $p3); - for ($i = 0; $i < $max; $i++) { - $p1 = ?; $p2 = ?; $p3 = ?; - $DB->Execute($stmt); - } - - Some timings: - ** Test table has 3 cols, and 1 index. Test to insert 1000 records - Time 0.6081s (1644.60 inserts/sec) with direct OCIParse/OCIExecute - Time 0.6341s (1577.16 inserts/sec) with ADOdb Prepare/Bind/Execute - Time 1.5533s ( 643.77 inserts/sec) with pure SQL using Execute - - Now if PHP only had batch/bulk updating like Java or PL/SQL... - - Note that the order of parameters differs from OCIBindByName, - because we default the names to :0, :1, :2 - */ - function Bind(&$stmt,&$var,$size=4000,$type=false,$name=false,$isOutput=false) - { - - if (!is_array($stmt)) return false; - - if (($type == OCI_B_CURSOR) && sizeof($stmt) >= 5) { - return oci_bind_by_name($stmt[1],":".$name,$stmt[4],$size,$type); - } - - if ($name == false) { - if ($type !== false) $rez = oci_bind_by_name($stmt[1],":".$stmt[2],$var,$size,$type); - else $rez = oci_bind_by_name($stmt[1],":".$stmt[2],$var,$size); // +1 byte for null terminator - $stmt[2] += 1; - } else if (oci_lob_desc($type)) { - if ($this->debug) { - ADOConnection::outp("Bind: name = $name"); - } - //we have to create a new Descriptor here - $numlob = count($this->_refLOBs); - $this->_refLOBs[$numlob]['LOB'] = oci_new_descriptor($this->_connectionID, oci_lob_desc($type)); - $this->_refLOBs[$numlob]['TYPE'] = $isOutput; - - $tmp = $this->_refLOBs[$numlob]['LOB']; - $rez = oci_bind_by_name($stmt[1], ":".$name, $tmp, -1, $type); - if ($this->debug) { - ADOConnection::outp("Bind: descriptor has been allocated, var (".$name.") binded"); - } - - // if type is input then write data to lob now - if ($isOutput == false) { - $var = $this->BlobEncode($var); - $tmp->WriteTemporary($var); - $this->_refLOBs[$numlob]['VAR'] = &$var; - if ($this->debug) { - ADOConnection::outp("Bind: LOB has been written to temp"); - } - } else { - $this->_refLOBs[$numlob]['VAR'] = $var; - } - $rez = $tmp; - } else { - if ($this->debug) - ADOConnection::outp("Bind: name = $name"); - - if ($type !== false) $rez = oci_bind_by_name($stmt[1],":".$name,$var,$size,$type); - else $rez = oci_bind_by_name($stmt[1],":".$name,$var,$size); // +1 byte for null terminator - } - - return $rez; - } - - function Param($name,$type=false) - { - return ':'.$name; - } - - /* - Usage: - $stmt = $db->Prepare('select * from table where id =:myid and group=:group'); - $db->Parameter($stmt,$id,'myid'); - $db->Parameter($stmt,$group,'group'); - $db->Execute($stmt); - - @param $stmt Statement returned by Prepare() or PrepareSP(). - @param $var PHP variable to bind to - @param $name Name of stored procedure variable name to bind to. - @param [$isOutput] Indicates direction of parameter 0/false=IN 1=OUT 2= IN/OUT. This is ignored in oci8. - @param [$maxLen] Holds an maximum length of the variable. - @param [$type] The data type of $var. Legal values depend on driver. - - See OCIBindByName documentation at php.net. - */ - function Parameter(&$stmt,&$var,$name,$isOutput=false,$maxLen=4000,$type=false) - { - if ($this->debug) { - $prefix = ($isOutput) ? 'Out' : 'In'; - $ztype = (empty($type)) ? 'false' : $type; - ADOConnection::outp( "{$prefix}Parameter(\$stmt, \$php_var='$var', \$name='$name', \$maxLen=$maxLen, \$type=$ztype);"); - } - return $this->Bind($stmt,$var,$maxLen,$type,$name,$isOutput); - } - - /* - returns query ID if successful, otherwise false - this version supports: - - 1. $db->execute('select * from table'); - - 2. $db->prepare('insert into table (a,b,c) values (:0,:1,:2)'); - $db->execute($prepared_statement, array(1,2,3)); - - 3. $db->execute('insert into table (a,b,c) values (:a,:b,:c)',array('a'=>1,'b'=>2,'c'=>3)); - - 4. $db->prepare('insert into table (a,b,c) values (:0,:1,:2)'); - $db->bind($stmt,1); $db->bind($stmt,2); $db->bind($stmt,3); - $db->execute($stmt); - */ - function _query($sql,$inputarr=false) - { - if (is_array($sql)) { // is prepared sql - $stmt = $sql[1]; - - // we try to bind to permanent array, so that OCIBindByName is persistent - // and carried out once only - note that max array element size is 4000 chars - if (is_array($inputarr)) { - $bindpos = $sql[3]; - if (isset($this->_bind[$bindpos])) { - // all tied up already - $bindarr = $this->_bind[$bindpos]; - } else { - // one statement to bind them all - $bindarr = array(); - foreach($inputarr as $k => $v) { - $bindarr[$k] = $v; - oci_bind_by_name($stmt,":$k",$bindarr[$k],is_string($v) && strlen($v)>4000 ? -1 : 4000); - } - $this->_bind[$bindpos] = $bindarr; - } - } - } else { - $stmt=oci_parse($this->_connectionID,$sql); - } - - $this->_stmt = $stmt; - if (!$stmt) return false; - - if (defined('ADODB_PREFETCH_ROWS')) @oci_set_prefetch($stmt,ADODB_PREFETCH_ROWS); - - if (is_array($inputarr)) { - foreach($inputarr as $k => $v) { - if (is_array($v)) { - if (sizeof($v) == 2) // suggested by g.giunta@libero. - oci_bind_by_name($stmt,":$k",$inputarr[$k][0],$v[1]); - else - oci_bind_by_name($stmt,":$k",$inputarr[$k][0],$v[1],$v[2]); - - if ($this->debug==99) { - if (is_object($v[0])) - echo "name=:$k",' len='.$v[1],' type='.$v[2],'
'; - else - echo "name=:$k",' var='.$inputarr[$k][0],' len='.$v[1],' type='.$v[2],'
'; - - } - } else { - $len = -1; - if ($v === ' ') $len = 1; - if (isset($bindarr)) { // is prepared sql, so no need to ocibindbyname again - $bindarr[$k] = $v; - } else { // dynamic sql, so rebind every time - oci_bind_by_name($stmt,":$k",$inputarr[$k],$len); - } - } - } - } - - $this->_errorMsg = false; - $this->_errorCode = false; - if (oci_execute($stmt,$this->_commit)) { -//OCIInternalDebug(1); - if (count($this -> _refLOBs) > 0) { - - foreach ($this -> _refLOBs as $key => $value) { - if ($this -> _refLOBs[$key]['TYPE'] == true) { - $tmp = $this -> _refLOBs[$key]['LOB'] -> load(); - if ($this -> debug) { - ADOConnection::outp("OUT LOB: LOB has been loaded.
"); - } - //$_GLOBALS[$this -> _refLOBs[$key]['VAR']] = $tmp; - $this -> _refLOBs[$key]['VAR'] = $tmp; - } else { - $this->_refLOBs[$key]['LOB']->save($this->_refLOBs[$key]['VAR']); - $this -> _refLOBs[$key]['LOB']->free(); - unset($this -> _refLOBs[$key]); - if ($this->debug) { - ADOConnection::outp("IN LOB: LOB has been saved.
"); - } - } - } - } - - switch (@oci_statement_type($stmt)) { - case "SELECT": - return $stmt; - - case 'DECLARE': - case "BEGIN": - if (is_array($sql) && !empty($sql[4])) { - $cursor = $sql[4]; - if (is_resource($cursor)) { - $ok = oci_execute($cursor); - return $cursor; - } - return $stmt; - } else { - if (is_resource($stmt)) { - oci_free_statement($stmt); - return true; - } - return $stmt; - } - break; - default : - // ociclose -- no because it could be used in a LOB? - return true; - } - } - return false; - } - - // From Oracle Whitepaper: PHP Scalability and High Availability - function IsConnectionError($err) - { - switch($err) { - case 378: /* buffer pool param incorrect */ - case 602: /* core dump */ - case 603: /* fatal error */ - case 609: /* attach failed */ - case 1012: /* not logged in */ - case 1033: /* init or shutdown in progress */ - case 1043: /* Oracle not available */ - case 1089: /* immediate shutdown in progress */ - case 1090: /* shutdown in progress */ - case 1092: /* instance terminated */ - case 3113: /* disconnect */ - case 3114: /* not connected */ - case 3122: /* closing window */ - case 3135: /* lost contact */ - case 12153: /* TNS: not connected */ - case 27146: /* fatal or instance terminated */ - case 28511: /* Lost RPC */ - return true; - } - return false; - } - - // returns true or false - function _close() - { - if (!$this->_connectionID) return; - - if (!$this->autoCommit) oci_rollback($this->_connectionID); - if (count($this->_refLOBs) > 0) { - foreach ($this ->_refLOBs as $key => $value) { - $this->_refLOBs[$key]['LOB']->free(); - unset($this->_refLOBs[$key]); - } - } - oci_close($this->_connectionID); - - $this->_stmt = false; - $this->_connectionID = false; - } - - function MetaPrimaryKeys($table, $owner=false,$internalKey=false) - { - if ($internalKey) return array('ROWID'); - - // tested with oracle 8.1.7 - $table = strtoupper($table); - if ($owner) { - $owner_clause = "AND ((a.OWNER = b.OWNER) AND (a.OWNER = UPPER('$owner')))"; - $ptab = 'ALL_'; - } else { - $owner_clause = ''; - $ptab = 'USER_'; - } - $sql = " -SELECT /*+ RULE */ distinct b.column_name - FROM {$ptab}CONSTRAINTS a - , {$ptab}CONS_COLUMNS b - WHERE ( UPPER(b.table_name) = ('$table')) - AND (UPPER(a.table_name) = ('$table') and a.constraint_type = 'P') - $owner_clause - AND (a.constraint_name = b.constraint_name)"; - - $rs = $this->Execute($sql); - if ($rs && !$rs->EOF) { - $arr = $rs->GetArray(); - $a = array(); - foreach($arr as $v) { - $a[] = reset($v); - } - return $a; - } - else return false; - } - - // http://gis.mit.edu/classes/11.521/sqlnotes/referential_integrity.html - function MetaForeignKeys($table, $owner=false) - { - global $ADODB_FETCH_MODE; - - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $table = $this->qstr(strtoupper($table)); - if (!$owner) { - $owner = $this->user; - $tabp = 'user_'; - } else - $tabp = 'all_'; - - $owner = ' and owner='.$this->qstr(strtoupper($owner)); - - $sql = -"select constraint_name,r_owner,r_constraint_name - from {$tabp}constraints - where constraint_type = 'R' and table_name = $table $owner"; - - $constraints = $this->GetArray($sql); - $arr = false; - foreach($constraints as $constr) { - $cons = $this->qstr($constr[0]); - $rowner = $this->qstr($constr[1]); - $rcons = $this->qstr($constr[2]); - $cols = $this->GetArray("select column_name from {$tabp}cons_columns where constraint_name=$cons $owner order by position"); - $tabcol = $this->GetArray("select table_name,column_name from {$tabp}cons_columns where owner=$rowner and constraint_name=$rcons order by position"); - - if ($cols && $tabcol) - for ($i=0, $max=sizeof($cols); $i < $max; $i++) { - $arr[$tabcol[$i][0]] = $cols[$i][0].'='.$tabcol[$i][1]; - } - } - $ADODB_FETCH_MODE = $save; - - return $arr; - } - - - function CharMax() - { - return 4000; - } - - function TextMax() - { - return 4000; - } - - /** - * Quotes a string. - * An example is $db->qstr("Don't bother",magic_quotes_runtime()); - * - * @param s the string to quote - * @param [magic_quotes] if $s is GET/POST var, set to get_magic_quotes_gpc(). - * This undoes the stupidity of magic quotes for GPC. - * - * @return quoted string to be sent back to database - */ - function qstr($s,$magic_quotes=false) - { - //$nofixquotes=false; - - if ($this->noNullStrings && strlen($s)==0)$s = ' '; - if (!$magic_quotes) { - if ($this->replaceQuote[0] == '\\'){ - $s = str_replace('\\','\\\\',$s); - } - return "'".str_replace("'",$this->replaceQuote,$s)."'"; - } - - // undo magic quotes for " unless sybase is on - $s = str_replace('\\"','"',$s); - $s = str_replace('\\\\','\\',$s); - return "'".str_replace("\\'",$this->replaceQuote,$s)."'"; - } - -} - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordset_oci8 extends ADORecordSet { - - var $databaseType = 'oci8'; - var $bind=false; - var $_fieldobjs; - - //var $_arr = false; - - function __construct($queryID,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - switch ($mode) - { - case ADODB_FETCH_ASSOC:$this->fetchMode = OCI_ASSOC+OCI_RETURN_NULLS+OCI_RETURN_LOBS; break; - case ADODB_FETCH_DEFAULT: - case ADODB_FETCH_BOTH:$this->fetchMode = OCI_NUM+OCI_ASSOC+OCI_RETURN_NULLS+OCI_RETURN_LOBS; break; - case ADODB_FETCH_NUM: - default: - $this->fetchMode = OCI_NUM+OCI_RETURN_NULLS+OCI_RETURN_LOBS; break; - } - - $this->adodbFetchMode = $mode; - $this->_queryID = $queryID; - } - - - function Init() - { - if ($this->_inited) return; - - $this->_inited = true; - if ($this->_queryID) { - - $this->_currentRow = 0; - @$this->_initrs(); - $this->EOF = !$this->_fetch(); - - /* - // based on idea by Gaetano Giunta to detect unusual oracle errors - // see http://phplens.com/lens/lensforum/msgs.php?id=6771 - $err = OCIError($this->_queryID); - if ($err && $this->connection->debug) ADOConnection::outp($err); - */ - - if (!is_array($this->fields)) { - $this->_numOfRows = 0; - $this->fields = array(); - } - } else { - $this->fields = array(); - $this->_numOfRows = 0; - $this->_numOfFields = 0; - $this->EOF = true; - } - } - - function _initrs() - { - $this->_numOfRows = -1; - $this->_numOfFields = oci_num_fields($this->_queryID); - if ($this->_numOfFields>0) { - $this->_fieldobjs = array(); - $max = $this->_numOfFields; - for ($i=0;$i<$max; $i++) $this->_fieldobjs[] = $this->_FetchField($i); - } - } - - /* Returns: an object containing field information. - Get column information in the Recordset object. fetchField() can be used in order to obtain information about - fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by - fetchField() is retrieved. */ - - function _FetchField($fieldOffset = -1) - { - $fld = new ADOFieldObject; - $fieldOffset += 1; - $fld->name =oci_field_name($this->_queryID, $fieldOffset); - $fld->type = oci_field_type($this->_queryID, $fieldOffset); - $fld->max_length = oci_field_size($this->_queryID, $fieldOffset); - switch($fld->type) { - case 'NUMBER': - $p = oci_field_precision($this->_queryID, $fieldOffset); - $sc = oci_field_scale($this->_queryID, $fieldOffset); - if ($p != 0 && $sc == 0) $fld->type = 'INT'; - break; - - case 'CLOB': - case 'NCLOB': - case 'BLOB': - $fld->max_length = -1; - break; - } - return $fld; - } - - /* For some reason, OCIcolumnname fails when called after _initrs() so we cache it */ - function FetchField($fieldOffset = -1) - { - return $this->_fieldobjs[$fieldOffset]; - } - - - /* - // 10% speedup to move MoveNext to child class - function _MoveNext() - { - //global $ADODB_EXTENSION;if ($ADODB_EXTENSION) return @adodb_movenext($this); - - if ($this->EOF) return false; - - $this->_currentRow++; - if(@OCIfetchinto($this->_queryID,$this->fields,$this->fetchMode)) - return true; - $this->EOF = true; - - return false; - } */ - - - function MoveNext() - { - if ($this->fields = @oci_fetch_array($this->_queryID, $this->fetchMode)) { - $this->_currentRow += 1; - return true; - } - if (!$this->EOF) { - $this->_currentRow += 1; - $this->EOF = true; - } - return false; - } - - /* - # does not work as first record is retrieved in _initrs(), so is not included in GetArray() - function GetArray($nRows = -1) - { - global $ADODB_OCI8_GETARRAY; - - if (true || !empty($ADODB_OCI8_GETARRAY)) { - # does not support $ADODB_ANSI_PADDING_OFF - - //OCI_RETURN_NULLS and OCI_RETURN_LOBS is set by OCIfetchstatement - switch($this->adodbFetchMode) { - case ADODB_FETCH_NUM: - - $ncols = @OCIfetchstatement($this->_queryID, $results, 0, $nRows, OCI_FETCHSTATEMENT_BY_ROW+OCI_NUM); - $results = array_merge(array($this->fields),$results); - return $results; - - case ADODB_FETCH_ASSOC: - if (ADODB_ASSOC_CASE != 2 || $this->databaseType != 'oci8') break; - - $ncols = @OCIfetchstatement($this->_queryID, $assoc, 0, $nRows, OCI_FETCHSTATEMENT_BY_ROW); - $results = array_merge(array($this->fields),$assoc); - return $results; - - default: - break; - } - } - - $results = ADORecordSet::GetArray($nRows); - return $results; - - } */ - - /* Optimize SelectLimit() by using OCIFetch() instead of OCIFetchInto() */ - function GetArrayLimit($nrows,$offset=-1) - { - if ($offset <= 0) { - $arr = $this->GetArray($nrows); - return $arr; - } - $arr = array(); - for ($i=1; $i < $offset; $i++) - if (!@oci_fetch($this->_queryID)) return $arr; - - if (!$this->fields = @oci_fetch_array($this->_queryID, $this->fetchMode)) return $arr; - $results = array(); - $cnt = 0; - while (!$this->EOF && $nrows != $cnt) { - $results[$cnt++] = $this->fields; - $this->MoveNext(); - } - - return $results; - } - - - /* Use associative array to get fields array */ - function Fields($colname) - { - if (!$this->bind) { - $this->bind = array(); - for ($i=0; $i < $this->_numOfFields; $i++) { - $o = $this->FetchField($i); - $this->bind[strtoupper($o->name)] = $i; - } - } - - return $this->fields[$this->bind[strtoupper($colname)]]; - } - - - - function _seek($row) - { - return false; - } - - function _fetch() - { - return $this->fields = @oci_fetch_array($this->_queryID, $this->fetchMode); - } - - /* close() only needs to be called if you are worried about using too much memory while your script - is running. All associated result memory for the specified result identifier will automatically be freed. */ - - function _close() - { - if ($this->connection->_stmt === $this->_queryID) $this->connection->_stmt = false; - if (!empty($this->_refcursor)) { - oci_free_statement($this->_refcursor); - $this->_refcursor = false; - } - @oci_free_statement($this->_queryID); - $this->_queryID = false; - - } - - function MetaType($t,$len=-1) - { - if (is_object($t)) { - $fieldobj = $t; - $t = $fieldobj->type; - $len = $fieldobj->max_length; - } - switch (strtoupper($t)) { - case 'VARCHAR': - case 'VARCHAR2': - case 'CHAR': - case 'VARBINARY': - case 'BINARY': - case 'NCHAR': - case 'NVARCHAR': - case 'NVARCHAR2': - if ($len <= $this->blobSize) return 'C'; - - case 'NCLOB': - case 'LONG': - case 'LONG VARCHAR': - case 'CLOB': - return 'X'; - - case 'LONG RAW': - case 'LONG VARBINARY': - case 'BLOB': - return 'B'; - - case 'DATE': - return ($this->connection->datetime) ? 'T' : 'D'; - - - case 'TIMESTAMP': return 'T'; - - case 'INT': - case 'SMALLINT': - case 'INTEGER': - return 'I'; - - default: return 'N'; - } - } -} - -class ADORecordSet_ext_oci8 extends ADORecordSet_oci8 { - function __construct($queryID,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - switch ($mode) - { - case ADODB_FETCH_ASSOC:$this->fetchMode = OCI_ASSOC+OCI_RETURN_NULLS+OCI_RETURN_LOBS; break; - case ADODB_FETCH_DEFAULT: - case ADODB_FETCH_BOTH:$this->fetchMode = OCI_NUM+OCI_ASSOC+OCI_RETURN_NULLS+OCI_RETURN_LOBS; break; - case ADODB_FETCH_NUM: - default: $this->fetchMode = OCI_NUM+OCI_RETURN_NULLS+OCI_RETURN_LOBS; break; - } - $this->adodbFetchMode = $mode; - $this->_queryID = $queryID; - } - - function MoveNext() - { - return adodb_movenext($this); - } -} -?> diff --git a/src/adodb5/drivers/adodb-oci805.inc.php b/src/adodb5/drivers/adodb-oci805.inc.php deleted file mode 100644 index 63528b31..00000000 --- a/src/adodb5/drivers/adodb-oci805.inc.php +++ /dev/null @@ -1,59 +0,0 @@ -ADODB_oci8(); - } - - function SelectLimit($sql,$nrows=-1,$offset=-1, $inputarr=false,$secs2cache=0) - { - // seems that oracle only supports 1 hint comment in 8i - if (strpos($sql,'/*+') !== false) - $sql = str_replace('/*+ ','/*+FIRST_ROWS ',$sql); - else - $sql = preg_replace('/^[ \t\n]*select/i','SELECT /*+FIRST_ROWS*/',$sql); - - /* - The following is only available from 8.1.5 because order by in inline views not - available before then... - http://www.jlcomp.demon.co.uk/faq/top_sql.html - if ($nrows > 0) { - if ($offset > 0) $nrows += $offset; - $sql = "select * from ($sql) where rownum <= $nrows"; - $nrows = -1; - } - */ - - return ADOConnection::SelectLimit($sql,$nrows,$offset,$inputarr,$secs2cache); - } -} - -class ADORecordset_oci805 extends ADORecordset_oci8 { - var $databaseType = "oci805"; - function __construct($id,$mode=false) - { - $this->ADORecordset_oci8($id,$mode); - } -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-oci8po.inc.php b/src/adodb5/drivers/adodb-oci8po.inc.php deleted file mode 100644 index 9436ebfe..00000000 --- a/src/adodb5/drivers/adodb-oci8po.inc.php +++ /dev/null @@ -1,218 +0,0 @@ - - - Should some emulation of RecordCount() be implemented? - -*/ - -// security - hide paths -if (!defined('ADODB_DIR')) die(); - -include_once(ADODB_DIR.'/drivers/adodb-oci8.inc.php'); - -class ADODB_oci8po extends ADODB_oci8 { - var $databaseType = 'oci8po'; - var $dataProvider = 'oci8'; - var $metaColumnsSQL = "select lower(cname),coltype,width, SCALE, PRECISION, NULLS, DEFAULTVAL from col where tname='%s' order by colno"; //changed by smondino@users.sourceforge. net - var $metaTablesSQL = "select lower(table_name),table_type from cat where table_type in ('TABLE','VIEW')"; - - function __construct() - { - $this->_hasOCIFetchStatement = ADODB_PHPVER >= 0x4200; - # oci8po does not support adodb extension: adodb_movenext() - } - - function Param($name) - { - return '?'; - } - - function Prepare($sql,$cursor=false) - { - $sqlarr = explode('?',$sql); - $sql = $sqlarr[0]; - for ($i = 1, $max = sizeof($sqlarr); $i < $max; $i++) { - $sql .= ':'.($i-1) . $sqlarr[$i]; - } - return ADODB_oci8::Prepare($sql,$cursor); - } - - // emulate handling of parameters ? ?, replacing with :bind0 :bind1 - function _query($sql,$inputarr=false) - { - if (is_array($inputarr)) { - $i = 0; - if (is_array($sql)) { - foreach($inputarr as $v) { - $arr['bind'.$i++] = $v; - } - } else { - $sqlarr = explode('?',$sql); - $sql = $sqlarr[0]; - foreach($inputarr as $k => $v) { - $sql .= ":$k" . $sqlarr[++$i]; - } - } - } - return ADODB_oci8::_query($sql,$inputarr); - } -} - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordset_oci8po extends ADORecordset_oci8 { - - var $databaseType = 'oci8po'; - - function __construct($queryID,$mode=false) - { - $this->ADORecordset_oci8($queryID,$mode); - } - - function Fields($colname) - { - if ($this->fetchMode & OCI_ASSOC) return $this->fields[$colname]; - - if (!$this->bind) { - $this->bind = array(); - for ($i=0; $i < $this->_numOfFields; $i++) { - $o = $this->FetchField($i); - $this->bind[strtoupper($o->name)] = $i; - } - } - return $this->fields[$this->bind[strtoupper($colname)]]; - } - - // lowercase field names... - function _FetchField($fieldOffset = -1) - { - $fld = new ADOFieldObject; - $fieldOffset += 1; - $fld->name = oci_field_name($this->_queryID, $fieldOffset); - if (ADODB_ASSOC_CASE == 0) $fld->name = strtolower($fld->name); - $fld->type = oci_field_type($this->_queryID, $fieldOffset); - $fld->max_length = oci_field_size($this->_queryID, $fieldOffset); - if ($fld->type == 'NUMBER') { - //$p = OCIColumnPrecision($this->_queryID, $fieldOffset); - $sc = oci_field_scale($this->_queryID, $fieldOffset); - if ($sc == 0) $fld->type = 'INT'; - } - return $fld; - } - /* - function MoveNext() - { - if (@OCIfetchinto($this->_queryID,$this->fields,$this->fetchMode)) { - $this->_currentRow += 1; - return true; - } - if (!$this->EOF) { - $this->_currentRow += 1; - $this->EOF = true; - } - return false; - }*/ - - // 10% speedup to move MoveNext to child class - function MoveNext() - { - if($this->fields = @oci_fetch_array($this->_queryID, $this->fetchMode)) { - global $ADODB_ANSI_PADDING_OFF; - $this->_currentRow++; - - if ($this->fetchMode & OCI_ASSOC) $this->_updatefields(); - if (!empty($ADODB_ANSI_PADDING_OFF)) { - foreach($this->fields as $k => $v) { - if (is_string($v)) $this->fields[$k] = rtrim($v); - } - } - return true; - } - if (!$this->EOF) { - $this->EOF = true; - $this->_currentRow++; - } - return false; - } - - /* Optimize SelectLimit() by using OCIFetch() instead of OCIFetchInto() */ - function GetArrayLimit($nrows,$offset=-1) - { - if ($offset <= 0) { - $arr = $this->GetArray($nrows); - return $arr; - } - for ($i=1; $i < $offset; $i++) - if (!@oci_fetch($this->_queryID)) { - $arr = array(); - return $arr; - } - if (!$this->fields = @oci_fetch_array($this->_queryID ,$this->fetchMode)) { - $arr = array(); - return $arr; - } - if ($this->fetchMode & OCI_ASSOC) $this->_updatefields(); - $results = array(); - $cnt = 0; - while (!$this->EOF && $nrows != $cnt) { - $results[$cnt++] = $this->fields; - $this->MoveNext(); - } - - return $results; - } - - // Create associative array - function _updatefields() - { - if (ADODB_ASSOC_CASE == 2) return; // native - - $arr = array(); - $lowercase = (ADODB_ASSOC_CASE == 0); - - foreach($this->fields as $k => $v) { - if (is_integer($k)) $arr[$k] = $v; - else { - if ($lowercase) - $arr[strtolower($k)] = $v; - else - $arr[strtoupper($k)] = $v; - } - } - $this->fields = $arr; - } - - function _fetch() - { - $this->fields = @oci_fetch_array($this->_queryID ,$this->fetchMode); - if ($this->fields) { - global $ADODB_ANSI_PADDING_OFF; - - if ($this->fetchMode & OCI_ASSOC) $this->_updatefields(); - if (!empty($ADODB_ANSI_PADDING_OFF)) { - foreach($this->fields as $k => $v) { - if (is_string($v)) $this->fields[$k] = rtrim($v); - } - } - } - return $this->fields; - } - -} - - -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-odbc.inc.php b/src/adodb5/drivers/adodb-odbc.inc.php deleted file mode 100644 index 6258ee0d..00000000 --- a/src/adodb5/drivers/adodb-odbc.inc.php +++ /dev/null @@ -1,731 +0,0 @@ -_haserrorfunctions = ADODB_PHPVER >= 0x4050; - $this->_has_stupid_odbc_fetch_api_change = ADODB_PHPVER >= 0x4200; - } - - // returns true or false - function _connect($argDSN, $argUsername, $argPassword, $argDatabasename) - { - if (!function_exists('odbc_connect')) return null; - - if ($this->debug && $argDatabasename && $this->databaseType != 'vfp') { - ADOConnection::outp("For odbc Connect(), $argDatabasename is not used. Place dsn in 1st parameter."); - } - if ($this->curmode === false) $this->_connectionID = odbc_connect($argDSN,$argUsername,$argPassword); - else $this->_connectionID = odbc_connect($argDSN,$argUsername,$argPassword,$this->curmode); - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - if (isset($this->connectStmt)) $this->Execute($this->connectStmt); - - return $this->_connectionID != false; - } - - // returns true or false - function _pconnect($argDSN, $argUsername, $argPassword, $argDatabasename) - { - - if (!function_exists('odbc_connect')) return null; - - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - if ($this->debug && $argDatabasename) { - ADOConnection::outp("For odbc PConnect(), $argDatabasename is not used. Place dsn in 1st parameter."); - } - // print "dsn=$argDSN u=$argUsername p=$argPassword
"; flush(); - if ($this->curmode === false) $this->_connectionID = odbc_connect($argDSN,$argUsername,$argPassword); - else $this->_connectionID = odbc_pconnect($argDSN,$argUsername,$argPassword,$this->curmode); - - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - if ($this->_connectionID && $this->autoRollback) @odbc_rollback($this->_connectionID); - if (isset($this->connectStmt)) $this->Execute($this->connectStmt); - - return $this->_connectionID != false; - } - - - function ServerInfo() - { - - if (!empty($this->host) && ADODB_PHPVER >= 0x4300) { - $dsn = strtoupper($this->host); - $first = true; - $found = false; - - if (!function_exists('odbc_data_source')) return false; - - while(true) { - - $rez = @odbc_data_source($this->_connectionID, - $first ? SQL_FETCH_FIRST : SQL_FETCH_NEXT); - $first = false; - if (!is_array($rez)) break; - if (strtoupper($rez['server']) == $dsn) { - $found = true; - break; - } - } - if (!$found) return ADOConnection::ServerInfo(); - if (!isset($rez['version'])) $rez['version'] = ''; - return $rez; - } else { - return ADOConnection::ServerInfo(); - } - } - - - function CreateSequence($seqname='adodbseq',$start=1) - { - if (empty($this->_genSeqSQL)) return false; - $ok = $this->Execute(sprintf($this->_genSeqSQL,$seqname)); - if (!$ok) return false; - $start -= 1; - return $this->Execute("insert into $seqname values($start)"); - } - - var $_dropSeqSQL = 'drop table %s'; - function DropSequence($seqname) - { - if (empty($this->_dropSeqSQL)) return false; - return $this->Execute(sprintf($this->_dropSeqSQL,$seqname)); - } - - /* - This algorithm is not very efficient, but works even if table locking - is not available. - - Will return false if unable to generate an ID after $MAXLOOPS attempts. - */ - function GenID($seq='adodbseq',$start=1) - { - // if you have to modify the parameter below, your database is overloaded, - // or you need to implement generation of id's yourself! - $MAXLOOPS = 100; - //$this->debug=1; - while (--$MAXLOOPS>=0) { - $num = $this->GetOne("select id from $seq"); - if ($num === false) { - $this->Execute(sprintf($this->_genSeqSQL ,$seq)); - $start -= 1; - $num = '0'; - $ok = $this->Execute("insert into $seq values($start)"); - if (!$ok) return false; - } - $this->Execute("update $seq set id=id+1 where id=$num"); - - if ($this->affected_rows() > 0) { - $num += 1; - $this->genID = $num; - return $num; - } - } - if ($fn = $this->raiseErrorFn) { - $fn($this->databaseType,'GENID',-32000,"Unable to generate unique id after $MAXLOOPS attempts",$seq,$num); - } - return false; - } - - - function ErrorMsg() - { - if ($this->_haserrorfunctions) { - if ($this->_errorMsg !== false) return $this->_errorMsg; - if (empty($this->_connectionID)) return @odbc_errormsg(); - return @odbc_errormsg($this->_connectionID); - } else return ADOConnection::ErrorMsg(); - } - - function ErrorNo() - { - - if ($this->_haserrorfunctions) { - if ($this->_errorCode !== false) { - // bug in 4.0.6, error number can be corrupted string (should be 6 digits) - return (strlen($this->_errorCode)<=2) ? 0 : $this->_errorCode; - } - - if (empty($this->_connectionID)) $e = @odbc_error(); - else $e = @odbc_error($this->_connectionID); - - // bug in 4.0.6, error number can be corrupted string (should be 6 digits) - // so we check and patch - if (strlen($e)<=2) return 0; - return $e; - } else return ADOConnection::ErrorNo(); - } - - - - function BeginTrans() - { - if (!$this->hasTransactions) return false; - if ($this->transOff) return true; - $this->transCnt += 1; - $this->_autocommit = false; - return odbc_autocommit($this->_connectionID,false); - } - - function CommitTrans($ok=true) - { - if ($this->transOff) return true; - if (!$ok) return $this->RollbackTrans(); - if ($this->transCnt) $this->transCnt -= 1; - $this->_autocommit = true; - $ret = odbc_commit($this->_connectionID); - odbc_autocommit($this->_connectionID,true); - return $ret; - } - - function RollbackTrans() - { - if ($this->transOff) return true; - if ($this->transCnt) $this->transCnt -= 1; - $this->_autocommit = true; - $ret = odbc_rollback($this->_connectionID); - odbc_autocommit($this->_connectionID,true); - return $ret; - } - - function MetaPrimaryKeys($table) - { - global $ADODB_FETCH_MODE; - - if ($this->uCaseTables) $table = strtoupper($table); - $schema = ''; - $this->_findschema($table,$schema); - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $qid = @odbc_primarykeys($this->_connectionID,'',$schema,$table); - - if (!$qid) { - $ADODB_FETCH_MODE = $savem; - return false; - } - $rs = new ADORecordSet_odbc($qid); - $ADODB_FETCH_MODE = $savem; - - if (!$rs) return false; - $rs->_has_stupid_odbc_fetch_api_change = $this->_has_stupid_odbc_fetch_api_change; - - $arr = $rs->GetArray(); - $rs->Close(); - //print_r($arr); - $arr2 = array(); - for ($i=0; $i < sizeof($arr); $i++) { - if ($arr[$i][3]) $arr2[] = $arr[$i][3]; - } - return $arr2; - } - - - - function MetaTables($ttype=false) - { - global $ADODB_FETCH_MODE; - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $qid = odbc_tables($this->_connectionID); - - $rs = new ADORecordSet_odbc($qid); - - $ADODB_FETCH_MODE = $savem; - if (!$rs) { - $false = false; - return $false; - } - $rs->_has_stupid_odbc_fetch_api_change = $this->_has_stupid_odbc_fetch_api_change; - - $arr = $rs->GetArray(); - //print_r($arr); - - $rs->Close(); - $arr2 = array(); - - if ($ttype) { - $isview = strncmp($ttype,'V',1) === 0; - } - for ($i=0; $i < sizeof($arr); $i++) { - if (!$arr[$i][2]) continue; - $type = $arr[$i][3]; - if ($ttype) { - if ($isview) { - if (strncmp($type,'V',1) === 0) $arr2[] = $arr[$i][2]; - } else if (strncmp($type,'SYS',3) !== 0) $arr2[] = $arr[$i][2]; - } else if (strncmp($type,'SYS',3) !== 0) $arr2[] = $arr[$i][2]; - } - return $arr2; - } - -/* -See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcdatetime_data_type_changes.asp -/ SQL data type codes / -#define SQL_UNKNOWN_TYPE 0 -#define SQL_CHAR 1 -#define SQL_NUMERIC 2 -#define SQL_DECIMAL 3 -#define SQL_INTEGER 4 -#define SQL_SMALLINT 5 -#define SQL_FLOAT 6 -#define SQL_REAL 7 -#define SQL_DOUBLE 8 -#if (ODBCVER >= 0x0300) -#define SQL_DATETIME 9 -#endif -#define SQL_VARCHAR 12 - - -/ One-parameter shortcuts for date/time data types / -#if (ODBCVER >= 0x0300) -#define SQL_TYPE_DATE 91 -#define SQL_TYPE_TIME 92 -#define SQL_TYPE_TIMESTAMP 93 - -#define SQL_UNICODE (-95) -#define SQL_UNICODE_VARCHAR (-96) -#define SQL_UNICODE_LONGVARCHAR (-97) -*/ - function ODBCTypes($t) - { - switch ((integer)$t) { - case 1: - case 12: - case 0: - case -95: - case -96: - return 'C'; - case -97: - case -1: //text - return 'X'; - case -4: //image - return 'B'; - - case 9: - case 91: - return 'D'; - - case 10: - case 11: - case 92: - case 93: - return 'T'; - - case 4: - case 5: - case -6: - return 'I'; - - case -11: // uniqidentifier - return 'R'; - case -7: //bit - return 'L'; - - default: - return 'N'; - } - } - - function MetaColumns($table, $normalize=true) - { - global $ADODB_FETCH_MODE; - - $false = false; - if ($this->uCaseTables) $table = strtoupper($table); - $schema = ''; - $this->_findschema($table,$schema); - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - - /*if (false) { // after testing, confirmed that the following does not work becoz of a bug - $qid2 = odbc_tables($this->_connectionID); - $rs = new ADORecordSet_odbc($qid2); - $ADODB_FETCH_MODE = $savem; - if (!$rs) return false; - $rs->_has_stupid_odbc_fetch_api_change = $this->_has_stupid_odbc_fetch_api_change; - $rs->_fetch(); - - while (!$rs->EOF) { - if ($table == strtoupper($rs->fields[2])) { - $q = $rs->fields[0]; - $o = $rs->fields[1]; - break; - } - $rs->MoveNext(); - } - $rs->Close(); - - $qid = odbc_columns($this->_connectionID,$q,$o,strtoupper($table),'%'); - } */ - - switch ($this->databaseType) { - case 'access': - case 'vfp': - $qid = odbc_columns($this->_connectionID);#,'%','',strtoupper($table),'%'); - break; - - - case 'db2': - $colname = "%"; - $qid = odbc_columns($this->_connectionID, "", $schema, $table, $colname); - break; - - default: - $qid = @odbc_columns($this->_connectionID,'%','%',strtoupper($table),'%'); - if (empty($qid)) $qid = odbc_columns($this->_connectionID); - break; - } - if (empty($qid)) return $false; - - $rs = new ADORecordSet_odbc($qid); - $ADODB_FETCH_MODE = $savem; - - if (!$rs) return $false; - $rs->_has_stupid_odbc_fetch_api_change = $this->_has_stupid_odbc_fetch_api_change; - $rs->_fetch(); - - $retarr = array(); - - /* - $rs->fields indices - 0 TABLE_QUALIFIER - 1 TABLE_SCHEM - 2 TABLE_NAME - 3 COLUMN_NAME - 4 DATA_TYPE - 5 TYPE_NAME - 6 PRECISION - 7 LENGTH - 8 SCALE - 9 RADIX - 10 NULLABLE - 11 REMARKS - */ - while (!$rs->EOF) { - // adodb_pr($rs->fields); - if (strtoupper(trim($rs->fields[2])) == $table && (!$schema || strtoupper($rs->fields[1]) == $schema)) { - $fld = new ADOFieldObject(); - $fld->name = $rs->fields[3]; - $fld->type = $this->ODBCTypes($rs->fields[4]); - - // ref: http://msdn.microsoft.com/library/default.asp?url=/archive/en-us/dnaraccgen/html/msdn_odk.asp - // access uses precision to store length for char/varchar - if ($fld->type == 'C' or $fld->type == 'X') { - if ($this->databaseType == 'access') - $fld->max_length = $rs->fields[6]; - else if ($rs->fields[4] <= -95) // UNICODE - $fld->max_length = $rs->fields[7]/2; - else - $fld->max_length = $rs->fields[7]; - } else - $fld->max_length = $rs->fields[7]; - $fld->not_null = !empty($rs->fields[10]); - $fld->scale = $rs->fields[8]; - $retarr[strtoupper($fld->name)] = $fld; - } else if (sizeof($retarr)>0) - break; - $rs->MoveNext(); - } - $rs->Close(); //-- crashes 4.03pl1 -- why? - - if (empty($retarr)) $retarr = false; - return $retarr; - } - - function Prepare($sql) - { - if (! $this->_bindInputArray) return $sql; // no binding - $stmt = odbc_prepare($this->_connectionID,$sql); - if (!$stmt) { - // we don't know whether odbc driver is parsing prepared stmts, so just return sql - return $sql; - } - return array($sql,$stmt,false); - } - - /* returns queryID or false */ - function _query($sql,$inputarr=false) - { - $this->_error = ''; - - if ($inputarr) { - if (is_array($sql)) { - $stmtid = $sql[1]; - } else { - $stmtid = odbc_prepare($this->_connectionID,$sql); - - if ($stmtid == false) { - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - return false; - } - } - - if (! odbc_execute($stmtid,$inputarr)) { - //@odbc_free_result($stmtid); - if ($this->_haserrorfunctions) { - $this->_errorMsg = odbc_errormsg(); - $this->_errorCode = odbc_error(); - } - return false; - } - - } else if (is_array($sql)) { - $stmtid = $sql[1]; - if (!odbc_execute($stmtid)) { - //@odbc_free_result($stmtid); - if ($this->_haserrorfunctions) { - $this->_errorMsg = odbc_errormsg(); - $this->_errorCode = odbc_error(); - } - return false; - } - } else - $stmtid = odbc_exec($this->_connectionID,$sql); - - $this->_lastAffectedRows = 0; - if ($stmtid) { - if (@odbc_num_fields($stmtid) == 0) { - $this->_lastAffectedRows = odbc_num_rows($stmtid); - $stmtid = true; - } else { - $this->_lastAffectedRows = 0; - odbc_binmode($stmtid,$this->binmode); - odbc_longreadlen($stmtid,$this->maxblobsize); - } - - if ($this->_haserrorfunctions) { - $this->_errorMsg = ''; - $this->_errorCode = 0; - } else - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - } else { - if ($this->_haserrorfunctions) { - $this->_errorMsg = odbc_errormsg(); - $this->_errorCode = odbc_error(); - } else - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - } - return $stmtid; - } - - /* - Insert a null into the blob field of the table first. - Then use UpdateBlob to store the blob. - - Usage: - - $conn->Execute('INSERT INTO blobtable (id, blobcol) VALUES (1, null)'); - $conn->UpdateBlob('blobtable','blobcol',$blob,'id=1'); - */ - function UpdateBlob($table,$column,$val,$where,$blobtype='BLOB') - { - return $this->Execute("UPDATE $table SET $column=? WHERE $where",array($val)) != false; - } - - // returns true or false - function _close() - { - $ret = @odbc_close($this->_connectionID); - $this->_connectionID = false; - return $ret; - } - - function _affectedrows() - { - return $this->_lastAffectedRows; - } - -} - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordSet_odbc extends ADORecordSet { - - var $bind = false; - var $databaseType = "odbc"; - var $dataProvider = "odbc"; - var $useFetchArray; - var $_has_stupid_odbc_fetch_api_change; - - function __construct($id,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - $this->fetchMode = $mode; - - $this->_queryID = $id; - - // the following is required for mysql odbc driver in 4.3.1 -- why? - $this->EOF = false; - $this->_currentRow = -1; - //$this->ADORecordSet($id); - } - - - // returns the field object - function FetchField($fieldOffset = -1) - { - - $off=$fieldOffset+1; // offsets begin at 1 - - $o= new ADOFieldObject(); - $o->name = @odbc_field_name($this->_queryID,$off); - $o->type = @odbc_field_type($this->_queryID,$off); - $o->max_length = @odbc_field_len($this->_queryID,$off); - if (ADODB_ASSOC_CASE == 0) $o->name = strtolower($o->name); - else if (ADODB_ASSOC_CASE == 1) $o->name = strtoupper($o->name); - return $o; - } - - /* Use associative array to get fields array */ - function Fields($colname) - { - if ($this->fetchMode & ADODB_FETCH_ASSOC) return $this->fields[$colname]; - if (!$this->bind) { - $this->bind = array(); - for ($i=0; $i < $this->_numOfFields; $i++) { - $o = $this->FetchField($i); - $this->bind[strtoupper($o->name)] = $i; - } - } - - return $this->fields[$this->bind[strtoupper($colname)]]; - } - - - function _initrs() - { - global $ADODB_COUNTRECS; - $this->_numOfRows = ($ADODB_COUNTRECS) ? @odbc_num_rows($this->_queryID) : -1; - $this->_numOfFields = @odbc_num_fields($this->_queryID); - // some silly drivers such as db2 as/400 and intersystems cache return _numOfRows = 0 - if ($this->_numOfRows == 0) $this->_numOfRows = -1; - //$this->useFetchArray = $this->connection->useFetchArray; - $this->_has_stupid_odbc_fetch_api_change = ADODB_PHPVER >= 0x4200; - } - - function _seek($row) - { - return false; - } - - // speed up SelectLimit() by switching to ADODB_FETCH_NUM as ADODB_FETCH_ASSOC is emulated - function GetArrayLimit($nrows,$offset=-1) - { - if ($offset <= 0) { - $rs = $this->GetArray($nrows); - return $rs; - } - $savem = $this->fetchMode; - $this->fetchMode = ADODB_FETCH_NUM; - $this->Move($offset); - $this->fetchMode = $savem; - - if ($this->fetchMode & ADODB_FETCH_ASSOC) { - $this->fields = $this->GetRowAssoc(ADODB_ASSOC_CASE); - } - - $results = array(); - $cnt = 0; - while (!$this->EOF && $nrows != $cnt) { - $results[$cnt++] = $this->fields; - $this->MoveNext(); - } - - return $results; - } - - - function MoveNext() - { - if ($this->_numOfRows != 0 && !$this->EOF) { - $this->_currentRow++; - - if ($this->_has_stupid_odbc_fetch_api_change) - $rez = @odbc_fetch_into($this->_queryID,$this->fields); - else { - $row = 0; - $rez = @odbc_fetch_into($this->_queryID,$row,$this->fields); - } - if ($rez) { - if ($this->fetchMode & ADODB_FETCH_ASSOC) { - $this->fields = $this->GetRowAssoc(ADODB_ASSOC_CASE); - } - return true; - } - } - $this->fields = false; - $this->EOF = true; - return false; - } - - function _fetch() - { - - if ($this->_has_stupid_odbc_fetch_api_change) - $rez = @odbc_fetch_into($this->_queryID,$this->fields); - else { - $row = 0; - $rez = @odbc_fetch_into($this->_queryID,$row,$this->fields); - } - if ($rez) { - if ($this->fetchMode & ADODB_FETCH_ASSOC) { - $this->fields = $this->GetRowAssoc(ADODB_ASSOC_CASE); - } - return true; - } - $this->fields = false; - return false; - } - - function _close() - { - return @odbc_free_result($this->_queryID); - } - -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-odbc_db2.inc.php b/src/adodb5/drivers/adodb-odbc_db2.inc.php deleted file mode 100644 index 4baca701..00000000 --- a/src/adodb5/drivers/adodb-odbc_db2.inc.php +++ /dev/null @@ -1,368 +0,0 @@ -curMode = SQL_CUR_USE_ODBC; -$db->Connect($dsn, $userid, $pwd); - - - -USING CLI INTERFACE -=================== - -I have had reports that the $host and $database params have to be reversed in -Connect() when using the CLI interface. From Halmai Csongor csongor.halmai#nexum.hu: - -> The symptom is that if I change the database engine from postgres or any other to DB2 then the following -> connection command becomes wrong despite being described this version to be correct in the docs. -> -> $connection_object->Connect( $DATABASE_HOST, $DATABASE_AUTH_USER_NAME, $DATABASE_AUTH_PASSWORD, $DATABASE_NAME ) -> -> In case of DB2 I had to swap the first and last arguments in order to connect properly. - - -System Error 5 -============== -IF you get a System Error 5 when trying to Connect/Load, it could be a permission problem. Give the user connecting -to DB2 full rights to the DB2 SQLLIB directory, and place the user in the DBUSERS group. -*/ - -// security - hide paths -if (!defined('ADODB_DIR')) die(); - -if (!defined('_ADODB_ODBC_LAYER')) { - include(ADODB_DIR."/drivers/adodb-odbc.inc.php"); -} -if (!defined('ADODB_ODBC_DB2')){ -define('ADODB_ODBC_DB2',1); - -class ADODB_ODBC_DB2 extends ADODB_odbc { - var $databaseType = "db2"; - var $concat_operator = '||'; - var $sysTime = 'CURRENT TIME'; - var $sysDate = 'CURRENT DATE'; - var $sysTimeStamp = 'CURRENT TIMESTAMP'; - // The complete string representation of a timestamp has the form - // yyyy-mm-dd-hh.mm.ss.nnnnnn. - var $fmtTimeStamp = "'Y-m-d-H.i.s'"; - var $ansiOuter = true; - var $identitySQL = 'values IDENTITY_VAL_LOCAL()'; - var $_bindInputArray = true; - var $hasInsertID = true; - var $rsPrefix = 'ADORecordset_odbc_'; - - function ADODB_DB2() - { - if (strncmp(PHP_OS,'WIN',3) === 0) $this->curmode = SQL_CUR_USE_ODBC; - $this->ADODB_odbc(); - } - - function IfNull( $field, $ifNull ) - { - return " COALESCE($field, $ifNull) "; // if DB2 UDB - } - - function ServerInfo() - { - //odbc_setoption($this->_connectionID,1,101 /*SQL_ATTR_ACCESS_MODE*/, 1 /*SQL_MODE_READ_ONLY*/); - $vers = $this->GetOne('select versionnumber from sysibm.sysversions'); - //odbc_setoption($this->_connectionID,1,101, 0 /*SQL_MODE_READ_WRITE*/); - return array('description'=>'DB2 ODBC driver', 'version'=>$vers); - } - - function _insertid() - { - return $this->GetOne($this->identitySQL); - } - - function RowLock($tables,$where,$flds='1 as ignore') - { - if ($this->_autocommit) $this->BeginTrans(); - return $this->GetOne("select $flds from $tables where $where for update"); - } - - function MetaTables($ttype=false,$showSchema=false, $qtable="%", $qschema="%") - { - global $ADODB_FETCH_MODE; - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $qid = odbc_tables($this->_connectionID, "", $qschema, $qtable, ""); - - $rs = new ADORecordSet_odbc($qid); - - $ADODB_FETCH_MODE = $savem; - if (!$rs) { - $false = false; - return $false; - } - $rs->_has_stupid_odbc_fetch_api_change = $this->_has_stupid_odbc_fetch_api_change; - - $arr = $rs->GetArray(); - //print_r($arr); - - $rs->Close(); - $arr2 = array(); - - if ($ttype) { - $isview = strncmp($ttype,'V',1) === 0; - } - for ($i=0; $i < sizeof($arr); $i++) { - - if (!$arr[$i][2]) continue; - if (strncmp($arr[$i][1],'SYS',3) === 0) continue; - - $type = $arr[$i][3]; - - if ($showSchema) $arr[$i][2] = $arr[$i][1].'.'.$arr[$i][2]; - - if ($ttype) { - if ($isview) { - if (strncmp($type,'V',1) === 0) $arr2[] = $arr[$i][2]; - } else if (strncmp($type,'T',1) === 0) $arr2[] = $arr[$i][2]; - } else if (strncmp($type,'S',1) !== 0) $arr2[] = $arr[$i][2]; - } - return $arr2; - } - - function MetaIndexes ($table, $primary = FALSE, $owner=false) - { - // save old fetch mode - global $ADODB_FETCH_MODE; - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== FALSE) { - $savem = $this->SetFetchMode(FALSE); - } - $false = false; - // get index details - $table = strtoupper($table); - $SQL="SELECT NAME, UNIQUERULE, COLNAMES FROM SYSIBM.SYSINDEXES WHERE TBNAME='$table'"; - if ($primary) - $SQL.= " AND UNIQUERULE='P'"; - $rs = $this->Execute($SQL); - if (!is_object($rs)) { - if (isset($savem)) - $this->SetFetchMode($savem); - $ADODB_FETCH_MODE = $save; - return $false; - } - $indexes = array (); - // parse index data into array - while ($row = $rs->FetchRow()) { - $indexes[$row[0]] = array( - 'unique' => ($row[1] == 'U' || $row[1] == 'P'), - 'columns' => array() - ); - $cols = ltrim($row[2],'+'); - $indexes[$row[0]]['columns'] = explode('+', $cols); - } - if (isset($savem)) { - $this->SetFetchMode($savem); - $ADODB_FETCH_MODE = $save; - } - return $indexes; - } - - // Format date column in sql string given an input format that understands Y M D - function SQLDate($fmt, $col=false) - { - // use right() and replace() ? - if (!$col) $col = $this->sysDate; - $s = ''; - - $len = strlen($fmt); - for ($i=0; $i < $len; $i++) { - if ($s) $s .= '||'; - $ch = $fmt[$i]; - switch($ch) { - case 'Y': - case 'y': - $s .= "char(year($col))"; - break; - case 'M': - $s .= "substr(monthname($col),1,3)"; - break; - case 'm': - $s .= "right(digits(month($col)),2)"; - break; - case 'D': - case 'd': - $s .= "right(digits(day($col)),2)"; - break; - case 'H': - case 'h': - if ($col != $this->sysDate) $s .= "right(digits(hour($col)),2)"; - else $s .= "''"; - break; - case 'i': - case 'I': - if ($col != $this->sysDate) - $s .= "right(digits(minute($col)),2)"; - else $s .= "''"; - break; - case 'S': - case 's': - if ($col != $this->sysDate) - $s .= "right(digits(second($col)),2)"; - else $s .= "''"; - break; - default: - if ($ch == '\\') { - $i++; - $ch = substr($fmt,$i,1); - } - $s .= $this->qstr($ch); - } - } - return $s; - } - - - function SelectLimit($sql,$nrows=-1,$offset=-1,$inputArr=false) - { - $nrows = (integer) $nrows; - if ($offset <= 0) { - // could also use " OPTIMIZE FOR $nrows ROWS " - if ($nrows >= 0) $sql .= " FETCH FIRST $nrows ROWS ONLY "; - $rs = $this->Execute($sql,$inputArr); - } else { - if ($offset > 0 && $nrows < 0); - else { - $nrows += $offset; - $sql .= " FETCH FIRST $nrows ROWS ONLY "; - } - $rs = ADOConnection::SelectLimit($sql,-1,$offset,$inputArr); - } - - return $rs; - } - -}; - - -class ADORecordSet_odbc_db2 extends ADORecordSet_odbc { - - var $databaseType = "db2"; - - function ADORecordSet_db2($id,$mode=false) - { - $this->ADORecordSet_odbc($id,$mode); - } - - function MetaType($t,$len=-1,$fieldobj=false) - { - if (is_object($t)) { - $fieldobj = $t; - $t = $fieldobj->type; - $len = $fieldobj->max_length; - } - - switch (strtoupper($t)) { - case 'VARCHAR': - case 'CHAR': - case 'CHARACTER': - case 'C': - if ($len <= $this->blobSize) return 'C'; - - case 'LONGCHAR': - case 'TEXT': - case 'CLOB': - case 'DBCLOB': // double-byte - case 'X': - return 'X'; - - case 'BLOB': - case 'GRAPHIC': - case 'VARGRAPHIC': - return 'B'; - - case 'DATE': - case 'D': - return 'D'; - - case 'TIME': - case 'TIMESTAMP': - case 'T': - return 'T'; - - //case 'BOOLEAN': - //case 'BIT': - // return 'L'; - - //case 'COUNTER': - // return 'R'; - - case 'INT': - case 'INTEGER': - case 'BIGINT': - case 'SMALLINT': - case 'I': - return 'I'; - - default: return 'N'; - } - } -} - -} //define -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-odbc_mssql.inc.php b/src/adodb5/drivers/adodb-odbc_mssql.inc.php deleted file mode 100644 index 521ae9a1..00000000 --- a/src/adodb5/drivers/adodb-odbc_mssql.inc.php +++ /dev/null @@ -1,306 +0,0 @@ -ADODB_odbc(); - //$this->curmode = SQL_CUR_USE_ODBC; - } - - // crashes php... - function ServerInfo() - { - global $ADODB_FETCH_MODE; - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $row = $this->GetRow("execute sp_server_info 2"); - $ADODB_FETCH_MODE = $save; - if (!is_array($row)) return false; - $arr['description'] = $row[2]; - $arr['version'] = ADOConnection::_findvers($arr['description']); - return $arr; - } - - function IfNull( $field, $ifNull ) - { - return " ISNULL($field, $ifNull) "; // if MS SQL Server - } - - function _insertid() - { - // SCOPE_IDENTITY() - // Returns the last IDENTITY value inserted into an IDENTITY column in - // the same scope. A scope is a module -- a stored procedure, trigger, - // function, or batch. Thus, two statements are in the same scope if - // they are in the same stored procedure, function, or batch. - return $this->GetOne($this->identitySQL); - } - - - function MetaForeignKeys($table, $owner=false, $upper=false) - { - global $ADODB_FETCH_MODE; - - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $table = $this->qstr(strtoupper($table)); - - $sql = -"select object_name(constid) as constraint_name, - col_name(fkeyid, fkey) as column_name, - object_name(rkeyid) as referenced_table_name, - col_name(rkeyid, rkey) as referenced_column_name -from sysforeignkeys -where upper(object_name(fkeyid)) = $table -order by constraint_name, referenced_table_name, keyno"; - - $constraints = $this->GetArray($sql); - - $ADODB_FETCH_MODE = $save; - - $arr = false; - foreach($constraints as $constr) { - //print_r($constr); - $arr[$constr[0]][$constr[2]][] = $constr[1].'='.$constr[3]; - } - if (!$arr) return false; - - $arr2 = false; - - foreach($arr as $k => $v) { - foreach($v as $a => $b) { - if ($upper) $a = strtoupper($a); - $arr2[$a] = $b; - } - } - return $arr2; - } - - function MetaTables($ttype=false,$showSchema=false,$mask=false) - { - if ($mask) {$this->debug=1; - $save = $this->metaTablesSQL; - $mask = $this->qstr($mask); - $this->metaTablesSQL .= " AND name like $mask"; - } - $ret = ADOConnection::MetaTables($ttype,$showSchema); - - if ($mask) { - $this->metaTablesSQL = $save; - } - return $ret; - } - - function MetaColumns($table, $normalize=true) - { - $arr = ADOConnection::MetaColumns($table); - return $arr; - } - - - function MetaIndexes($table,$primary=false, $owner=false) - { - $table = $this->qstr($table); - - $sql = "SELECT i.name AS ind_name, C.name AS col_name, USER_NAME(O.uid) AS Owner, c.colid, k.Keyno, - CASE WHEN I.indid BETWEEN 1 AND 254 AND (I.status & 2048 = 2048 OR I.Status = 16402 AND O.XType = 'V') THEN 1 ELSE 0 END AS IsPK, - CASE WHEN I.status & 2 = 2 THEN 1 ELSE 0 END AS IsUnique - FROM dbo.sysobjects o INNER JOIN dbo.sysindexes I ON o.id = i.id - INNER JOIN dbo.sysindexkeys K ON I.id = K.id AND I.Indid = K.Indid - INNER JOIN dbo.syscolumns c ON K.id = C.id AND K.colid = C.Colid - WHERE LEFT(i.name, 8) <> '_WA_Sys_' AND o.status >= 0 AND O.Name LIKE $table - ORDER BY O.name, I.Name, K.keyno"; - - global $ADODB_FETCH_MODE; - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== FALSE) { - $savem = $this->SetFetchMode(FALSE); - } - - $rs = $this->Execute($sql); - if (isset($savem)) { - $this->SetFetchMode($savem); - } - $ADODB_FETCH_MODE = $save; - - if (!is_object($rs)) { - return FALSE; - } - - $indexes = array(); - while ($row = $rs->FetchRow()) { - if (!$primary && $row[5]) continue; - - $indexes[$row[0]]['unique'] = $row[6]; - $indexes[$row[0]]['columns'][] = $row[1]; - } - return $indexes; - } - - function _query($sql,$inputarr=false) - { - if (is_string($sql)) $sql = str_replace('||','+',$sql); - return ADODB_odbc::_query($sql,$inputarr); - } - - function SetTransactionMode( $transaction_mode ) - { - $this->_transmode = $transaction_mode; - if (empty($transaction_mode)) { - $this->Execute('SET TRANSACTION ISOLATION LEVEL READ COMMITTED'); - return; - } - if (!stristr($transaction_mode,'isolation')) $transaction_mode = 'ISOLATION LEVEL '.$transaction_mode; - $this->Execute("SET TRANSACTION ".$transaction_mode); - } - - // "Stein-Aksel Basma" - // tested with MSSQL 2000 - function MetaPrimaryKeys($table) - { - global $ADODB_FETCH_MODE; - - $schema = ''; - $this->_findschema($table,$schema); - //if (!$schema) $schema = $this->database; - if ($schema) $schema = "and k.table_catalog like '$schema%'"; - - $sql = "select distinct k.column_name,ordinal_position from information_schema.key_column_usage k, - information_schema.table_constraints tc - where tc.constraint_name = k.constraint_name and tc.constraint_type = - 'PRIMARY KEY' and k.table_name = '$table' $schema order by ordinal_position "; - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; - $a = $this->GetCol($sql); - $ADODB_FETCH_MODE = $savem; - - if ($a && sizeof($a)>0) return $a; - $false = false; - return $false; - } - - function SelectLimit($sql,$nrows=-1,$offset=-1, $inputarr=false,$secs2cache=0) - { - if ($nrows > 0 && $offset <= 0) { - $sql = preg_replace( - '/(^\s*select\s+(distinctrow|distinct)?)/i','\\1 '.$this->hasTop." $nrows ",$sql); - $rs = $this->Execute($sql,$inputarr); - } else - $rs = ADOConnection::SelectLimit($sql,$nrows,$offset,$inputarr,$secs2cache); - - return $rs; - } - - // Format date column in sql string given an input format that understands Y M D - function SQLDate($fmt, $col=false) - { - if (!$col) $col = $this->sysTimeStamp; - $s = ''; - - $len = strlen($fmt); - for ($i=0; $i < $len; $i++) { - if ($s) $s .= '+'; - $ch = $fmt[$i]; - switch($ch) { - case 'Y': - case 'y': - $s .= "datename(yyyy,$col)"; - break; - case 'M': - $s .= "convert(char(3),$col,0)"; - break; - case 'm': - $s .= "replace(str(month($col),2),' ','0')"; - break; - case 'Q': - case 'q': - $s .= "datename(quarter,$col)"; - break; - case 'D': - case 'd': - $s .= "replace(str(day($col),2),' ','0')"; - break; - case 'h': - $s .= "substring(convert(char(14),$col,0),13,2)"; - break; - - case 'H': - $s .= "replace(str(datepart(hh,$col),2),' ','0')"; - break; - - case 'i': - $s .= "replace(str(datepart(mi,$col),2),' ','0')"; - break; - case 's': - $s .= "replace(str(datepart(ss,$col),2),' ','0')"; - break; - case 'a': - case 'A': - $s .= "substring(convert(char(19),$col,0),18,2)"; - break; - - default: - if ($ch == '\\') { - $i++; - $ch = substr($fmt,$i,1); - } - $s .= $this->qstr($ch); - break; - } - } - return $s; - } - -} - -class ADORecordSet_odbc_mssql extends ADORecordSet_odbc { - - var $databaseType = 'odbc_mssql'; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_odbc($id,$mode); - } -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-odbc_oracle.inc.php b/src/adodb5/drivers/adodb-odbc_oracle.inc.php deleted file mode 100644 index 28cee9a9..00000000 --- a/src/adodb5/drivers/adodb-odbc_oracle.inc.php +++ /dev/null @@ -1,110 +0,0 @@ -ADODB_odbc(); - } - - function MetaTables() - { - $false = false; - $rs = $this->Execute($this->metaTablesSQL); - if ($rs === false) return $false; - $arr = $rs->GetArray(); - $arr2 = array(); - for ($i=0; $i < sizeof($arr); $i++) { - $arr2[] = $arr[$i][0]; - } - $rs->Close(); - return $arr2; - } - - function MetaColumns($table, $normalize=true) - { - global $ADODB_FETCH_MODE; - - $rs = $this->Execute(sprintf($this->metaColumnsSQL,strtoupper($table))); - if ($rs === false) { - $false = false; - return $false; - } - $retarr = array(); - while (!$rs->EOF) { //print_r($rs->fields); - $fld = new ADOFieldObject(); - $fld->name = $rs->fields[0]; - $fld->type = $rs->fields[1]; - $fld->max_length = $rs->fields[2]; - - - if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld; - else $retarr[strtoupper($fld->name)] = $fld; - - $rs->MoveNext(); - } - $rs->Close(); - return $retarr; - } - - // returns true or false - function _connect($argDSN, $argUsername, $argPassword, $argDatabasename) - { - $this->_connectionID = odbc_connect($argDSN,$argUsername,$argPassword,SQL_CUR_USE_ODBC ); - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - - $this->Execute("ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'"); - //if ($this->_connectionID) odbc_autocommit($this->_connectionID,true); - return $this->_connectionID != false; - } - // returns true or false - function _pconnect($argDSN, $argUsername, $argPassword, $argDatabasename) - { - $this->_connectionID = odbc_pconnect($argDSN,$argUsername,$argPassword,SQL_CUR_USE_ODBC ); - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - - $this->Execute("ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'"); - //if ($this->_connectionID) odbc_autocommit($this->_connectionID,true); - return $this->_connectionID != false; - } -} - -class ADORecordSet_odbc_oracle extends ADORecordSet_odbc { - - var $databaseType = 'odbc_oracle'; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_odbc($id,$mode); - } -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-odbtp.inc.php b/src/adodb5/drivers/adodb-odbtp.inc.php deleted file mode 100644 index 938aaefc..00000000 --- a/src/adodb5/drivers/adodb-odbtp.inc.php +++ /dev/null @@ -1,834 +0,0 @@ - - -// security - hide paths -if (!defined('ADODB_DIR')) die(); - -define("_ADODB_ODBTP_LAYER", 2 ); - -class ADODB_odbtp extends ADOConnection{ - var $databaseType = "odbtp"; - var $dataProvider = "odbtp"; - var $fmtDate = "'Y-m-d'"; - var $fmtTimeStamp = "'Y-m-d, h:i:sA'"; - var $replaceQuote = "''"; // string to use to replace quotes - var $odbc_driver = 0; - var $hasAffectedRows = true; - var $hasInsertID = false; - var $hasGenID = true; - var $hasMoveFirst = true; - - var $_genSeqSQL = "create table %s (seq_name char(30) not null unique , seq_value integer not null)"; - var $_dropSeqSQL = "delete from adodb_seq where seq_name = '%s'"; - var $_bindInputArray = false; - var $_useUnicodeSQL = false; - var $_canPrepareSP = false; - var $_dontPoolDBC = true; - - function __construct() - { - } - - function ServerInfo() - { - return array('description' => @odbtp_get_attr( ODB_ATTR_DBMSNAME, $this->_connectionID), - 'version' => @odbtp_get_attr( ODB_ATTR_DBMSVER, $this->_connectionID)); - } - - function ErrorMsg() - { - if ($this->_errorMsg !== false) return $this->_errorMsg; - if (empty($this->_connectionID)) return @odbtp_last_error(); - return @odbtp_last_error($this->_connectionID); - } - - function ErrorNo() - { - if ($this->_errorCode !== false) return $this->_errorCode; - if (empty($this->_connectionID)) return @odbtp_last_error_state(); - return @odbtp_last_error_state($this->_connectionID); - } -/* - function DBDate($d,$isfld=false) - { - if (empty($d) && $d !== 0) return 'null'; - if ($isfld) return "convert(date, $d, 120)"; - - if (is_string($d)) $d = ADORecordSet::UnixDate($d); - $d = adodb_date($this->fmtDate,$d); - return "convert(date, $d, 120)"; - } - - function DBTimeStamp($d,$isfld=false) - { - if (empty($d) && $d !== 0) return 'null'; - if ($isfld) return "convert(datetime, $d, 120)"; - - if (is_string($d)) $d = ADORecordSet::UnixDate($d); - $d = adodb_date($this->fmtDate,$d); - return "convert(datetime, $d, 120)"; - } -*/ - - function _insertid() - { - // SCOPE_IDENTITY() - // Returns the last IDENTITY value inserted into an IDENTITY column in - // the same scope. A scope is a module -- a stored procedure, trigger, - // function, or batch. Thus, two statements are in the same scope if - // they are in the same stored procedure, function, or batch. - return $this->GetOne($this->identitySQL); - } - - function _affectedrows() - { - if ($this->_queryID) { - return @odbtp_affected_rows ($this->_queryID); - } else - return 0; - } - - function CreateSequence($seqname='adodbseq',$start=1) - { - //verify existence - $num = $this->GetOne("select seq_value from adodb_seq"); - $seqtab='adodb_seq'; - if( $this->odbc_driver == ODB_DRIVER_FOXPRO ) { - $path = @odbtp_get_attr( ODB_ATTR_DATABASENAME, $this->_connectionID ); - //if using vfp dbc file - if( !strcasecmp(strrchr($path, '.'), '.dbc') ) - $path = substr($path,0,strrpos($path,'\/')); - $seqtab = $path . '/' . $seqtab; - } - if($num == false) { - if (empty($this->_genSeqSQL)) return false; - $ok = $this->Execute(sprintf($this->_genSeqSQL ,$seqtab)); - } - $num = $this->GetOne("select seq_value from adodb_seq where seq_name='$seqname'"); - if ($num) { - return false; - } - $start -= 1; - return $this->Execute("insert into adodb_seq values('$seqname',$start)"); - } - - function DropSequence($seqname) - { - if (empty($this->_dropSeqSQL)) return false; - return $this->Execute(sprintf($this->_dropSeqSQL,$seqname)); - } - - function GenID($seq='adodbseq',$start=1) - { - $seqtab='adodb_seq'; - if( $this->odbc_driver == ODB_DRIVER_FOXPRO) { - $path = @odbtp_get_attr( ODB_ATTR_DATABASENAME, $this->_connectionID ); - //if using vfp dbc file - if( !strcasecmp(strrchr($path, '.'), '.dbc') ) - $path = substr($path,0,strrpos($path,'\/')); - $seqtab = $path . '/' . $seqtab; - } - $MAXLOOPS = 100; - while (--$MAXLOOPS>=0) { - $num = $this->GetOne("select seq_value from adodb_seq where seq_name='$seq'"); - if ($num === false) { - //verify if abodb_seq table exist - $ok = $this->GetOne("select seq_value from adodb_seq "); - if(!$ok) { - //creating the sequence table adodb_seq - $this->Execute(sprintf($this->_genSeqSQL ,$seqtab)); - } - $start -= 1; - $num = '0'; - $ok = $this->Execute("insert into adodb_seq values('$seq',$start)"); - if (!$ok) return false; - } - $ok = $this->Execute("update adodb_seq set seq_value=seq_value+1 where seq_name='$seq'"); - if($ok) { - $num += 1; - $this->genID = $num; - return $num; - } - } - if ($fn = $this->raiseErrorFn) { - $fn($this->databaseType,'GENID',-32000,"Unable to generate unique id after $MAXLOOPS attempts",$seq,$num); - } - return false; - } - - //example for $UserOrDSN - //for visual fox : DRIVER={Microsoft Visual FoxPro Driver};SOURCETYPE=DBF;SOURCEDB=c:\YourDbfFileDir;EXCLUSIVE=NO; - //for visual fox dbc: DRIVER={Microsoft Visual FoxPro Driver};SOURCETYPE=DBC;SOURCEDB=c:\YourDbcFileDir\mydb.dbc;EXCLUSIVE=NO; - //for access : DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\path_to_access_db\base_test.mdb;UID=root;PWD=; - //for mssql : DRIVER={SQL Server};SERVER=myserver;UID=myuid;PWD=mypwd;DATABASE=OdbtpTest; - //if uid & pwd can be separate - function _connect($HostOrInterface, $UserOrDSN='', $argPassword='', $argDatabase='') - { - $this->_connectionID = odbtp_connect($HostOrInterface,$UserOrDSN,$argPassword,$argDatabase); - if ($this->_connectionID === false) { - $this->_errorMsg = $this->ErrorMsg() ; - return false; - } - - odbtp_convert_datetime($this->_connectionID,true); - - if ($this->_dontPoolDBC) { - if (function_exists('odbtp_dont_pool_dbc')) - @odbtp_dont_pool_dbc($this->_connectionID); - } - else { - $this->_dontPoolDBC = true; - } - $this->odbc_driver = @odbtp_get_attr(ODB_ATTR_DRIVER, $this->_connectionID); - $dbms = strtolower(@odbtp_get_attr(ODB_ATTR_DBMSNAME, $this->_connectionID)); - $this->odbc_name = $dbms; - - // Account for inconsistent DBMS names - if( $this->odbc_driver == ODB_DRIVER_ORACLE ) - $dbms = 'oracle'; - else if( $this->odbc_driver == ODB_DRIVER_SYBASE ) - $dbms = 'sybase'; - - // Set DBMS specific attributes - switch( $dbms ) { - case 'microsoft sql server': - $this->databaseType = 'odbtp_mssql'; - $this->fmtDate = "'Y-m-d'"; - $this->fmtTimeStamp = "'Y-m-d h:i:sA'"; - $this->sysDate = 'convert(datetime,convert(char,GetDate(),102),102)'; - $this->sysTimeStamp = 'GetDate()'; - $this->ansiOuter = true; - $this->leftOuter = '*='; - $this->rightOuter = '=*'; - $this->hasTop = 'top'; - $this->hasInsertID = true; - $this->hasTransactions = true; - $this->_bindInputArray = true; - $this->_canSelectDb = true; - $this->substr = "substring"; - $this->length = 'len'; - $this->identitySQL = 'select SCOPE_IDENTITY()'; - $this->metaDatabasesSQL = "select name from master..sysdatabases where name <> 'master'"; - $this->_canPrepareSP = true; - break; - case 'access': - $this->databaseType = 'odbtp_access'; - $this->fmtDate = "#Y-m-d#"; - $this->fmtTimeStamp = "#Y-m-d h:i:sA#"; - $this->sysDate = "FORMAT(NOW,'yyyy-mm-dd')"; - $this->sysTimeStamp = 'NOW'; - $this->hasTop = 'top'; - $this->hasTransactions = false; - $this->_canPrepareSP = true; // For MS Access only. - break; - case 'visual foxpro': - $this->databaseType = 'odbtp_vfp'; - $this->fmtDate = "{^Y-m-d}"; - $this->fmtTimeStamp = "{^Y-m-d, h:i:sA}"; - $this->sysDate = 'date()'; - $this->sysTimeStamp = 'datetime()'; - $this->ansiOuter = true; - $this->hasTop = 'top'; - $this->hasTransactions = false; - $this->replaceQuote = "'+chr(39)+'"; - $this->true = '.T.'; - $this->false = '.F.'; - - break; - case 'oracle': - $this->databaseType = 'odbtp_oci8'; - $this->fmtDate = "'Y-m-d 00:00:00'"; - $this->fmtTimeStamp = "'Y-m-d h:i:sA'"; - $this->sysDate = 'TRUNC(SYSDATE)'; - $this->sysTimeStamp = 'SYSDATE'; - $this->hasTransactions = true; - $this->_bindInputArray = true; - $this->concat_operator = '||'; - break; - case 'sybase': - $this->databaseType = 'odbtp_sybase'; - $this->fmtDate = "'Y-m-d'"; - $this->fmtTimeStamp = "'Y-m-d H:i:s'"; - $this->sysDate = 'GetDate()'; - $this->sysTimeStamp = 'GetDate()'; - $this->leftOuter = '*='; - $this->rightOuter = '=*'; - $this->hasInsertID = true; - $this->hasTransactions = true; - $this->identitySQL = 'select SCOPE_IDENTITY()'; - break; - default: - $this->databaseType = 'odbtp'; - if( @odbtp_get_attr(ODB_ATTR_TXNCAPABLE, $this->_connectionID) ) - $this->hasTransactions = true; - else - $this->hasTransactions = false; - } - @odbtp_set_attr(ODB_ATTR_FULLCOLINFO, TRUE, $this->_connectionID ); - - if ($this->_useUnicodeSQL ) - @odbtp_set_attr(ODB_ATTR_UNICODESQL, TRUE, $this->_connectionID); - - return true; - } - - function _pconnect($HostOrInterface, $UserOrDSN='', $argPassword='', $argDatabase='') - { - $this->_dontPoolDBC = false; - return $this->_connect($HostOrInterface, $UserOrDSN, $argPassword, $argDatabase); - } - - function SelectDB($dbName) - { - if (!@odbtp_select_db($dbName, $this->_connectionID)) { - return false; - } - $this->database = $dbName; - $this->databaseName = $dbName; # obsolete, retained for compat with older adodb versions - return true; - } - - function MetaTables($ttype='',$showSchema=false,$mask=false) - { - global $ADODB_FETCH_MODE; - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== false) $savefm = $this->SetFetchMode(false); - - $arr = $this->GetArray("||SQLTables||||$ttype"); - - if (isset($savefm)) $this->SetFetchMode($savefm); - $ADODB_FETCH_MODE = $savem; - - $arr2 = array(); - for ($i=0; $i < sizeof($arr); $i++) { - if ($arr[$i][3] == 'SYSTEM TABLE' ) continue; - if ($arr[$i][2]) - $arr2[] = $showSchema && $arr[$i][1]? $arr[$i][1].'.'.$arr[$i][2] : $arr[$i][2]; - } - return $arr2; - } - - function MetaColumns($table,$upper=true) - { - global $ADODB_FETCH_MODE; - - $schema = false; - $this->_findschema($table,$schema); - if ($upper) $table = strtoupper($table); - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== false) $savefm = $this->SetFetchMode(false); - - $rs = $this->Execute( "||SQLColumns||$schema|$table" ); - - if (isset($savefm)) $this->SetFetchMode($savefm); - $ADODB_FETCH_MODE = $savem; - - if (!$rs || $rs->EOF) { - $false = false; - return $false; - } - $retarr = array(); - while (!$rs->EOF) { - //print_r($rs->fields); - if (strtoupper($rs->fields[2]) == $table) { - $fld = new ADOFieldObject(); - $fld->name = $rs->fields[3]; - $fld->type = $rs->fields[5]; - $fld->max_length = $rs->fields[6]; - $fld->not_null = !empty($rs->fields[9]); - $fld->scale = $rs->fields[7]; - if (isset($rs->fields[12])) // vfp does not have field 12 - if (!is_null($rs->fields[12])) { - $fld->has_default = true; - $fld->default_value = $rs->fields[12]; - } - $retarr[strtoupper($fld->name)] = $fld; - } else if (!empty($retarr)) - break; - $rs->MoveNext(); - } - $rs->Close(); - - return $retarr; - } - - function MetaPrimaryKeys($table, $owner='') - { - global $ADODB_FETCH_MODE; - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $arr = $this->GetArray("||SQLPrimaryKeys||$owner|$table"); - $ADODB_FETCH_MODE = $savem; - - //print_r($arr); - $arr2 = array(); - for ($i=0; $i < sizeof($arr); $i++) { - if ($arr[$i][3]) $arr2[] = $arr[$i][3]; - } - return $arr2; - } - - function MetaForeignKeys($table, $owner='', $upper=false) - { - global $ADODB_FETCH_MODE; - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $constraints = $this->GetArray("||SQLForeignKeys|||||$owner|$table"); - $ADODB_FETCH_MODE = $savem; - - $arr = false; - foreach($constraints as $constr) { - //print_r($constr); - $arr[$constr[11]][$constr[2]][] = $constr[7].'='.$constr[3]; - } - if (!$arr) { - $false = false; - return $false; - } - - $arr2 = array(); - - foreach($arr as $k => $v) { - foreach($v as $a => $b) { - if ($upper) $a = strtoupper($a); - $arr2[$a] = $b; - } - } - return $arr2; - } - - function BeginTrans() - { - if (!$this->hasTransactions) return false; - if ($this->transOff) return true; - $this->transCnt += 1; - $this->autoCommit = false; - if (defined('ODB_TXN_DEFAULT')) - $txn = ODB_TXN_DEFAULT; - else - $txn = ODB_TXN_READUNCOMMITTED; - $rs = @odbtp_set_attr(ODB_ATTR_TRANSACTIONS,$txn,$this->_connectionID); - if(!$rs) return false; - return true; - } - - function CommitTrans($ok=true) - { - if ($this->transOff) return true; - if (!$ok) return $this->RollbackTrans(); - if ($this->transCnt) $this->transCnt -= 1; - $this->autoCommit = true; - if( ($ret = @odbtp_commit($this->_connectionID)) ) - $ret = @odbtp_set_attr(ODB_ATTR_TRANSACTIONS, ODB_TXN_NONE, $this->_connectionID);//set transaction off - return $ret; - } - - function RollbackTrans() - { - if ($this->transOff) return true; - if ($this->transCnt) $this->transCnt -= 1; - $this->autoCommit = true; - if( ($ret = @odbtp_rollback($this->_connectionID)) ) - $ret = @odbtp_set_attr(ODB_ATTR_TRANSACTIONS, ODB_TXN_NONE, $this->_connectionID);//set transaction off - return $ret; - } - - function SelectLimit($sql,$nrows=-1,$offset=-1, $inputarr=false,$secs2cache=0) - { - // TOP requires ORDER BY for Visual FoxPro - if( $this->odbc_driver == ODB_DRIVER_FOXPRO ) { - if (!preg_match('/ORDER[ \t\r\n]+BY/is',$sql)) $sql .= ' ORDER BY 1'; - } - $ret = ADOConnection::SelectLimit($sql,$nrows,$offset,$inputarr,$secs2cache); - return $ret; - } - - function Prepare($sql) - { - if (! $this->_bindInputArray) return $sql; // no binding - - $this->_errorMsg = false; - $this->_errorCode = false; - - $stmt = @odbtp_prepare($sql,$this->_connectionID); - if (!$stmt) { - // print "Prepare Error for ($sql) ".$this->ErrorMsg()."
"; - return $sql; - } - return array($sql,$stmt,false); - } - - function PrepareSP($sql) - { - if (!$this->_canPrepareSP) return $sql; // Can't prepare procedures - - $this->_errorMsg = false; - $this->_errorCode = false; - - $stmt = @odbtp_prepare_proc($sql,$this->_connectionID); - if (!$stmt) return false; - return array($sql,$stmt); - } - - /* - Usage: - $stmt = $db->PrepareSP('SP_RUNSOMETHING'); -- takes 2 params, @myid and @group - - # note that the parameter does not have @ in front! - $db->Parameter($stmt,$id,'myid'); - $db->Parameter($stmt,$group,'group',false,64); - $db->Parameter($stmt,$group,'photo',false,100000,ODB_BINARY); - $db->Execute($stmt); - - @param $stmt Statement returned by Prepare() or PrepareSP(). - @param $var PHP variable to bind to. Can set to null (for isNull support). - @param $name Name of stored procedure variable name to bind to. - @param [$isOutput] Indicates direction of parameter 0/false=IN 1=OUT 2= IN/OUT. This is ignored in odbtp. - @param [$maxLen] Holds an maximum length of the variable. - @param [$type] The data type of $var. Legal values depend on driver. - - See odbtp_attach_param documentation at http://odbtp.sourceforge.net. - */ - function Parameter(&$stmt, &$var, $name, $isOutput=false, $maxLen=0, $type=0) - { - if ( $this->odbc_driver == ODB_DRIVER_JET ) { - $name = '['.$name.']'; - if( !$type && $this->_useUnicodeSQL - && @odbtp_param_bindtype($stmt[1], $name) == ODB_CHAR ) - { - $type = ODB_WCHAR; - } - } - else { - $name = '@'.$name; - } - return @odbtp_attach_param($stmt[1], $name, $var, $type, $maxLen); - } - - /* - Insert a null into the blob field of the table first. - Then use UpdateBlob to store the blob. - - Usage: - - $conn->Execute('INSERT INTO blobtable (id, blobcol) VALUES (1, null)'); - $conn->UpdateBlob('blobtable','blobcol',$blob,'id=1'); - */ - - function UpdateBlob($table,$column,$val,$where,$blobtype='image') - { - $sql = "UPDATE $table SET $column = ? WHERE $where"; - if( !($stmt = @odbtp_prepare($sql, $this->_connectionID)) ) - return false; - if( !@odbtp_input( $stmt, 1, ODB_BINARY, 1000000, $blobtype ) ) - return false; - if( !@odbtp_set( $stmt, 1, $val ) ) - return false; - return @odbtp_execute( $stmt ) != false; - } - - function MetaIndexes($table,$primary=false, $owner=false) - { - switch ( $this->odbc_driver) { - case ODB_DRIVER_MSSQL: - return $this->MetaIndexes_mssql($table, $primary); - default: - return array(); - } - } - - function MetaIndexes_mssql($table,$primary=false) - { - $table = strtolower($this->qstr($table)); - - $sql = "SELECT i.name AS ind_name, C.name AS col_name, USER_NAME(O.uid) AS Owner, c.colid, k.Keyno, - CASE WHEN I.indid BETWEEN 1 AND 254 AND (I.status & 2048 = 2048 OR I.Status = 16402 AND O.XType = 'V') THEN 1 ELSE 0 END AS IsPK, - CASE WHEN I.status & 2 = 2 THEN 1 ELSE 0 END AS IsUnique - FROM dbo.sysobjects o INNER JOIN dbo.sysindexes I ON o.id = i.id - INNER JOIN dbo.sysindexkeys K ON I.id = K.id AND I.Indid = K.Indid - INNER JOIN dbo.syscolumns c ON K.id = C.id AND K.colid = C.Colid - WHERE LEFT(i.name, 8) <> '_WA_Sys_' AND o.status >= 0 AND lower(O.Name) = $table - ORDER BY O.name, I.Name, K.keyno"; - - global $ADODB_FETCH_MODE; - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== FALSE) { - $savem = $this->SetFetchMode(FALSE); - } - - $rs = $this->Execute($sql); - if (isset($savem)) { - $this->SetFetchMode($savem); - } - $ADODB_FETCH_MODE = $save; - - if (!is_object($rs)) { - return FALSE; - } - - $indexes = array(); - while ($row = $rs->FetchRow()) { - if ($primary && !$row[5]) continue; - - $indexes[$row[0]]['unique'] = $row[6]; - $indexes[$row[0]]['columns'][] = $row[1]; - } - return $indexes; - } - - function IfNull( $field, $ifNull ) - { - switch( $this->odbc_driver ) { - case ODB_DRIVER_MSSQL: - return " ISNULL($field, $ifNull) "; - case ODB_DRIVER_JET: - return " IIF(IsNull($field), $ifNull, $field) "; - } - return " CASE WHEN $field is null THEN $ifNull ELSE $field END "; - } - - function _query($sql,$inputarr=false) - { - $this->_errorMsg = false; - $this->_errorCode = false; - - if ($inputarr) { - if (is_array($sql)) { - $stmtid = $sql[1]; - } else { - $stmtid = @odbtp_prepare($sql,$this->_connectionID); - if ($stmtid == false) { - $this->_errorMsg = error_get_last() !== null ? error_get_last()['message'] : ''; - return false; - } - } - $num_params = @odbtp_num_params( $stmtid ); - /* - for( $param = 1; $param <= $num_params; $param++ ) { - @odbtp_input( $stmtid, $param ); - @odbtp_set( $stmtid, $param, $inputarr[$param-1] ); - }*/ - - $param = 1; - foreach($inputarr as $v) { - @odbtp_input( $stmtid, $param ); - @odbtp_set( $stmtid, $param, $v ); - $param += 1; - if ($param > $num_params) break; - } - - if (!@odbtp_execute($stmtid) ) { - return false; - } - } else if (is_array($sql)) { - $stmtid = $sql[1]; - if (!@odbtp_execute($stmtid)) { - return false; - } - } else { - $stmtid = odbtp_query($sql,$this->_connectionID); - } - $this->_lastAffectedRows = 0; - if ($stmtid) { - $this->_lastAffectedRows = @odbtp_affected_rows($stmtid); - } - return $stmtid; - } - - function _close() - { - $ret = @odbtp_close($this->_connectionID); - $this->_connectionID = false; - return $ret; - } -} - -class ADORecordSet_odbtp extends ADORecordSet { - - var $databaseType = 'odbtp'; - var $canSeek = true; - - function __construct($queryID,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - $this->fetchMode = $mode; - $this->ADORecordSet($queryID); - } - - function _initrs() - { - $this->_numOfFields = @odbtp_num_fields($this->_queryID); - if (!($this->_numOfRows = @odbtp_num_rows($this->_queryID))) - $this->_numOfRows = -1; - - if (!$this->connection->_useUnicodeSQL) return; - - if ($this->connection->odbc_driver == ODB_DRIVER_JET) { - if (!@odbtp_get_attr(ODB_ATTR_MAPCHARTOWCHAR, - $this->connection->_connectionID)) - { - for ($f = 0; $f < $this->_numOfFields; $f++) { - if (@odbtp_field_bindtype($this->_queryID, $f) == ODB_CHAR) - @odbtp_bind_field($this->_queryID, $f, ODB_WCHAR); - } - } - } - } - - function FetchField($fieldOffset = 0) - { - $off=$fieldOffset; // offsets begin at 0 - $o= new ADOFieldObject(); - $o->name = @odbtp_field_name($this->_queryID,$off); - $o->type = @odbtp_field_type($this->_queryID,$off); - $o->max_length = @odbtp_field_length($this->_queryID,$off); - if (ADODB_ASSOC_CASE == 0) $o->name = strtolower($o->name); - else if (ADODB_ASSOC_CASE == 1) $o->name = strtoupper($o->name); - return $o; - } - - function _seek($row) - { - return @odbtp_data_seek($this->_queryID, $row); - } - - function fields($colname) - { - if ($this->fetchMode & ADODB_FETCH_ASSOC) return $this->fields[$colname]; - - if (!$this->bind) { - $this->bind = array(); - for ($i=0; $i < $this->_numOfFields; $i++) { - $name = @odbtp_field_name( $this->_queryID, $i ); - $this->bind[strtoupper($name)] = $i; - } - } - return $this->fields[$this->bind[strtoupper($colname)]]; - } - - function _fetch_odbtp($type=0) - { - switch ($this->fetchMode) { - case ADODB_FETCH_NUM: - $this->fields = @odbtp_fetch_row($this->_queryID, $type); - break; - case ADODB_FETCH_ASSOC: - $this->fields = @odbtp_fetch_assoc($this->_queryID, $type); - break; - default: - $this->fields = @odbtp_fetch_array($this->_queryID, $type); - } - if ($this->databaseType = 'odbtp_vfp') { - if ($this->fields) - foreach($this->fields as $k => $v) { - if (strncmp($v,'1899-12-30',10) == 0) $this->fields[$k] = ''; - } - } - return is_array($this->fields); - } - - function _fetch() - { - return $this->_fetch_odbtp(); - } - - function MoveFirst() - { - if (!$this->_fetch_odbtp(ODB_FETCH_FIRST)) return false; - $this->EOF = false; - $this->_currentRow = 0; - return true; - } - - function MoveLast() - { - if (!$this->_fetch_odbtp(ODB_FETCH_LAST)) return false; - $this->EOF = false; - $this->_currentRow = $this->_numOfRows - 1; - return true; - } - - function NextRecordSet() - { - if (!@odbtp_next_result($this->_queryID)) return false; - $this->_inited = false; - $this->bind = false; - $this->_currentRow = -1; - $this->Init(); - return true; - } - - function _close() - { - return @odbtp_free_query($this->_queryID); - } -} - -class ADORecordSet_odbtp_mssql extends ADORecordSet_odbtp { - - var $databaseType = 'odbtp_mssql'; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_odbtp($id,$mode); - } -} - -class ADORecordSet_odbtp_access extends ADORecordSet_odbtp { - - var $databaseType = 'odbtp_access'; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_odbtp($id,$mode); - } -} - -class ADORecordSet_odbtp_vfp extends ADORecordSet_odbtp { - - var $databaseType = 'odbtp_vfp'; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_odbtp($id,$mode); - } -} - -class ADORecordSet_odbtp_oci8 extends ADORecordSet_odbtp { - - var $databaseType = 'odbtp_oci8'; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_odbtp($id,$mode); - } -} - -class ADORecordSet_odbtp_sybase extends ADORecordSet_odbtp { - - var $databaseType = 'odbtp_sybase'; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_odbtp($id,$mode); - } -} -?> diff --git a/src/adodb5/drivers/adodb-odbtp_unicode.inc.php b/src/adodb5/drivers/adodb-odbtp_unicode.inc.php deleted file mode 100644 index 33b2d275..00000000 --- a/src/adodb5/drivers/adodb-odbtp_unicode.inc.php +++ /dev/null @@ -1,39 +0,0 @@ - - -// security - hide paths -if (!defined('ADODB_DIR')) die(); - -/* - Because the ODBTP server sends and reads UNICODE text data using UTF-8 - encoding, the following HTML meta tag must be included within the HTML - head section of every HTML form and script page: - - - - Also, all SQL query strings must be submitted as UTF-8 encoded text. -*/ - -if (!defined('_ADODB_ODBTP_LAYER')) { - include(ADODB_DIR."/drivers/adodb-odbtp.inc.php"); -} - -class ADODB_odbtp_unicode extends ADODB_odbtp { - var $databaseType = 'odbtp'; - var $_useUnicodeSQL = true; - - function __construct() - { - $this->ADODB_odbtp(); - } -} -?> diff --git a/src/adodb5/drivers/adodb-oracle.inc.php b/src/adodb5/drivers/adodb-oracle.inc.php deleted file mode 100644 index 13676e18..00000000 --- a/src/adodb5/drivers/adodb-oracle.inc.php +++ /dev/null @@ -1,342 +0,0 @@ -format($this->fmtDate); - else $ds = adodb_date($this->fmtDate,$d); - return 'TO_DATE('.$ds.",'YYYY-MM-DD')"; - } - - // format and return date string in database timestamp format - function DBTimeStamp($ts) - { - - if (is_string($ts)) $ts = ADORecordSet::UnixTimeStamp($ts); - if (is_object($ts)) $ds = $ts->format($this->fmtDate); - else $ds = adodb_date($this->fmtTimeStamp,$ts); - return 'TO_DATE('.$ds.",'RRRR-MM-DD, HH:MI:SS AM')"; - } - - - function BindDate($d) - { - $d = ADOConnection::DBDate($d); - if (strncmp($d,"'",1)) return $d; - - return substr($d,1,strlen($d)-2); - } - - function BindTimeStamp($d) - { - $d = ADOConnection::DBTimeStamp($d); - if (strncmp($d,"'",1)) return $d; - - return substr($d,1,strlen($d)-2); - } - - - - function BeginTrans() - { - $this->autoCommit = false; - ora_commitoff($this->_connectionID); - return true; - } - - - function CommitTrans($ok=true) - { - if (!$ok) return $this->RollbackTrans(); - $ret = ora_commit($this->_connectionID); - ora_commiton($this->_connectionID); - return $ret; - } - - - function RollbackTrans() - { - $ret = ora_rollback($this->_connectionID); - ora_commiton($this->_connectionID); - return $ret; - } - - - /* there seems to be a bug in the oracle extension -- always returns ORA-00000 - no error */ - function ErrorMsg() - { - if ($this->_errorMsg !== false) return $this->_errorMsg; - - if (is_resource($this->_curs)) $this->_errorMsg = @ora_error($this->_curs); - if (empty($this->_errorMsg)) $this->_errorMsg = @ora_error($this->_connectionID); - return $this->_errorMsg; - } - - - function ErrorNo() - { - if ($this->_errorCode !== false) return $this->_errorCode; - - if (is_resource($this->_curs)) $this->_errorCode = @ora_errorcode($this->_curs); - if (empty($this->_errorCode)) $this->_errorCode = @ora_errorcode($this->_connectionID); - return $this->_errorCode; - } - - - - // returns true or false - function _connect($argHostname, $argUsername, $argPassword, $argDatabasename, $mode=0) - { - if (!function_exists('ora_plogon')) return null; - - // Reset error messages before connecting - $this->_errorMsg = false; - $this->_errorCode = false; - - // G. Giunta 2003/08/13 - This looks danegrously suspicious: why should we want to set - // the oracle home to the host name of remote DB? -// if ($argHostname) putenv("ORACLE_HOME=$argHostname"); - - if($argHostname) { // code copied from version submitted for oci8 by Jorma Tuomainen - if (empty($argDatabasename)) $argDatabasename = $argHostname; - else { - if(strpos($argHostname,":")) { - $argHostinfo=explode(":",$argHostname); - $argHostname=$argHostinfo[0]; - $argHostport=$argHostinfo[1]; - } else { - $argHostport="1521"; - } - - - if ($this->connectSID) { - $argDatabasename="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=".$argHostname - .")(PORT=$argHostport))(CONNECT_DATA=(SID=$argDatabasename)))"; - } else - $argDatabasename="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=".$argHostname - .")(PORT=$argHostport))(CONNECT_DATA=(SERVICE_NAME=$argDatabasename)))"; - } - - } - - if ($argDatabasename) $argUsername .= "@$argDatabasename"; - - //if ($argHostname) print "

Connect: 1st argument should be left blank for $this->databaseType

"; - if ($mode == 1) - $this->_connectionID = ora_plogon($argUsername,$argPassword); - else - $this->_connectionID = ora_logon($argUsername,$argPassword); - if ($this->_connectionID === false) return false; - if ($this->autoCommit) ora_commiton($this->_connectionID); - if ($this->_initdate) { - $rs = $this->_query("ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD'"); - if ($rs) ora_close($rs); - } - - return true; - } - - - // returns true or false - function _pconnect($argHostname, $argUsername, $argPassword, $argDatabasename) - { - return $this->_connect($argHostname, $argUsername, $argPassword, $argDatabasename, 1); - } - - - // returns query ID if successful, otherwise false - function _query($sql,$inputarr=false) - { - // Reset error messages before executing - $this->_errorMsg = false; - $this->_errorCode = false; - - $curs = ora_open($this->_connectionID); - - if ($curs === false) return false; - $this->_curs = $curs; - if (!ora_parse($curs,$sql)) return false; - if (ora_exec($curs)) return $curs; - // before we close the cursor, we have to store the error message - // that we can obtain ONLY from the cursor (and not from the connection) - $this->_errorCode = @ora_errorcode($curs); - $this->_errorMsg = @ora_error($curs); - // - @ora_close($curs); - return false; - } - - - // returns true or false - function _close() - { - return @ora_logoff($this->_connectionID); - } - - - -} - - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordset_oracle extends ADORecordSet { - - var $databaseType = "oracle"; - var $bind = false; - - function __construct($queryID,$mode=false) - { - - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - $this->fetchMode = $mode; - - $this->_queryID = $queryID; - - $this->_inited = true; - $this->fields = array(); - if ($queryID) { - $this->_currentRow = 0; - $this->EOF = !$this->_fetch(); - @$this->_initrs(); - } else { - $this->_numOfRows = 0; - $this->_numOfFields = 0; - $this->EOF = true; - } - - $this->_queryID; - } - - - - /* Returns: an object containing field information. - Get column information in the Recordset object. fetchField() can be used in order to obtain information about - fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by - fetchField() is retrieved. */ - - function FetchField($fieldOffset = -1) - { - $fld = new ADOFieldObject; - $fld->name = ora_columnname($this->_queryID, $fieldOffset); - $fld->type = ora_columntype($this->_queryID, $fieldOffset); - $fld->max_length = ora_columnsize($this->_queryID, $fieldOffset); - return $fld; - } - - /* Use associative array to get fields array */ - function Fields($colname) - { - if (!$this->bind) { - $this->bind = array(); - for ($i=0; $i < $this->_numOfFields; $i++) { - $o = $this->FetchField($i); - $this->bind[strtoupper($o->name)] = $i; - } - } - - return $this->fields[$this->bind[strtoupper($colname)]]; - } - - function _initrs() - { - $this->_numOfRows = -1; - $this->_numOfFields = @ora_numcols($this->_queryID); - } - - - function _seek($row) - { - return false; - } - - function _fetch($ignore_fields=false) { -// should remove call by reference, but ora_fetch_into requires it in 4.0.3pl1 - if ($this->fetchMode & ADODB_FETCH_ASSOC) - return @ora_fetch_into($this->_queryID,$this->fields,ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC); - else - return @ora_fetch_into($this->_queryID,$this->fields,ORA_FETCHINTO_NULLS); - } - - /* close() only needs to be called if you are worried about using too much memory while your script - is running. All associated result memory for the specified result identifier will automatically be freed. */ - - function _close() -{ - return @ora_close($this->_queryID); - } - - function MetaType($t,$len=-1) - { - if (is_object($t)) { - $fieldobj = $t; - $t = $fieldobj->type; - $len = $fieldobj->max_length; - } - - switch (strtoupper($t)) { - case 'VARCHAR': - case 'VARCHAR2': - case 'CHAR': - case 'VARBINARY': - case 'BINARY': - if ($len <= $this->blobSize) return 'C'; - case 'LONG': - case 'LONG VARCHAR': - case 'CLOB': - return 'X'; - case 'LONG RAW': - case 'LONG VARBINARY': - case 'BLOB': - return 'B'; - - case 'DATE': return 'D'; - - //case 'T': return 'T'; - - case 'BIT': return 'L'; - case 'INT': - case 'SMALLINT': - case 'INTEGER': return 'I'; - default: return 'N'; - } - } -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-pdo.inc.php b/src/adodb5/drivers/adodb-pdo.inc.php index eff83072..6a838d48 100644 --- a/src/adodb5/drivers/adodb-pdo.inc.php +++ b/src/adodb5/drivers/adodb-pdo.inc.php @@ -116,7 +116,7 @@ function Time() else $sql = "select $this->sysTimeStamp"; $rs = $this->_Execute($sql); - if ($rs && !$rs->EOF) return $this->UnixTimeStamp(reset($rs->fields)); + if ($rs && !$rs->EOF) return static::UnixTimeStamp(reset($rs->fields)); return false; } @@ -264,6 +264,7 @@ function ErrorNo() function SetTransactionMode($transaction_mode) { + $seqname = null; if(method_exists($this->_driver, 'SetTransactionMode')) return $this->_driver->SetTransactionMode($transaction_mode); @@ -358,6 +359,7 @@ function GenID($seqname='adodbseq',$startID=1) /* returns queryID or false */ function _query($sql,$inputarr=false) { + $ok = null; if (is_array($sql)) { $stmt = $sql[1]; } else { @@ -427,12 +429,12 @@ function _init($parentDriver) function ServerInfo() { - return ADOConnection::ServerInfo(); + return (new ADOConnection())->ServerInfo(); } function SelectLimit($sql,$nrows=-1,$offset=-1,$inputarr=false,$secs2cache=0) { - $ret = ADOConnection::SelectLimit($sql,$nrows,$offset,$inputarr,$secs2cache); + $ret = (new ADOConnection())->SelectLimit($sql, $nrows, $offset, $inputarr, $secs2cache); return $ret; } @@ -623,4 +625,4 @@ function Fields($colname) } -?> \ No newline at end of file +?> diff --git a/src/adodb5/drivers/adodb-pdo_mssql.inc.php b/src/adodb5/drivers/adodb-pdo_mssql.inc.php index f57dd295..74f613a7 100644 --- a/src/adodb5/drivers/adodb-pdo_mssql.inc.php +++ b/src/adodb5/drivers/adodb-pdo_mssql.inc.php @@ -27,12 +27,12 @@ function _init($parentDriver) function ServerInfo() { - return ADOConnection::ServerInfo(); + return (new ADOConnection())->ServerInfo(); } function SelectLimit($sql,$nrows=-1,$offset=-1,$inputarr=false,$secs2cache=0) { - $ret = ADOConnection::SelectLimit($sql,$nrows,$offset,$inputarr,$secs2cache); + $ret = (new ADOConnection())->SelectLimit($sql, $nrows, $offset, $inputarr, $secs2cache); return $ret; } @@ -58,4 +58,4 @@ function MetaColumns($table,$normalize=true) } } -?> \ No newline at end of file +?> diff --git a/src/adodb5/drivers/adodb-pdo_mysql.inc.php b/src/adodb5/drivers/adodb-pdo_mysql.inc.php index 3e5e6a8d..f92a690a 100644 --- a/src/adodb5/drivers/adodb-pdo_mysql.inc.php +++ b/src/adodb5/drivers/adodb-pdo_mysql.inc.php @@ -34,10 +34,10 @@ function _init($parentDriver) function OffsetDate($dayFraction,$date=false) { if (!$date) $date = $this->sysDate; - + $fraction = $dayFraction * 24 * 3600; return $date . ' + INTERVAL ' . $fraction.' SECOND'; - + // return "from_unixtime(unix_timestamp($date)+$fraction)"; } @@ -53,8 +53,9 @@ function Concat() function ServerInfo() { - $arr['description'] = ADOConnection::GetOne("select version()"); - $arr['version'] = ADOConnection::_findvers($arr['description']); + $arr = []; + $arr['description'] = (new ADOConnection())->GetOne("select version()"); + $arr['version'] = (new ADOConnection())->_findvers($arr['description']); return $arr; } @@ -69,7 +70,7 @@ function MetaTables($ttype=false,$showSchema=false,$mask=false) $mask = $this->qstr($mask); $this->metaTablesSQL .= " like $mask"; } - $ret = ADOConnection::MetaTables($ttype,$showSchema); + $ret = (new ADOConnection())->MetaTables($ttype, $showSchema); $this->metaTablesSQL = $save; return $ret; @@ -179,4 +180,4 @@ function SelectLimit($sql,$nrows=-1,$offset=-1,$inputarr=false,$secs=0) return $rs; } } -?> \ No newline at end of file +?> diff --git a/src/adodb5/drivers/adodb-pdo_oci.inc.php b/src/adodb5/drivers/adodb-pdo_oci.inc.php index 4ba017a0..8bdd81c3 100644 --- a/src/adodb5/drivers/adodb-pdo_oci.inc.php +++ b/src/adodb5/drivers/adodb-pdo_oci.inc.php @@ -39,7 +39,7 @@ function MetaTables($ttype=false,$showSchema=false,$mask=false) $mask = $this->qstr(strtoupper($mask)); $this->metaTablesSQL .= " AND table_name like $mask"; } - $ret = ADOConnection::MetaTables($ttype,$showSchema); + $ret = (new ADOConnection())->MetaTables($ttype, $showSchema); if ($mask) { $this->metaTablesSQL = $save; @@ -90,4 +90,4 @@ function MetaColumns($table,$normalize=true) } } -?> \ No newline at end of file +?> diff --git a/src/adodb5/drivers/adodb-pdo_pgsql.inc.php b/src/adodb5/drivers/adodb-pdo_pgsql.inc.php index 8c67a849..79a2c0d9 100644 --- a/src/adodb5/drivers/adodb-pdo_pgsql.inc.php +++ b/src/adodb5/drivers/adodb-pdo_pgsql.inc.php @@ -64,8 +64,9 @@ function _init($parentDriver) function ServerInfo() { - $arr['description'] = ADOConnection::GetOne("select version()"); - $arr['version'] = ADOConnection::_findvers($arr['description']); + $arr = []; + $arr['description'] = (new ADOConnection())->GetOne("select version()"); + $arr['version'] = (new ADOConnection())->_findvers($arr['description']); return $arr; } @@ -104,7 +105,7 @@ function MetaTables($ttype=false,$showSchema=false,$mask=false) union select viewname,'V' from pg_views where viewname like $mask"; } - $ret = ADOConnection::MetaTables($ttype,$showSchema); + $ret = (new ADOConnection())->MetaTables($ttype, $showSchema); if ($mask) { $this->metaTablesSQL = $save; @@ -114,6 +115,7 @@ function MetaTables($ttype=false,$showSchema=false,$mask=false) function MetaColumns($table,$normalize=true) { + $keys = null; global $ADODB_FETCH_MODE; $schema = false; diff --git a/src/adodb5/drivers/adodb-pdo_sqlite.inc.php b/src/adodb5/drivers/adodb-pdo_sqlite.inc.php index af2d64ca..6230624f 100644 --- a/src/adodb5/drivers/adodb-pdo_sqlite.inc.php +++ b/src/adodb5/drivers/adodb-pdo_sqlite.inc.php @@ -38,9 +38,12 @@ function _init($parentDriver) function ServerInfo() { + $arr = []; $parent = $this->pdoDriver; - @($ver = array_pop($parent->GetCol("SELECT sqlite_version()"))); - @($end = array_pop($parent->GetCol("PRAGMA encoding"))); + $getCol = $parent->GetCol("SELECT sqlite_version()"); + @($ver = array_pop($getCol)); + $getCol2 = $parent->GetCol("PRAGMA encoding"); + @($end = array_pop($getCol2)); $arr['version'] = $ver; $arr['description'] = 'SQLite '; @@ -64,12 +67,14 @@ function SelectLimit($sql,$nrows=-1,$offset=-1,$inputarr=false,$secs2cache=0) function GenID($seq='adodbseq',$start=1) { + $ok = null; $parent = $this->pdoDriver; // if you have to modify the parameter below, your database is overloaded, // or you need to implement generation of id's yourself! $MAXLOOPS = 100; while (--$MAXLOOPS>=0) { - @($num = array_pop($parent->GetCol("SELECT id FROM {$seq}"))); + $getCol = $parent->GetCol("SELECT id FROM {$seq}"); + @($num = array_pop($getCol)); if ($num === false || !is_numeric($num)) { @$parent->Execute(sprintf($this->_genSeqSQL ,$seq)); $start -= 1; @@ -187,4 +192,4 @@ function MetaTables($ttype=false,$showSchema=false,$mask=false) return $parent->GetCol($this->metaTablesSQL); } } -?> \ No newline at end of file +?> diff --git a/src/adodb5/drivers/adodb-postgres.inc.php b/src/adodb5/drivers/adodb-postgres.inc.php deleted file mode 100644 index 491e4ccd..00000000 --- a/src/adodb5/drivers/adodb-postgres.inc.php +++ /dev/null @@ -1,14 +0,0 @@ - \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-postgres64.inc.php b/src/adodb5/drivers/adodb-postgres64.inc.php deleted file mode 100644 index 410f3f21..00000000 --- a/src/adodb5/drivers/adodb-postgres64.inc.php +++ /dev/null @@ -1,1071 +0,0 @@ - - jlim - changed concat operator to || and data types to MetaType to match documented pgsql types - see http://www.postgresql.org/devel-corner/docs/postgres/datatype.htm - 22 Nov 2000 jlim - added changes to FetchField() and MetaTables() contributed by "raser" - 27 Nov 2000 jlim - added changes to _connect/_pconnect from ideas by "Lennie" - 15 Dec 2000 jlim - added changes suggested by Additional code changes by "Eric G. Werk" egw@netguide.dk. - 31 Jan 2002 jlim - finally installed postgresql. testing - 01 Mar 2001 jlim - Freek Dijkstra changes, also support for text type - - See http://www.varlena.com/varlena/GeneralBits/47.php - - -- What indexes are on my table? - select * from pg_indexes where tablename = 'tablename'; - - -- What triggers are on my table? - select c.relname as "Table", t.tgname as "Trigger Name", - t.tgconstrname as "Constraint Name", t.tgenabled as "Enabled", - t.tgisconstraint as "Is Constraint", cc.relname as "Referenced Table", - p.proname as "Function Name" - from pg_trigger t, pg_class c, pg_class cc, pg_proc p - where t.tgfoid = p.oid and t.tgrelid = c.oid - and t.tgconstrrelid = cc.oid - and c.relname = 'tablename'; - - -- What constraints are on my table? - select r.relname as "Table", c.conname as "Constraint Name", - contype as "Constraint Type", conkey as "Key Columns", - confkey as "Foreign Columns", consrc as "Source" - from pg_class r, pg_constraint c - where r.oid = c.conrelid - and relname = 'tablename'; - -*/ - -// security - hide paths -if (!defined('ADODB_DIR')) die(); - -function adodb_addslashes($s) -{ - $len = strlen($s); - if ($len == 0) return "''"; - if (strncmp($s,"'",1) === 0 && substr($s,$len-1) == "'") return $s; // already quoted - - return "'".addslashes($s)."'"; -} - -class ADODB_postgres64 extends ADOConnection{ - var $databaseType = 'postgres64'; - var $dataProvider = 'postgres'; - var $hasInsertID = true; - var $_resultid = false; - var $concat_operator='||'; - var $metaDatabasesSQL = "select datname from pg_database where datname not in ('template0','template1') order by 1"; - var $metaTablesSQL = "select tablename,'T' from pg_tables where tablename not like 'pg\_%' - and tablename not in ('sql_features', 'sql_implementation_info', 'sql_languages', - 'sql_packages', 'sql_sizing', 'sql_sizing_profiles') - union - select viewname,'V' from pg_views where viewname not like 'pg\_%'"; - //"select tablename from pg_tables where tablename not like 'pg_%' order by 1"; - var $isoDates = true; // accepts dates in ISO format - var $sysDate = "CURRENT_DATE"; - var $sysTimeStamp = "CURRENT_TIMESTAMP"; - var $blobEncodeType = 'C'; - var $metaColumnsSQL = "SELECT a.attname,t.typname,a.attlen,a.atttypmod,a.attnotnull,a.atthasdef,a.attnum - FROM pg_class c, pg_attribute a,pg_type t - WHERE relkind in ('r','v') AND (c.relname='%s' or c.relname = lower('%s')) and a.attname not like '....%%' -AND a.attnum > 0 AND a.atttypid = t.oid AND a.attrelid = c.oid ORDER BY a.attnum"; - - // used when schema defined - var $metaColumnsSQL1 = "SELECT a.attname, t.typname, a.attlen, a.atttypmod, a.attnotnull, a.atthasdef, a.attnum -FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n -WHERE relkind in ('r','v') AND (c.relname='%s' or c.relname = lower('%s')) - and c.relnamespace=n.oid and n.nspname='%s' - and a.attname not like '....%%' AND a.attnum > 0 - AND a.atttypid = t.oid AND a.attrelid = c.oid ORDER BY a.attnum"; - - // get primary key etc -- from Freek Dijkstra - var $metaKeySQL = "SELECT ic.relname AS index_name, a.attname AS column_name,i.indisunique AS unique_key, i.indisprimary AS primary_key - FROM pg_class bc, pg_class ic, pg_index i, pg_attribute a WHERE bc.oid = i.indrelid AND ic.oid = i.indexrelid AND (i.indkey[0] = a.attnum OR i.indkey[1] = a.attnum OR i.indkey[2] = a.attnum OR i.indkey[3] = a.attnum OR i.indkey[4] = a.attnum OR i.indkey[5] = a.attnum OR i.indkey[6] = a.attnum OR i.indkey[7] = a.attnum) AND a.attrelid = bc.oid AND bc.relname = '%s'"; - - var $hasAffectedRows = true; - var $hasLimit = false; // set to true for pgsql 7 only. support pgsql/mysql SELECT * FROM TABLE LIMIT 10 - // below suggested by Freek Dijkstra - var $true = 'TRUE'; // string that represents TRUE for a database - var $false = 'FALSE'; // string that represents FALSE for a database - var $fmtDate = "'Y-m-d'"; // used by DBDate() as the default date format used by the database - var $fmtTimeStamp = "'Y-m-d H:i:s'"; // used by DBTimeStamp as the default timestamp fmt. - var $hasMoveFirst = true; - var $hasGenID = true; - var $_genIDSQL = "SELECT NEXTVAL('%s')"; - var $_genSeqSQL = "CREATE SEQUENCE %s START %s"; - var $_dropSeqSQL = "DROP SEQUENCE %s"; - var $metaDefaultsSQL = "SELECT d.adnum as num, d.adsrc as def from pg_attrdef d, pg_class c where d.adrelid=c.oid and c.relname='%s' order by d.adnum"; - var $random = 'random()'; /// random function - var $autoRollback = true; // apparently pgsql does not autorollback properly before php 4.3.4 - // http://bugs.php.net/bug.php?id=25404 - - var $uniqueIisR = true; - var $_bindInputArray = false; // requires postgresql 7.3+ and ability to modify database - var $disableBlobs = false; // set to true to disable blob checking, resulting in 2-5% improvement in performance. - - // The last (fmtTimeStamp is not entirely correct: - // PostgreSQL also has support for time zones, - // and writes these time in this format: "2001-03-01 18:59:26+02". - // There is no code for the "+02" time zone information, so I just left that out. - // I'm not familiar enough with both ADODB as well as Postgres - // to know what the concequences are. The other values are correct (wheren't in 0.94) - // -- Freek Dijkstra - - function __construct() - { - // changes the metaColumnsSQL, adds columns: attnum[6] - } - - function ServerInfo() - { - if (isset($this->version)) return $this->version; - - $arr['description'] = $this->GetOne("select version()"); - $arr['version'] = ADOConnection::_findvers($arr['description']); - $this->version = $arr; - return $arr; - } - - function IfNull( $field, $ifNull ) - { - return " coalesce($field, $ifNull) "; - } - - // get the last id - never tested - function pg_insert_id($tablename,$fieldname) - { - $result=pg_exec($this->_connectionID, "SELECT last_value FROM ${tablename}_${fieldname}_seq"); - if ($result) { - $arr = @pg_fetch_row($result,0); - pg_freeresult($result); - if (isset($arr[0])) return $arr[0]; - } - return false; - } - -/* Warning from http://www.php.net/manual/function.pg-getlastoid.php: -Using a OID as a unique identifier is not generally wise. -Unless you are very careful, you might end up with a tuple having -a different OID if a database must be reloaded. */ - function _insertid($table,$column) - { - if (!is_resource($this->_resultid) || get_resource_type($this->_resultid) !== 'pgsql result') return false; - $oid = pg_getlastoid($this->_resultid); - // to really return the id, we need the table and column-name, else we can only return the oid != id - return empty($table) || empty($column) ? $oid : $this->GetOne("SELECT $column FROM $table WHERE oid=".(int)$oid); - } - -// I get this error with PHP before 4.0.6 - jlim -// Warning: This compilation does not support pg_cmdtuples() in adodb-postgres.inc.php on line 44 - function _affectedrows() - { - if (!is_resource($this->_resultid) || get_resource_type($this->_resultid) !== 'pgsql result') return false; - return pg_cmdtuples($this->_resultid); - } - - - // returns true/false - function BeginTrans() - { - if ($this->transOff) return true; - $this->transCnt += 1; - return @pg_Exec($this->_connectionID, "begin ".$this->_transmode); - } - - function RowLock($tables,$where,$flds='1 as ignore') - { - if (!$this->transCnt) $this->BeginTrans(); - return $this->GetOne("select $flds from $tables where $where for update"); - } - - // returns true/false. - function CommitTrans($ok=true) - { - if ($this->transOff) return true; - if (!$ok) return $this->RollbackTrans(); - - $this->transCnt -= 1; - return @pg_Exec($this->_connectionID, "commit"); - } - - // returns true/false - function RollbackTrans() - { - if ($this->transOff) return true; - $this->transCnt -= 1; - return @pg_Exec($this->_connectionID, "rollback"); - } - - function MetaTables($ttype=false,$showSchema=false,$mask=false) - { - $info = $this->ServerInfo(); - if ($info['version'] >= 7.3) { - $this->metaTablesSQL = "select tablename,'T' from pg_tables where tablename not like 'pg\_%' - and schemaname not in ( 'pg_catalog','information_schema') - union - select viewname,'V' from pg_views where viewname not like 'pg\_%' and schemaname not in ( 'pg_catalog','information_schema') "; - } - if ($mask) { - $save = $this->metaTablesSQL; - $mask = $this->qstr(strtolower($mask)); - if ($info['version']>=7.3) - $this->metaTablesSQL = " -select tablename,'T' from pg_tables where tablename like $mask and schemaname not in ( 'pg_catalog','information_schema') - union -select viewname,'V' from pg_views where viewname like $mask and schemaname not in ( 'pg_catalog','information_schema') "; - else - $this->metaTablesSQL = " -select tablename,'T' from pg_tables where tablename like $mask - union -select viewname,'V' from pg_views where viewname like $mask"; - } - $ret = ADOConnection::MetaTables($ttype,$showSchema); - - if ($mask) { - $this->metaTablesSQL = $save; - } - return $ret; - } - - - // if magic quotes disabled, use pg_escape_string() - function qstr($s,$magic_quotes=false) - { - if (is_bool($s)) return $s ? 'true' : 'false'; - - if (!$magic_quotes) { - if (ADODB_PHPVER >= 0x5200) { - return "'".pg_escape_string($this->_connectionID,$s)."'"; - } - if (ADODB_PHPVER >= 0x4200) { - return "'".pg_escape_string($s)."'"; - } - if ($this->replaceQuote[0] == '\\'){ - $s = adodb_str_replace(array('\\',"\0"),array('\\\\',"\\\\000"),$s); - } - return "'".str_replace("'",$this->replaceQuote,$s)."'"; - } - - // undo magic quotes for " - $s = str_replace('\\"','"',$s); - return "'$s'"; - } - - - - // Format date column in sql string given an input format that understands Y M D - function SQLDate($fmt, $col=false) - { - if (!$col) $col = $this->sysTimeStamp; - $s = 'TO_CHAR('.$col.",'"; - - $len = strlen($fmt); - for ($i=0; $i < $len; $i++) { - $ch = $fmt[$i]; - switch($ch) { - case 'Y': - case 'y': - $s .= 'YYYY'; - break; - case 'Q': - case 'q': - $s .= 'Q'; - break; - - case 'M': - $s .= 'Mon'; - break; - - case 'm': - $s .= 'MM'; - break; - case 'D': - case 'd': - $s .= 'DD'; - break; - - case 'H': - $s.= 'HH24'; - break; - - case 'h': - $s .= 'HH'; - break; - - case 'i': - $s .= 'MI'; - break; - - case 's': - $s .= 'SS'; - break; - - case 'a': - case 'A': - $s .= 'AM'; - break; - - case 'w': - $s .= 'D'; - break; - - case 'l': - $s .= 'DAY'; - break; - - case 'W': - $s .= 'WW'; - break; - - default: - // handle escape characters... - if ($ch == '\\') { - $i++; - $ch = substr($fmt,$i,1); - } - if (strpos('-/.:;, ',$ch) !== false) $s .= $ch; - else $s .= '"'.$ch.'"'; - - } - } - return $s. "')"; - } - - - - /* - * Load a Large Object from a file - * - the procedure stores the object id in the table and imports the object using - * postgres proprietary blob handling routines - * - * contributed by Mattia Rossi mattia@technologist.com - * modified for safe mode by juraj chlebec - */ - function UpdateBlobFile($table,$column,$path,$where,$blobtype='BLOB') - { - pg_exec ($this->_connectionID, "begin"); - - $fd = fopen($path,'r'); - $contents = fread($fd,filesize($path)); - fclose($fd); - - $oid = pg_lo_create($this->_connectionID); - $handle = pg_lo_open($this->_connectionID, $oid, 'w'); - pg_lo_write($handle, $contents); - pg_lo_close($handle); - - // $oid = pg_lo_import ($path); - pg_exec($this->_connectionID, "commit"); - $rs = ADOConnection::UpdateBlob($table,$column,$oid,$where,$blobtype); - $rez = !empty($rs); - return $rez; - } - - /* - * Deletes/Unlinks a Blob from the database, otherwise it - * will be left behind - * - * Returns TRUE on success or FALSE on failure. - * - * contributed by Todd Rogers todd#windfox.net - */ - function BlobDelete( $blob ) - { - pg_exec ($this->_connectionID, "begin"); - $result = @pg_lo_unlink($blob); - pg_exec ($this->_connectionID, "commit"); - return( $result ); - } - - /* - Hueristic - not guaranteed to work. - */ - function GuessOID($oid) - { - if (strlen($oid)>16) return false; - return is_numeric($oid); - } - - /* - * If an OID is detected, then we use pg_lo_* to open the oid file and read the - * real blob from the db using the oid supplied as a parameter. If you are storing - * blobs using bytea, we autodetect and process it so this function is not needed. - * - * contributed by Mattia Rossi mattia@technologist.com - * - * see http://www.postgresql.org/idocs/index.php?largeobjects.html - * - * Since adodb 4.54, this returns the blob, instead of sending it to stdout. Also - * added maxsize parameter, which defaults to $db->maxblobsize if not defined. - */ - function BlobDecode($blob,$maxsize=false,$hastrans=true) - { - if (!$this->GuessOID($blob)) return $blob; - - if ($hastrans) @pg_exec($this->_connectionID,"begin"); - $fd = @pg_lo_open($this->_connectionID,$blob,"r"); - if ($fd === false) { - if ($hastrans) @pg_exec($this->_connectionID,"commit"); - return $blob; - } - if (!$maxsize) $maxsize = $this->maxblobsize; - $realblob = @pg_loread($fd,$maxsize); - @pg_loclose($fd); - if ($hastrans) @pg_exec($this->_connectionID,"commit"); - return $realblob; - } - - /* - See http://www.postgresql.org/idocs/index.php?datatype-binary.html - - NOTE: SQL string literals (input strings) must be preceded with two backslashes - due to the fact that they must pass through two parsers in the PostgreSQL - backend. - */ - function BlobEncode($blob) - { - if (ADODB_PHPVER >= 0x5200) return pg_escape_bytea($this->_connectionID, $blob); - if (ADODB_PHPVER >= 0x4200) return pg_escape_bytea($blob); - - /*92=backslash, 0=null, 39=single-quote*/ - $badch = array(chr(92),chr(0),chr(39)); # \ null ' - $fixch = array('\\\\134','\\\\000','\\\\047'); - return adodb_str_replace($badch,$fixch,$blob); - - // note that there is a pg_escape_bytea function only for php 4.2.0 or later - } - - // assumes bytea for blob, and varchar for clob - function UpdateBlob($table,$column,$val,$where,$blobtype='BLOB') - { - - if ($blobtype == 'CLOB') { - return $this->Execute("UPDATE $table SET $column=" . $this->qstr($val) . " WHERE $where"); - } - // do not use bind params which uses qstr(), as blobencode() already quotes data - return $this->Execute("UPDATE $table SET $column='".$this->BlobEncode($val)."'::bytea WHERE $where"); - } - - function OffsetDate($dayFraction,$date=false) - { - if (!$date) $date = $this->sysDate; - else if (strncmp($date,"'",1) == 0) { - $len = strlen($date); - if (10 <= $len && $len <= 12) $date = 'date '.$date; - else $date = 'timestamp '.$date; - } - - - return "($date+interval'".($dayFraction * 1440)." minutes')"; - #return "($date+interval'$dayFraction days')"; - } - - - // for schema support, pass in the $table param "$schema.$tabname". - // converts field names to lowercase, $upper is ignored - // see http://phplens.com/lens/lensforum/msgs.php?id=14018 for more info - function MetaColumns($table,$normalize=true) - { - global $ADODB_FETCH_MODE; - - $schema = false; - $false = false; - $this->_findschema($table,$schema); - - if ($normalize) $table = strtolower($table); - - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false); - - if ($schema) $rs = $this->Execute(sprintf($this->metaColumnsSQL1,$table,$table,$schema)); - else $rs = $this->Execute(sprintf($this->metaColumnsSQL,$table,$table)); - if (isset($savem)) $this->SetFetchMode($savem); - $ADODB_FETCH_MODE = $save; - - if ($rs === false) { - return $false; - } - if (!empty($this->metaKeySQL)) { - // If we want the primary keys, we have to issue a separate query - // Of course, a modified version of the metaColumnsSQL query using a - // LEFT JOIN would have been much more elegant, but postgres does - // not support OUTER JOINS. So here is the clumsy way. - - $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; - - $rskey = $this->Execute(sprintf($this->metaKeySQL,($table))); - // fetch all result in once for performance. - $keys = $rskey->GetArray(); - if (isset($savem)) $this->SetFetchMode($savem); - $ADODB_FETCH_MODE = $save; - - $rskey->Close(); - unset($rskey); - } - - $rsdefa = array(); - if (!empty($this->metaDefaultsSQL)) { - $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; - $sql = sprintf($this->metaDefaultsSQL, ($table)); - $rsdef = $this->Execute($sql); - if (isset($savem)) $this->SetFetchMode($savem); - $ADODB_FETCH_MODE = $save; - - if ($rsdef) { - while (!$rsdef->EOF) { - $num = $rsdef->fields['num']; - $s = $rsdef->fields['def']; - if (strpos($s,'::')===false && substr($s, 0, 1) == "'") { /* quoted strings hack... for now... fixme */ - $s = substr($s, 1); - $s = substr($s, 0, strlen($s) - 1); - } - - $rsdefa[$num] = $s; - $rsdef->MoveNext(); - } - } else { - ADOConnection::outp( "==> SQL => " . $sql); - } - unset($rsdef); - } - - $retarr = array(); - while (!$rs->EOF) { - $fld = new ADOFieldObject(); - $fld->name = $rs->fields[0]; - $fld->type = $rs->fields[1]; - $fld->max_length = $rs->fields[2]; - $fld->attnum = $rs->fields[6]; - - if ($fld->max_length <= 0) $fld->max_length = $rs->fields[3]-4; - if ($fld->max_length <= 0) $fld->max_length = -1; - if ($fld->type == 'numeric') { - $fld->scale = $fld->max_length & 0xFFFF; - $fld->max_length >>= 16; - } - // dannym - // 5 hasdefault; 6 num-of-column - $fld->has_default = ($rs->fields[5] == 't'); - if ($fld->has_default) { - $fld->default_value = $rsdefa[$rs->fields[6]]; - } - - //Freek - $fld->not_null = $rs->fields[4] == 't'; - - - // Freek - if (is_array($keys)) { - foreach($keys as $key) { - if ($fld->name == $key['column_name'] AND $key['primary_key'] == 't') - $fld->primary_key = true; - if ($fld->name == $key['column_name'] AND $key['unique_key'] == 't') - $fld->unique = true; // What name is more compatible? - } - } - - if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld; - else $retarr[($normalize) ? strtoupper($fld->name) : $fld->name] = $fld; - - $rs->MoveNext(); - } - $rs->Close(); - if (empty($retarr)) - return $false; - else - return $retarr; - - } - - function MetaIndexes ($table, $primary = FALSE) - { - global $ADODB_FETCH_MODE; - - $schema = false; - $this->_findschema($table,$schema); - - if ($schema) { // requires pgsql 7.3+ - pg_namespace used. - $sql = ' -SELECT c.relname as "Name", i.indisunique as "Unique", i.indkey as "Columns" -FROM pg_catalog.pg_class c -JOIN pg_catalog.pg_index i ON i.indexrelid=c.oid -JOIN pg_catalog.pg_class c2 ON c2.oid=i.indrelid - ,pg_namespace n -WHERE (c2.relname=\'%s\' or c2.relname=lower(\'%s\')) and c.relnamespace=c2.relnamespace and c.relnamespace=n.oid and n.nspname=\'%s\''; - } else { - $sql = ' -SELECT c.relname as "Name", i.indisunique as "Unique", i.indkey as "Columns" -FROM pg_catalog.pg_class c -JOIN pg_catalog.pg_index i ON i.indexrelid=c.oid -JOIN pg_catalog.pg_class c2 ON c2.oid=i.indrelid -WHERE (c2.relname=\'%s\' or c2.relname=lower(\'%s\'))'; - } - - if ($primary == FALSE) { - $sql .= ' AND i.indisprimary=false;'; - } - - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== FALSE) { - $savem = $this->SetFetchMode(FALSE); - } - - $rs = $this->Execute(sprintf($sql,$table,$table,$schema)); - if (isset($savem)) { - $this->SetFetchMode($savem); - } - $ADODB_FETCH_MODE = $save; - - if (!is_object($rs)) { - $false = false; - return $false; - } - - $col_names = $this->MetaColumnNames($table,true,true); - //3rd param is use attnum, - // see http://sourceforge.net/tracker/index.php?func=detail&aid=1451245&group_id=42718&atid=433976 - $indexes = array(); - while ($row = $rs->FetchRow()) { - $columns = array(); - foreach (explode(' ', $row[2]) as $col) { - $columns[] = $col_names[$col]; - } - - $indexes[$row[0]] = array( - 'unique' => ($row[1] == 't'), - 'columns' => $columns - ); - } - return $indexes; - } - - // returns true or false - // - // examples: - // $db->Connect("host=host1 user=user1 password=secret port=4341"); - // $db->Connect('host1','user1','secret'); - function _connect($str,$user='',$pwd='',$db='',$ctype=0) - { - - if (!function_exists('pg_connect')) return null; - - $this->_errorMsg = false; - - if ($user || $pwd || $db) { - $user = adodb_addslashes($user); - $pwd = adodb_addslashes($pwd); - if (strlen($db) == 0) $db = 'template1'; - $db = adodb_addslashes($db); - if ($str) { - $host = explode(':', $str); - if ($host[0]) $str = "host=".adodb_addslashes($host[0]); - else $str = ''; - if (isset($host[1])) $str .= " port=$host[1]"; - else if (!empty($this->port)) $str .= " port=".$this->port; - } - if ($user) $str .= " user=".$user; - if ($pwd) $str .= " password=".$pwd; - if ($db) $str .= " dbname=".$db; - } - - //if ($user) $linea = "user=$user host=$linea password=$pwd dbname=$db port=5432"; - - if ($ctype === 1) { // persistent - $this->_connectionID = pg_pconnect($str); - } else { - if ($ctype === -1) { // nconnect, we trick pgsql ext by changing the connection str - static $ncnt; - - if (empty($ncnt)) $ncnt = 1; - else $ncnt += 1; - - $str .= str_repeat(' ',$ncnt); - } - $this->_connectionID = pg_connect($str); - } - if ($this->_connectionID === false) return false; - $this->Execute("set datestyle='ISO'"); - - $info = $this->ServerInfo(); - $this->pgVersion = (float) substr($info['version'],0,3); - if ($this->pgVersion >= 7.1) { // good till version 999 - $this->_nestedSQL = true; - } - return true; - } - - function _nconnect($argHostname, $argUsername, $argPassword, $argDatabaseName) - { - return $this->_connect($argHostname, $argUsername, $argPassword, $argDatabaseName,-1); - } - - // returns true or false - // - // examples: - // $db->PConnect("host=host1 user=user1 password=secret port=4341"); - // $db->PConnect('host1','user1','secret'); - function _pconnect($str,$user='',$pwd='',$db='') - { - return $this->_connect($str,$user,$pwd,$db,1); - } - - - // returns queryID or false - function _query($sql,$inputarr=false) - { - $this->_errorMsg = false; - if ($inputarr) { - /* - It appears that PREPARE/EXECUTE is slower for many queries. - - For query executed 1000 times: - "select id,firstname,lastname from adoxyz - where firstname not like ? and lastname not like ? and id = ?" - - with plan = 1.51861286163 secs - no plan = 1.26903700829 secs - - - - */ - $plan = 'P'.md5($sql); - - $execp = ''; - foreach($inputarr as $v) { - if ($execp) $execp .= ','; - if (is_string($v)) { - if (strncmp($v,"'",1) !== 0) $execp .= $this->qstr($v); - } else { - $execp .= $v; - } - } - - if ($execp) $exsql = "EXECUTE $plan ($execp)"; - else $exsql = "EXECUTE $plan"; - - - $rez = @pg_exec($this->_connectionID,$exsql); - if (!$rez) { - # Perhaps plan does not exist? Prepare/compile plan. - $params = ''; - foreach($inputarr as $v) { - if ($params) $params .= ','; - if (is_string($v)) { - $params .= 'VARCHAR'; - } else if (is_integer($v)) { - $params .= 'INTEGER'; - } else { - $params .= "REAL"; - } - } - $sqlarr = explode('?',$sql); - //print_r($sqlarr); - $sql = ''; - $i = 1; - foreach($sqlarr as $v) { - $sql .= $v.' $'.$i; - $i++; - } - $s = "PREPARE $plan ($params) AS ".substr($sql,0,strlen($sql)-2); - //adodb_pr($s); - $rez = pg_exec($this->_connectionID,$s); - //echo $this->ErrorMsg(); - } - if ($rez) - $rez = pg_exec($this->_connectionID,$exsql); - } else { - //adodb_backtrace(); - $rez = pg_exec($this->_connectionID,$sql); - } - // check if no data returned, then no need to create real recordset - if ($rez && pg_numfields($rez) <= 0) { - if (is_resource($this->_resultid) && get_resource_type($this->_resultid) === 'pgsql result') { - pg_freeresult($this->_resultid); - } - $this->_resultid = $rez; - return true; - } - - return $rez; - } - - function _errconnect() - { - if (defined('DB_ERROR_CONNECT_FAILED')) return DB_ERROR_CONNECT_FAILED; - else return 'Database connection failed'; - } - - /* Returns: the last error message from previous database operation */ - function ErrorMsg() - { - if ($this->_errorMsg !== false) return $this->_errorMsg; - if (ADODB_PHPVER >= 0x4300) { - if (!empty($this->_resultid)) { - $this->_errorMsg = @pg_result_error($this->_resultid); - if ($this->_errorMsg) return $this->_errorMsg; - } - - if (!empty($this->_connectionID)) { - $this->_errorMsg = @pg_last_error($this->_connectionID); - } else $this->_errorMsg = $this->_errconnect(); - } else { - if (empty($this->_connectionID)) $this->_errconnect(); - else $this->_errorMsg = @pg_errormessage($this->_connectionID); - } - return $this->_errorMsg; - } - - function ErrorNo() - { - $e = $this->ErrorMsg(); - if (strlen($e)) { - return ADOConnection::MetaError($e); - } - return 0; - } - - // returns true or false - function _close() - { - if ($this->transCnt) $this->RollbackTrans(); - if ($this->_resultid) { - @pg_freeresult($this->_resultid); - $this->_resultid = false; - } - @pg_close($this->_connectionID); - $this->_connectionID = false; - return true; - } - - - /* - * Maximum size of C field - */ - function CharMax() - { - return 1000000000; // should be 1 Gb? - } - - /* - * Maximum size of X field - */ - function TextMax() - { - return 1000000000; // should be 1 Gb? - } - - -} - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordSet_postgres64 extends ADORecordSet{ - var $_blobArr; - var $databaseType = "postgres64"; - var $canSeek = true; - function __construct($queryID,$mode=false) - { - if ($mode === false) { - global $ADODB_FETCH_MODE; - $mode = $ADODB_FETCH_MODE; - } - switch ($mode) - { - case ADODB_FETCH_NUM: $this->fetchMode = PGSQL_NUM; break; - case ADODB_FETCH_ASSOC:$this->fetchMode = PGSQL_ASSOC; break; - - case ADODB_FETCH_DEFAULT: - case ADODB_FETCH_BOTH: - default: $this->fetchMode = PGSQL_BOTH; break; - } - $this->adodbFetchMode = $mode; - $this->ADORecordSet($queryID); - } - - function GetRowAssoc($upper=true) - { - if ($this->fetchMode == PGSQL_ASSOC && !$upper) return $this->fields; - $row = ADORecordSet::GetRowAssoc($upper); - return $row; - } - - function _initrs() - { - global $ADODB_COUNTRECS; - $qid = $this->_queryID; - $this->_numOfRows = ($ADODB_COUNTRECS)? @pg_numrows($qid):-1; - $this->_numOfFields = @pg_numfields($qid); - - // cache types for blob decode check - // apparently pg_fieldtype actually performs an sql query on the database to get the type. - if (empty($this->connection->noBlobs)) - for ($i=0, $max = $this->_numOfFields; $i < $max; $i++) { - if (pg_fieldtype($qid,$i) == 'bytea') { - $this->_blobArr[$i] = pg_fieldname($qid,$i); - } - } - } - - /* Use associative array to get fields array */ - function Fields($colname) - { - if ($this->fetchMode != PGSQL_NUM) return @$this->fields[$colname]; - - if (!$this->bind) { - $this->bind = array(); - for ($i=0; $i < $this->_numOfFields; $i++) { - $o = $this->FetchField($i); - $this->bind[strtoupper($o->name)] = $i; - } - } - return $this->fields[$this->bind[strtoupper($colname)]]; - } - - function FetchField($off = 0) - { - // offsets begin at 0 - - $o= new ADOFieldObject(); - $o->name = @pg_fieldname($this->_queryID,$off); - $o->type = @pg_fieldtype($this->_queryID,$off); - $o->max_length = @pg_fieldsize($this->_queryID,$off); - return $o; - } - - function _seek($row) - { - return @pg_fetch_row($this->_queryID,$row); - } - - function _decode($blob) - { - if ($blob === NULL) return NULL; - eval('$realblob="'.adodb_str_replace(array('"','$'),array('\"','\$'),$blob).'";'); - return $realblob; - } - - function _fixblobs() - { - if ($this->fetchMode == PGSQL_NUM || $this->fetchMode == PGSQL_BOTH) { - foreach($this->_blobArr as $k => $v) { - $this->fields[$k] = ADORecordSet_postgres64::_decode($this->fields[$k]); - } - } - if ($this->fetchMode == PGSQL_ASSOC || $this->fetchMode == PGSQL_BOTH) { - foreach($this->_blobArr as $k => $v) { - $this->fields[$v] = ADORecordSet_postgres64::_decode($this->fields[$v]); - } - } - } - - // 10% speedup to move MoveNext to child class - function MoveNext() - { - if (!$this->EOF) { - $this->_currentRow++; - if ($this->_numOfRows < 0 || $this->_numOfRows > $this->_currentRow) { - $this->fields = @pg_fetch_array($this->_queryID,$this->_currentRow,$this->fetchMode); - if (is_array($this->fields) && $this->fields) { - if (isset($this->_blobArr)) $this->_fixblobs(); - return true; - } - } - $this->fields = false; - $this->EOF = true; - } - return false; - } - - function _fetch() - { - - if ($this->_currentRow >= $this->_numOfRows && $this->_numOfRows >= 0) - return false; - - $this->fields = @pg_fetch_array($this->_queryID,$this->_currentRow,$this->fetchMode); - - if ($this->fields && isset($this->_blobArr)) $this->_fixblobs(); - - return (is_array($this->fields)); - } - - function _close() - { - return @pg_freeresult($this->_queryID); - } - - function MetaType($t,$len=-1,$fieldobj=false) - { - if (is_object($t)) { - $fieldobj = $t; - $t = $fieldobj->type; - $len = $fieldobj->max_length; - } - switch (strtoupper($t)) { - case 'MONEY': // stupid, postgres expects money to be a string - case 'INTERVAL': - case 'CHAR': - case 'CHARACTER': - case 'VARCHAR': - case 'NAME': - case 'BPCHAR': - case '_VARCHAR': - case 'INET': - case 'MACADDR': - if ($len <= $this->blobSize) return 'C'; - - case 'TEXT': - return 'X'; - - case 'IMAGE': // user defined type - case 'BLOB': // user defined type - case 'BIT': // This is a bit string, not a single bit, so don't return 'L' - case 'VARBIT': - case 'BYTEA': - return 'B'; - - case 'BOOL': - case 'BOOLEAN': - return 'L'; - - case 'DATE': - return 'D'; - - - case 'TIMESTAMP WITHOUT TIME ZONE': - case 'TIME': - case 'DATETIME': - case 'TIMESTAMP': - case 'TIMESTAMPTZ': - return 'T'; - - case 'SMALLINT': - case 'BIGINT': - case 'INTEGER': - case 'INT8': - case 'INT4': - case 'INT2': - if (isset($fieldobj) && - empty($fieldobj->primary_key) && (!$this->uniqueIisR || empty($fieldobj->unique))) return 'I'; - - case 'OID': - case 'SERIAL': - return 'R'; - - default: - return 'N'; - } - } - -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-postgres7.inc.php b/src/adodb5/drivers/adodb-postgres7.inc.php deleted file mode 100644 index 654060c3..00000000 --- a/src/adodb5/drivers/adodb-postgres7.inc.php +++ /dev/null @@ -1,313 +0,0 @@ -ADODB_postgres64(); - if (ADODB_ASSOC_CASE !== 2) { - $this->rsPrefix .= 'assoc_'; - } - $this->_bindInputArray = PHP_VERSION >= 5.1; - } - - - // the following should be compat with postgresql 7.2, - // which makes obsolete the LIMIT limit,offset syntax - function SelectLimit($sql,$nrows=-1,$offset=-1,$inputarr=false,$secs2cache=0) - { - $offsetStr = ($offset >= 0) ? " OFFSET ".((integer)$offset) : ''; - $limitStr = ($nrows >= 0) ? " LIMIT ".((integer)$nrows) : ''; - if ($secs2cache) - $rs = $this->CacheExecute($secs2cache,$sql."$limitStr$offsetStr",$inputarr); - else - $rs = $this->Execute($sql."$limitStr$offsetStr",$inputarr); - - return $rs; - } - /* - function Prepare($sql) - { - $info = $this->ServerInfo(); - if ($info['version']>=7.3) { - return array($sql,false); - } - return $sql; - } - */ - - /* - I discovered that the MetaForeignKeys method no longer worked for Postgres 8.3. - I went ahead and modified it to work for both 8.2 and 8.3. - Please feel free to include this change in your next release of adodb. - William Kolodny [William.Kolodny#gt-t.net] - */ - function MetaForeignKeys($table, $owner=false, $upper=false) - { - $sql=" - SELECT fum.ftblname AS lookup_table, split_part(fum.rf, ')'::text, 1) AS lookup_field, - fum.ltable AS dep_table, split_part(fum.lf, ')'::text, 1) AS dep_field - FROM ( - SELECT fee.ltable, fee.ftblname, fee.consrc, split_part(fee.consrc,'('::text, 2) AS lf, - split_part(fee.consrc, '('::text, 3) AS rf - FROM ( - SELECT foo.relname AS ltable, foo.ftblname, - pg_get_constraintdef(foo.oid) AS consrc - FROM ( - SELECT c.oid, c.conname AS name, t.relname, ft.relname AS ftblname - FROM pg_constraint c - JOIN pg_class t ON (t.oid = c.conrelid) - JOIN pg_class ft ON (ft.oid = c.confrelid) - JOIN pg_namespace nft ON (nft.oid = ft.relnamespace) - LEFT JOIN pg_description ds ON (ds.objoid = c.oid) - JOIN pg_namespace n ON (n.oid = t.relnamespace) - WHERE c.contype = 'f'::\"char\" - ORDER BY t.relname, n.nspname, c.conname, c.oid - ) foo - ) fee) fum - WHERE fum.ltable='".strtolower($table)."' - ORDER BY fum.ftblname, fum.ltable, split_part(fum.lf, ')'::text, 1) - "; - $rs = $this->Execute($sql); - - if (!$rs || $rs->EOF) return false; - - $a = array(); - while (!$rs->EOF) { - if ($upper) { - $a[strtoupper($rs->Fields('lookup_table'))][] = strtoupper(str_replace('"','',$rs->Fields('dep_field').'='.$rs->Fields('lookup_field'))); - } else { - $a[$rs->Fields('lookup_table')][] = str_replace('"','',$rs->Fields('dep_field').'='.$rs->Fields('lookup_field')); - } - $rs->MoveNext(); - } - - return $a; - - } - - // from Edward Jaramilla, improved version - works on pg 7.4 - function _old_MetaForeignKeys($table, $owner=false, $upper=false) - { - $sql = 'SELECT t.tgargs as args - FROM - pg_trigger t,pg_class c,pg_proc p - WHERE - t.tgenabled AND - t.tgrelid = c.oid AND - t.tgfoid = p.oid AND - p.proname = \'RI_FKey_check_ins\' AND - c.relname = \''.strtolower($table).'\' - ORDER BY - t.tgrelid'; - - $rs = $this->Execute($sql); - - if (!$rs || $rs->EOF) return false; - - $arr = $rs->GetArray(); - $a = array(); - foreach($arr as $v) { - $data = explode(chr(0), $v['args']); - $size = count($data)-1; //-1 because the last node is empty - for($i = 4; $i < $size; $i++) { - if ($upper) - $a[strtoupper($data[2])][] = strtoupper($data[$i].'='.$data[++$i]); - else - $a[$data[2]][] = $data[$i].'='.$data[++$i]; - } - } - return $a; - } - - function _query($sql,$inputarr=false) - { - if (! $this->_bindInputArray) { - // We don't have native support for parameterized queries, so let's emulate it at the parent - return ADODB_postgres64::_query($sql, $inputarr); - } - $this->_errorMsg = false; - // -- added Cristiano da Cunha Duarte - if ($inputarr) { - $sqlarr = explode('?',trim($sql)); - $sql = ''; - $i = 1; - $last = sizeof($sqlarr)-1; - foreach($sqlarr as $v) { - if ($last < $i) $sql .= $v; - else $sql .= $v.' $'.$i; - $i++; - } - - $rez = pg_query_params($this->_connectionID,$sql, $inputarr); - } else { - $rez = pg_query($this->_connectionID,$sql); - } - // check if no data returned, then no need to create real recordset - if ($rez && pg_numfields($rez) <= 0) { - if (is_resource($this->_resultid) && get_resource_type($this->_resultid) === 'pgsql result') { - pg_freeresult($this->_resultid); - } - $this->_resultid = $rez; - return true; - } - return $rez; - } - - // this is a set of functions for managing client encoding - very important if the encodings - // of your database and your output target (i.e. HTML) don't match - //for instance, you may have UNICODE database and server it on-site as WIN1251 etc. - // GetCharSet - get the name of the character set the client is using now - // the functions should work with Postgres 7.0 and above, the set of charsets supported - // depends on compile flags of postgres distribution - if no charsets were compiled into the server - // it will return 'SQL_ANSI' always - function GetCharSet() - { - //we will use ADO's builtin property charSet - $this->charSet = @pg_client_encoding($this->_connectionID); - if (!$this->charSet) { - return false; - } else { - return $this->charSet; - } - } - - // SetCharSet - switch the client encoding - function SetCharSet($charset_name) - { - $this->GetCharSet(); - if ($this->charSet !== $charset_name) { - $if = pg_set_client_encoding($this->_connectionID, $charset_name); - if ($if == "0" & $this->GetCharSet() == $charset_name) { - return true; - } else return false; - } else return true; - } - -} - -/*-------------------------------------------------------------------------------------- - Class Name: Recordset ---------------------------------------------------------------------------------------*/ - -class ADORecordSet_postgres7 extends ADORecordSet_postgres64{ - - var $databaseType = "postgres7"; - - - function __construct($queryID,$mode=false) - { - $this->ADORecordSet_postgres64($queryID,$mode); - } - - // 10% speedup to move MoveNext to child class - function MoveNext() - { - if (!$this->EOF) { - $this->_currentRow++; - if ($this->_numOfRows < 0 || $this->_numOfRows > $this->_currentRow) { - $this->fields = @pg_fetch_array($this->_queryID,$this->_currentRow,$this->fetchMode); - - if (is_array($this->fields)) { - if ($this->fields && isset($this->_blobArr)) $this->_fixblobs(); - return true; - } - } - $this->fields = false; - $this->EOF = true; - } - return false; - } - -} - -class ADORecordSet_assoc_postgres7 extends ADORecordSet_postgres64{ - - var $databaseType = "postgres7"; - - - function __construct($queryID,$mode=false) - { - $this->ADORecordSet_postgres64($queryID,$mode); - } - - function _fetch() - { - if ($this->_currentRow >= $this->_numOfRows && $this->_numOfRows >= 0) - return false; - - $this->fields = @pg_fetch_array($this->_queryID,$this->_currentRow,$this->fetchMode); - - if ($this->fields) { - if (isset($this->_blobArr)) $this->_fixblobs(); - $this->_updatefields(); - } - - return (is_array($this->fields)); - } - - // Create associative array - function _updatefields() - { - if (ADODB_ASSOC_CASE == 2) return; // native - - $arr = array(); - $lowercase = (ADODB_ASSOC_CASE == 0); - - foreach($this->fields as $k => $v) { - if (is_integer($k)) $arr[$k] = $v; - else { - if ($lowercase) - $arr[strtolower($k)] = $v; - else - $arr[strtoupper($k)] = $v; - } - } - $this->fields = $arr; - } - - function MoveNext() - { - if (!$this->EOF) { - $this->_currentRow++; - if ($this->_numOfRows < 0 || $this->_numOfRows > $this->_currentRow) { - $this->fields = @pg_fetch_array($this->_queryID,$this->_currentRow,$this->fetchMode); - - if (is_array($this->fields)) { - if ($this->fields) { - if (isset($this->_blobArr)) $this->_fixblobs(); - - $this->_updatefields(); - } - return true; - } - } - - - $this->fields = false; - $this->EOF = true; - } - return false; - } -} -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-postgres8.inc.php b/src/adodb5/drivers/adodb-postgres8.inc.php deleted file mode 100644 index 05a705eb..00000000 --- a/src/adodb5/drivers/adodb-postgres8.inc.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-proxy.inc.php b/src/adodb5/drivers/adodb-proxy.inc.php deleted file mode 100644 index dbe39fc9..00000000 --- a/src/adodb5/drivers/adodb-proxy.inc.php +++ /dev/null @@ -1,33 +0,0 @@ -ADORecordset($id,$mode); - } - }; -} // define - -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-sapdb.inc.php b/src/adodb5/drivers/adodb-sapdb.inc.php deleted file mode 100644 index 723f415a..00000000 --- a/src/adodb5/drivers/adodb-sapdb.inc.php +++ /dev/null @@ -1,184 +0,0 @@ -curmode = SQL_CUR_USE_ODBC; - $this->ADODB_odbc(); - } - - function ServerInfo() - { - $info = ADODB_odbc::ServerInfo(); - if (!$info['version'] && preg_match('/([0-9.]+)/',$info['description'],$matches)) { - $info['version'] = $matches[1]; - } - return $info; - } - - function MetaPrimaryKeys($table) - { - $table = $this->Quote(strtoupper($table)); - - return $this->GetCol("SELECT columnname FROM COLUMNS WHERE tablename=$table AND mode='KEY' ORDER BY pos"); - } - - function MetaIndexes ($table, $primary = FALSE) - { - $table = $this->Quote(strtoupper($table)); - - $sql = "SELECT INDEXNAME,TYPE,COLUMNNAME FROM INDEXCOLUMNS ". - " WHERE TABLENAME=$table". - " ORDER BY INDEXNAME,COLUMNNO"; - - global $ADODB_FETCH_MODE; - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== FALSE) { - $savem = $this->SetFetchMode(FALSE); - } - - $rs = $this->Execute($sql); - if (isset($savem)) { - $this->SetFetchMode($savem); - } - $ADODB_FETCH_MODE = $save; - - if (!is_object($rs)) { - return FALSE; - } - - $indexes = array(); - while ($row = $rs->FetchRow()) { - $indexes[$row[0]]['unique'] = $row[1] == 'UNIQUE'; - $indexes[$row[0]]['columns'][] = $row[2]; - } - if ($primary) { - $indexes['SYSPRIMARYKEYINDEX'] = array( - 'unique' => True, // by definition - 'columns' => $this->GetCol("SELECT columnname FROM COLUMNS WHERE tablename=$table AND mode='KEY' ORDER BY pos"), - ); - } - return $indexes; - } - - function MetaColumns ($table) - { - global $ADODB_FETCH_MODE; - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - if ($this->fetchMode !== FALSE) { - $savem = $this->SetFetchMode(FALSE); - } - $table = $this->Quote(strtoupper($table)); - - $retarr = array(); - foreach($this->GetAll("SELECT COLUMNNAME,DATATYPE,LEN,DEC,NULLABLE,MODE,\"DEFAULT\",CASE WHEN \"DEFAULT\" IS NULL THEN 0 ELSE 1 END AS HAS_DEFAULT FROM COLUMNS WHERE tablename=$table ORDER BY pos") as $column) - { - $fld = new ADOFieldObject(); - $fld->name = $column[0]; - $fld->type = $column[1]; - $fld->max_length = $fld->type == 'LONG' ? 2147483647 : $column[2]; - $fld->scale = $column[3]; - $fld->not_null = $column[4] == 'NO'; - $fld->primary_key = $column[5] == 'KEY'; - if ($fld->has_default = $column[7]) { - if ($fld->primary_key && $column[6] == 'DEFAULT SERIAL (1)') { - $fld->auto_increment = true; - $fld->has_default = false; - } else { - $fld->default_value = $column[6]; - switch($fld->type) { - case 'VARCHAR': - case 'CHARACTER': - case 'LONG': - $fld->default_value = $column[6]; - break; - default: - $fld->default_value = trim($column[6]); - break; - } - } - } - $retarr[$fld->name] = $fld; - } - if (isset($savem)) { - $this->SetFetchMode($savem); - } - $ADODB_FETCH_MODE = $save; - - return $retarr; - } - - function MetaColumnNames($table) - { - $table = $this->Quote(strtoupper($table)); - - return $this->GetCol("SELECT columnname FROM COLUMNS WHERE tablename=$table ORDER BY pos"); - } - - // unlike it seems, this depends on the db-session and works in a multiuser environment - function _insertid($table,$column) - { - return empty($table) ? False : $this->GetOne("SELECT $table.CURRVAL FROM DUAL"); - } - - /* - SelectLimit implementation problems: - - The following will return random 10 rows as order by performed after "WHERE rowno<10" - which is not ideal... - - select * from table where rowno < 10 order by 1 - - This means that we have to use the adoconnection base class SelectLimit when - there is an "order by". - - See http://listserv.sap.com/pipermail/sapdb.general/2002-January/010405.html - */ - -}; - - -class ADORecordSet_sapdb extends ADORecordSet_odbc { - - var $databaseType = "sapdb"; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_odbc($id,$mode); - } -} - -} //define -?> \ No newline at end of file diff --git a/src/adodb5/drivers/adodb-sqlanywhere.inc.php b/src/adodb5/drivers/adodb-sqlanywhere.inc.php deleted file mode 100644 index ba5a503f..00000000 --- a/src/adodb5/drivers/adodb-sqlanywhere.inc.php +++ /dev/null @@ -1,169 +0,0 @@ -create_blobvar($blobVarName); - - b) load blob var from file. $filename must be complete path - - $dbcon->load_blobvar_from_file($blobVarName, $filename); - - c) Use the $blobVarName in SQL insert or update statement in the values - clause: - - $recordSet = $dbconn->Execute('INSERT INTO tabname (idcol, blobcol) ' - . - 'VALUES (\'test\', ' . $blobVarName . ')'); - - instead of loading blob from a file, you can also load from - an unformatted (raw) blob variable: - $dbcon->load_blobvar_from_var($blobVarName, $varName); - - d) drop blob variable on db server to free up resources: - $dbconn->drop_blobvar($blobVarName); - - Sybase_SQLAnywhere data driver. Requires ODBC. - -*/ - -// security - hide paths -if (!defined('ADODB_DIR')) die(); - -if (!defined('_ADODB_ODBC_LAYER')) { - include(ADODB_DIR."/drivers/adodb-odbc.inc.php"); -} - -if (!defined('ADODB_SYBASE_SQLANYWHERE')){ - - define('ADODB_SYBASE_SQLANYWHERE',1); - - class ADODB_sqlanywhere extends ADODB_odbc { - var $databaseType = "sqlanywhere"; - var $hasInsertID = true; - - function __construct() - { - $this->ADODB_odbc(); - } - - function _insertid() { - return $this->GetOne('select @@identity'); - } - - function create_blobvar($blobVarName) { - $this->Execute("create variable $blobVarName long binary"); - return; - } - - function drop_blobvar($blobVarName) { - $this->Execute("drop variable $blobVarName"); - return; - } - - function load_blobvar_from_file($blobVarName, $filename) { - $chunk_size = 1000; - - $fd = fopen ($filename, "rb"); - - $integer_chunks = (integer)filesize($filename) / $chunk_size; - $modulus = filesize($filename) % $chunk_size; - if ($modulus != 0){ - $integer_chunks += 1; - } - - for($loop=1;$loop<=$integer_chunks;$loop++){ - $contents = fread ($fd, $chunk_size); - $contents = bin2hex($contents); - - $hexstring = ''; - - for($loop2=0;$loop2qstr($hexstring); - - $this->Execute("set $blobVarName = $blobVarName || " . $hexstring); - } - - fclose ($fd); - return; - } - - function load_blobvar_from_var($blobVarName, &$varName) { - $chunk_size = 1000; - - $integer_chunks = (integer)strlen($varName) / $chunk_size; - $modulus = strlen($varName) % $chunk_size; - if ($modulus != 0){ - $integer_chunks += 1; - } - - for($loop=1;$loop<=$integer_chunks;$loop++){ - $contents = substr ($varName, (($loop - 1) * $chunk_size), $chunk_size); - $contents = bin2hex($contents); - - $hexstring = ''; - - for($loop2=0;$loop2qstr($hexstring); - - $this->Execute("set $blobVarName = $blobVarName || " . $hexstring); - } - - return; - } - - /* - Insert a null into the blob field of the table first. - Then use UpdateBlob to store the blob. - - Usage: - - $conn->Execute('INSERT INTO blobtable (id, blobcol) VALUES (1, null)'); - $conn->UpdateBlob('blobtable','blobcol',$blob,'id=1'); - */ - function UpdateBlob($table,$column,&$val,$where,$blobtype='BLOB') - { - $blobVarName = 'hold_blob'; - $this->create_blobvar($blobVarName); - $this->load_blobvar_from_var($blobVarName, $val); - $this->Execute("UPDATE $table SET $column=$blobVarName WHERE $where"); - $this->drop_blobvar($blobVarName); - return true; - } - }; //class - - class ADORecordSet_sqlanywhere extends ADORecordSet_odbc { - - var $databaseType = "sqlanywhere"; - - function __construct($id,$mode=false) - { - $this->ADORecordSet_odbc($id,$mode); - } - - - }; //class - - -} //define -?> diff --git a/src/adodb5/drivers/adodb-vfp.inc.php b/src/adodb5/drivers/adodb-vfp.inc.php deleted file mode 100644 index 8cd791a8..00000000 --- a/src/adodb5/drivers/adodb-vfp.inc.php +++ /dev/null @@ -1,107 +0,0 @@ -ADODB_odbc(); - } - - function Time() - { - return time(); - } - - function BeginTrans() { return false;} - - // quote string to be sent back to database - function qstr($s,$nofixquotes=false) - { - if (!$nofixquotes) return "'".str_replace("\r\n","'+chr(13)+'",str_replace("'",$this->replaceQuote,$s))."'"; - return "'".$s."'"; - } - - - // TOP requires ORDER BY for VFP - function SelectLimit($sql,$nrows=-1,$offset=-1, $inputarr=false,$secs2cache=0) - { - $this->hasTop = preg_match('/ORDER[ \t\r\n]+BY/is',$sql) ? 'top' : false; - $ret = ADOConnection::SelectLimit($sql,$nrows,$offset,$inputarr,$secs2cache); - return $ret; - } - - - -}; - - -class ADORecordSet_vfp extends ADORecordSet_odbc { - - var $databaseType = "vfp"; - - - function __construct($id,$mode=false) - { - $this->ADORecordSet_odbc($id,$mode); - } - - function MetaType($t,$len=-1) - { - if (is_object($t)) { - $fieldobj = $t; - $t = $fieldobj->type; - $len = $fieldobj->max_length; - } - switch (strtoupper($t)) { - case 'C': - if ($len <= $this->blobSize) return 'C'; - case 'M': - return 'X'; - - case 'D': return 'D'; - - case 'T': return 'T'; - - case 'L': return 'L'; - - case 'I': return 'I'; - - default: return 'N'; - } - } -} - -} //define -?> \ No newline at end of file diff --git a/src/adodb5/pear/Auth/Container/ADOdb.php b/src/adodb5/pear/Auth/Container/ADOdb.php deleted file mode 100644 index de550522..00000000 --- a/src/adodb5/pear/Auth/Container/ADOdb.php +++ /dev/null @@ -1,413 +0,0 @@ - -// | Richard Tango-Lowy | -// +----------------------------------------------------------------------+ -// -// $Id: ADOdb.php,v 1.3 2005/05/18 06:58:47 jlim Exp $ -// - -require_once 'Auth/Container.php'; -require_once 'adodb.inc.php'; -require_once 'adodb-pear.inc.php'; -require_once 'adodb-errorpear.inc.php'; - -/** - * Storage driver for fetching login data from a database using ADOdb-PHP. - * - * This storage driver can use all databases which are supported - * by the ADBdb DB abstraction layer to fetch login data. - * See http://php.weblogs.com/adodb for information on ADOdb. - * NOTE: The ADOdb directory MUST be in your PHP include_path! - * - * @author Richard Tango-Lowy - * @package Auth - * @version $Revision: 1.3 $ - */ -class Auth_Container_ADOdb extends Auth_Container -{ - - /** - * Additional options for the storage container - * @var array - */ - var $options = array(); - - /** - * DB object - * @var object - */ - var $db = null; - var $dsn = ''; - - /** - * User that is currently selected from the DB. - * @var string - */ - var $activeUser = ''; - - // {{{ Constructor - - /** - * Constructor of the container class - * - * Initate connection to the database via PEAR::ADOdb - * - * @param string Connection data or DB object - * @return object Returns an error object if something went wrong - */ - function __construct($dsn) - { - $this->_setDefaults(); - - if (is_array($dsn)) { - $this->_parseOptions($dsn); - - if (empty($this->options['dsn'])) { - PEAR::raiseError('No connection parameters specified!'); - } - } else { - // Extract db_type from dsn string. - $this->options['dsn'] = $dsn; - } - } - - // }}} - // {{{ _connect() - - /** - * Connect to database by using the given DSN string - * - * @access private - * @param string DSN string - * @return mixed Object on error, otherwise bool - */ - function _connect($dsn) - { - if (is_string($dsn) || is_array($dsn)) { - if(!$this->db) { - $this->db = ADONewConnection($dsn); - if( $err = ADODB_Pear_error() ) { - return PEAR::raiseError($err); - } - } - - } else { - return PEAR::raiseError('The given dsn was not valid in file ' . __FILE__ . ' at line ' . __LINE__, - 41, - PEAR_ERROR_RETURN, - null, - null - ); - } - - if(!$this->db) { - return PEAR::raiseError(ADODB_Pear_error()); - } else { - return true; - } - } - - // }}} - // {{{ _prepare() - - /** - * Prepare database connection - * - * This function checks if we have already opened a connection to - * the database. If that's not the case, a new connection is opened. - * - * @access private - * @return mixed True or a DB error object. - */ - function _prepare() - { - if(!$this->db) { - $res = $this->_connect($this->options['dsn']); - } - return true; - } - - // }}} - // {{{ query() - - /** - * Prepare query to the database - * - * This function checks if we have already opened a connection to - * the database. If that's not the case, a new connection is opened. - * After that the query is passed to the database. - * - * @access public - * @param string Query string - * @return mixed a DB_result object or DB_OK on success, a DB - * or PEAR error on failure - */ - function query($query) - { - $err = $this->_prepare(); - if ($err !== true) { - return $err; - } - return $this->db->query($query); - } - - // }}} - // {{{ _setDefaults() - - /** - * Set some default options - * - * @access private - * @return void - */ - function _setDefaults() - { - $this->options['db_type'] = 'mysql'; - $this->options['table'] = 'auth'; - $this->options['usernamecol'] = 'username'; - $this->options['passwordcol'] = 'password'; - $this->options['dsn'] = ''; - $this->options['db_fields'] = ''; - $this->options['cryptType'] = 'md5'; - } - - // }}} - // {{{ _parseOptions() - - /** - * Parse options passed to the container class - * - * @access private - * @param array - */ - function _parseOptions($array) - { - foreach ($array as $key => $value) { - if (isset($this->options[$key])) { - $this->options[$key] = $value; - } - } - - /* Include additional fields if they exist */ - if(!empty($this->options['db_fields'])){ - if(is_array($this->options['db_fields'])){ - $this->options['db_fields'] = implode(', ', $this->options['db_fields']); - } - $this->options['db_fields'] = ', '.$this->options['db_fields']; - } - } - - // }}} - // {{{ fetchData() - - /** - * Get user information from database - * - * This function uses the given username to fetch - * the corresponding login data from the database - * table. If an account that matches the passed username - * and password is found, the function returns true. - * Otherwise it returns false. - * - * @param string Username - * @param string Password - * @return mixed Error object or boolean - */ - function fetchData($username, $password) - { - // Prepare for a database query - $err = $this->_prepare(); - if ($err !== true) { - return PEAR::raiseError($err->getMessage(), $err->getCode()); - } - - // Find if db_fields contains a *, i so assume all col are selected - if(strstr($this->options['db_fields'], '*')){ - $sql_from = "*"; - } - else{ - $sql_from = $this->options['usernamecol'] . ", ".$this->options['passwordcol'].$this->options['db_fields']; - } - - $query = "SELECT ".$sql_from. - " FROM ".$this->options['table']. - " WHERE ".$this->options['usernamecol']." = " . $this->db->Quote($username); - - $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; - $rset = $this->db->Execute( $query ); - $res = $rset->fetchRow(); - - if (DB::isError($res)) { - return PEAR::raiseError($res->getMessage(), $res->getCode()); - } - if (!is_array($res)) { - $this->activeUser = ''; - return false; - } - if ($this->verifyPassword(trim($password, "\r\n"), - trim($res[$this->options['passwordcol']], "\r\n"), - $this->options['cryptType'])) { - // Store additional field values in the session - foreach ($res as $key => $value) { - if ($key == $this->options['passwordcol'] || - $key == $this->options['usernamecol']) { - continue; - } - // Use reference to the auth object if exists - // This is because the auth session variable can change so a static call to setAuthData does not make sence - if(is_object($this->_auth_obj)){ - $this->_auth_obj->setAuthData($key, $value); - } else { - Auth::setAuthData($key, $value); - } - } - - return true; - } - - $this->activeUser = $res[$this->options['usernamecol']]; - return false; - } - - // }}} - // {{{ listUsers() - - function listUsers() - { - $err = $this->_prepare(); - if ($err !== true) { - return PEAR::raiseError($err->getMessage(), $err->getCode()); - } - - $retVal = array(); - - // Find if db_fileds contains a *, i so assume all col are selected - if(strstr($this->options['db_fields'], '*')){ - $sql_from = "*"; - } - else{ - $sql_from = $this->options['usernamecol'] . ", ".$this->options['passwordcol'].$this->options['db_fields']; - } - - $query = sprintf("SELECT %s FROM %s", - $sql_from, - $this->options['table'] - ); - $res = $this->db->getAll($query, null, DB_FETCHMODE_ASSOC); - - if (DB::isError($res)) { - return PEAR::raiseError($res->getMessage(), $res->getCode()); - } else { - foreach ($res as $user) { - $user['username'] = $user[$this->options['usernamecol']]; - $retVal[] = $user; - } - } - return $retVal; - } - - // }}} - // {{{ addUser() - - /** - * Add user to the storage container - * - * @access public - * @param string Username - * @param string Password - * @param mixed Additional information that are stored in the DB - * - * @return mixed True on success, otherwise error object - */ - function addUser($username, $password, $additional = "") - { - if (function_exists($this->options['cryptType'])) { - $cryptFunction = $this->options['cryptType']; - } else { - $cryptFunction = 'md5'; - } - - $additional_key = ''; - $additional_value = ''; - - if (is_array($additional)) { - foreach ($additional as $key => $value) { - $additional_key .= ', ' . $key; - $additional_value .= ", '" . $value . "'"; - } - } - - $query = sprintf("INSERT INTO %s (%s, %s%s) VALUES ('%s', '%s'%s)", - $this->options['table'], - $this->options['usernamecol'], - $this->options['passwordcol'], - $additional_key, - $username, - $cryptFunction($password), - $additional_value - ); - - $res = $this->query($query); - - if (DB::isError($res)) { - return PEAR::raiseError($res->getMessage(), $res->getCode()); - } else { - return true; - } - } - - // }}} - // {{{ removeUser() - - /** - * Remove user from the storage container - * - * @access public - * @param string Username - * - * @return mixed True on success, otherwise error object - */ - function removeUser($username) - { - $query = sprintf("DELETE FROM %s WHERE %s = '%s'", - $this->options['table'], - $this->options['usernamecol'], - $username - ); - - $res = $this->query($query); - - if (DB::isError($res)) { - return PEAR::raiseError($res->getMessage(), $res->getCode()); - } else { - return true; - } - } - - // }}} -} - -function showDbg( $string ) { - print " --- $string

"; -} -function dump( $var, $str, $vardump = false ) { - print "

$str

";
-	( !$vardump ) ? ( print_r( $var )) : ( var_dump( $var ));
-	print "
"; -} -?> diff --git a/src/adodb5/pear/readme.Auth.txt b/src/adodb5/pear/readme.Auth.txt deleted file mode 100644 index db283197..00000000 --- a/src/adodb5/pear/readme.Auth.txt +++ /dev/null @@ -1,20 +0,0 @@ -From: Rich Tango-Lowy (richtl#arscognita.com) -Date: Sat, May 29, 2004 11:20 am - -OK, I hacked out an ADOdb container for PEAR-Auth. The error handling's -a bit of a mess, but all the methods work. - -Copy ADOdb.php to your pear/Auth/Container/ directory. - -Use the ADOdb container exactly as you would the DB -container, but specify 'ADOdb' instead of 'DB': - -$dsn = "mysql://myuser:mypass@localhost/authdb"; -$a = new Auth("ADOdb", $dsn, "loginFunction"); - - -------------------- - -John Lim adds: - -See http://pear.php.net/manual/en/package.authentication.php diff --git a/src/adodb5/perf/perf-db2.inc.php b/src/adodb5/perf/perf-db2.inc.php deleted file mode 100644 index 71cb84a8..00000000 --- a/src/adodb5/perf/perf-db2.inc.php +++ /dev/null @@ -1,102 +0,0 @@ - array('RATIO', - "SELECT - case when sum(POOL_DATA_L_READS+POOL_INDEX_L_READS)=0 then 0 - else 100*(1-sum(POOL_DATA_P_READS+POOL_INDEX_P_READS)/sum(POOL_DATA_L_READS+POOL_INDEX_L_READS)) end - FROM TABLE(SNAPSHOT_APPL('',-2)) as t", - '=WarnCacheRatio'), - - 'Data Cache', - 'data cache buffers' => array('DATAC', - 'select sum(npages) from SYSCAT.BUFFERPOOLS', - 'See tuning reference.' ), - 'cache blocksize' => array('DATAC', - 'select avg(pagesize) from SYSCAT.BUFFERPOOLS', - '' ), - 'data cache size' => array('DATAC', - 'select sum(npages*pagesize) from SYSCAT.BUFFERPOOLS', - '' ), - 'Connections', - 'current connections' => array('SESS', - "SELECT count(*) FROM TABLE(SNAPSHOT_APPL_INFO('',-2)) as t", - ''), - - false - ); - - - function __construct(&$conn) - { - $this->conn = $conn; - } - - function Explain($sql,$partial=false) - { - $save = $this->conn->LogSQL(false); - if ($partial) { - $sqlq = $this->conn->qstr($sql.'%'); - $arr = $this->conn->GetArray("select distinct sql1 from adodb_logsql where sql1 like $sqlq"); - if ($arr) { - foreach($arr as $row) { - $sql = reset($row); - if (crc32($sql) == $partial) break; - } - } - } - $qno = rand(); - $ok = $this->conn->Execute("EXPLAIN PLAN SET QUERYNO=$qno FOR $sql"); - ob_start(); - if (!$ok) echo "

Have EXPLAIN tables been created?

"; - else { - $rs = $this->conn->Execute("select * from explain_statement where queryno=$qno"); - if ($rs) rs2html($rs); - } - $s = ob_get_contents(); - ob_end_clean(); - $this->conn->LogSQL($save); - - $s .= $this->Tracer($sql); - return $s; - } - - - function Tables() - { - $rs = $this->conn->Execute("select tabschema,tabname,card as rows, - npages pages_used,fpages pages_allocated, tbspace tablespace - from syscat.tables where tabschema not in ('SYSCAT','SYSIBM','SYSSTAT') order by 1,2"); - return rs2html($rs,false,false,false,false); - } -} -?> \ No newline at end of file diff --git a/src/adodb5/perf/perf-informix.inc.php b/src/adodb5/perf/perf-informix.inc.php deleted file mode 100644 index 1e03b32a..00000000 --- a/src/adodb5/perf/perf-informix.inc.php +++ /dev/null @@ -1,70 +0,0 @@ - array('RATIOH', - "select round((1-(wt.value / (rd.value + wr.value)))*100,2) - from sysmaster:sysprofile wr, sysmaster:sysprofile rd, sysmaster:sysprofile wt - where rd.name = 'pagreads' and - wr.name = 'pagwrites' and - wt.name = 'buffwts'", - '=WarnCacheRatio'), - 'IO', - 'data reads' => array('IO', - "select value from sysmaster:sysprofile where name='pagreads'", - 'Page reads'), - - 'data writes' => array('IO', - "select value from sysmaster:sysprofile where name='pagwrites'", - 'Page writes'), - - 'Connections', - 'current connections' => array('SESS', - 'select count(*) from sysmaster:syssessions', - 'Number of sessions'), - - false - - ); - - function __construct(&$conn) - { - $this->conn = $conn; - } - -} -?> diff --git a/src/adodb5/perf/perf-mssql.inc.php b/src/adodb5/perf/perf-mssql.inc.php deleted file mode 100644 index 787813db..00000000 --- a/src/adodb5/perf/perf-mssql.inc.php +++ /dev/null @@ -1,164 +0,0 @@ - array('RATIO', - "select round((a.cntr_value*100.0)/b.cntr_value,2) from master.dbo.sysperfinfo a, master.dbo.sysperfinfo b where a.counter_name = 'Buffer cache hit ratio' and b.counter_name='Buffer cache hit ratio base'", - '=WarnCacheRatio'), - 'prepared sql hit ratio' => array('RATIO', - array('dbcc cachestats','Prepared',1,100), - ''), - 'adhoc sql hit ratio' => array('RATIO', - array('dbcc cachestats','Adhoc',1,100), - ''), - 'IO', - 'data reads' => array('IO', - "select cntr_value from master.dbo.sysperfinfo where counter_name = 'Page reads/sec'"), - 'data writes' => array('IO', - "select cntr_value from master.dbo.sysperfinfo where counter_name = 'Page writes/sec'"), - - 'Data Cache', - 'data cache size' => array('DATAC', - "select cntr_value*8192 from master.dbo.sysperfinfo where counter_name = 'Total Pages' and object_name='SQLServer:Buffer Manager'", - '' ), - 'data cache blocksize' => array('DATAC', - "select 8192",'page size'), - 'Connections', - 'current connections' => array('SESS', - '=sp_who', - ''), - 'max connections' => array('SESS', - "SELECT @@MAX_CONNECTIONS", - ''), - - false - ); - - - function __construct(&$conn) - { - if ($conn->dataProvider == 'odbc') { - $this->sql1 = 'sql1'; - //$this->explain = false; - } - $this->conn = $conn; - } - - function Explain($sql,$partial=false) - { - - $save = $this->conn->LogSQL(false); - if ($partial) { - $sqlq = $this->conn->qstr($sql.'%'); - $arr = $this->conn->GetArray("select distinct sql1 from adodb_logsql where sql1 like $sqlq"); - if ($arr) { - foreach($arr as $row) { - $sql = reset($row); - if (crc32($sql) == $partial) break; - } - } - } - - $s = '

Explain: '.htmlspecialchars($sql).'

'; - $this->conn->Execute("SET SHOWPLAN_ALL ON;"); - $sql = str_replace('?',"''",$sql); - global $ADODB_FETCH_MODE; - - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $rs = $this->conn->Execute($sql); - //adodb_printr($rs); - $ADODB_FETCH_MODE = $save; - if ($rs) { - $rs->MoveNext(); - $s .= ''; - while (!$rs->EOF) { - $s .= '\n"; ## NOTE CORRUPT tag is intentional!!!! - $rs->MoveNext(); - } - $s .= '
Rows IO CPU     Plan
'.round($rs->fields[8],1).''.round($rs->fields[9],3).''.round($rs->fields[10],3).'
'.htmlspecialchars($rs->fields[0])."
'; - - $rs->NextRecordSet(); - } - - $this->conn->Execute("SET SHOWPLAN_ALL OFF;"); - $this->conn->LogSQL($save); - $s .= $this->Tracer($sql); - return $s; - } - - function Tables() - { - global $ADODB_FETCH_MODE; - - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - //$this->conn->debug=1; - $s = ''; - $rs1 = $this->conn->Execute("select distinct name from sysobjects where xtype='U'"); - if ($rs1) { - while (!$rs1->EOF) { - $tab = $rs1->fields[0]; - $tabq = $this->conn->qstr($tab); - $rs2 = $this->conn->Execute("sp_spaceused $tabq"); - if ($rs2) { - $s .= ''; - $rs2->Close(); - } - $rs1->MoveNext(); - } - $rs1->Close(); - } - $ADODB_FETCH_MODE = $save; - return $s.'
tablenamesize_in_kindex sizereserved size
'.$tab.''.$rs2->fields[3].''.$rs2->fields[4].''.$rs2->fields[2].'
'; - } - - function sp_who() - { - $arr = $this->conn->GetArray('sp_who'); - return sizeof($arr); - } - - function HealthCheck($cli=false) - { - - $this->conn->Execute('dbcc traceon(3604)'); - $html = adodb_perf::HealthCheck($cli); - $this->conn->Execute('dbcc traceoff(3604)'); - return $html; - } - - -} - -?> \ No newline at end of file diff --git a/src/adodb5/perf/perf-mssqlnative.inc.php b/src/adodb5/perf/perf-mssqlnative.inc.php deleted file mode 100644 index a79646a2..00000000 --- a/src/adodb5/perf/perf-mssqlnative.inc.php +++ /dev/null @@ -1,164 +0,0 @@ - array('RATIO', - "select round((a.cntr_value*100.0)/b.cntr_value,2) from master.dbo.sysperfinfo a, master.dbo.sysperfinfo b where a.counter_name = 'Buffer cache hit ratio' and b.counter_name='Buffer cache hit ratio base'", - '=WarnCacheRatio'), - 'prepared sql hit ratio' => array('RATIO', - array('dbcc cachestats','Prepared',1,100), - ''), - 'adhoc sql hit ratio' => array('RATIO', - array('dbcc cachestats','Adhoc',1,100), - ''), - 'IO', - 'data reads' => array('IO', - "select cntr_value from master.dbo.sysperfinfo where counter_name = 'Page reads/sec'"), - 'data writes' => array('IO', - "select cntr_value from master.dbo.sysperfinfo where counter_name = 'Page writes/sec'"), - - 'Data Cache', - 'data cache size' => array('DATAC', - "select cntr_value*8192 from master.dbo.sysperfinfo where counter_name = 'Total Pages' and object_name='SQLServer:Buffer Manager'", - '' ), - 'data cache blocksize' => array('DATAC', - "select 8192",'page size'), - 'Connections', - 'current connections' => array('SESS', - '=sp_who', - ''), - 'max connections' => array('SESS', - "SELECT @@MAX_CONNECTIONS", - ''), - - false - ); - - - function __construct(&$conn) - { - if ($conn->dataProvider == 'odbc') { - $this->sql1 = 'sql1'; - //$this->explain = false; - } - $this->conn =& $conn; - } - - function Explain($sql,$partial=false) - { - - $save = $this->conn->LogSQL(false); - if ($partial) { - $sqlq = $this->conn->qstr($sql.'%'); - $arr = $this->conn->GetArray("select distinct sql1 from adodb_logsql where sql1 like $sqlq"); - if ($arr) { - foreach($arr as $row) { - $sql = reset($row); - if (crc32($sql) == $partial) break; - } - } - } - - $s = '

Explain: '.htmlspecialchars($sql).'

'; - $this->conn->Execute("SET SHOWPLAN_ALL ON;"); - $sql = str_replace('?',"''",$sql); - global $ADODB_FETCH_MODE; - - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - $rs =& $this->conn->Execute($sql); - //adodb_printr($rs); - $ADODB_FETCH_MODE = $save; - if ($rs) { - $rs->MoveNext(); - $s .= ''; - while (!$rs->EOF) { - $s .= '\n"; ## NOTE CORRUPT tag is intentional!!!! - $rs->MoveNext(); - } - $s .= '
Rows IO CPU     Plan
'.round($rs->fields[8],1).''.round($rs->fields[9],3).''.round($rs->fields[10],3).'
'.htmlspecialchars($rs->fields[0])."
'; - - $rs->NextRecordSet(); - } - - $this->conn->Execute("SET SHOWPLAN_ALL OFF;"); - $this->conn->LogSQL($save); - $s .= $this->Tracer($sql); - return $s; - } - - function Tables() - { - global $ADODB_FETCH_MODE; - - $save = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - //$this->conn->debug=1; - $s = ''; - $rs1 = $this->conn->Execute("select distinct name from sysobjects where xtype='U'"); - if ($rs1) { - while (!$rs1->EOF) { - $tab = $rs1->fields[0]; - $tabq = $this->conn->qstr($tab); - $rs2 = $this->conn->Execute("sp_spaceused $tabq"); - if ($rs2) { - $s .= ''; - $rs2->Close(); - } - $rs1->MoveNext(); - } - $rs1->Close(); - } - $ADODB_FETCH_MODE = $save; - return $s.'
tablenamesize_in_kindex sizereserved size
'.$tab.''.$rs2->fields[3].''.$rs2->fields[4].''.$rs2->fields[2].'
'; - } - - function sp_who() - { - $arr = $this->conn->GetArray('sp_who'); - return sizeof($arr); - } - - function HealthCheck($cli=false) - { - - $this->conn->Execute('dbcc traceon(3604)'); - $html = adodb_perf::HealthCheck($cli); - $this->conn->Execute('dbcc traceoff(3604)'); - return $html; - } - - -} - -?> \ No newline at end of file diff --git a/src/adodb5/perf/perf-mysql.inc.php b/src/adodb5/perf/perf-mysql.inc.php index 75d2ba16..58f40972 100644 --- a/src/adodb5/perf/perf-mysql.inc.php +++ b/src/adodb5/perf/perf-mysql.inc.php @@ -16,9 +16,9 @@ if (!defined('ADODB_DIR')) die(); class perf_mysql extends adodb_perf{ - + var $tablesSQL = 'show table status'; - + var $createTableSQL = "CREATE TABLE adodb_logsql ( created datetime NOT NULL, sql0 varchar(250) NOT NULL, @@ -27,7 +27,7 @@ class perf_mysql extends adodb_perf{ tracer text NOT NULL, timer decimal(16,6) NOT NULL )"; - + var $settings = array( 'Ratios', 'MyISAM cache hit ratio' => array('RATIO', @@ -49,7 +49,7 @@ class perf_mysql extends adodb_perf{ 'data writes' => array('IO', '=GetWrites', 'Number of inserts/updates/deletes * coef (Key_writes is not accurate)'), - + 'Data Cache', 'MyISAM data cache size' => array('DATAC', array("show variables", 'key_buffer_size'), @@ -77,18 +77,18 @@ class perf_mysql extends adodb_perf{ 'max connections' => array( 'SESS', array("show variables",'max_connections'), ''), - + false ); - + function __construct(&$conn) { $this->conn = $conn; } - + function Explain($sql,$partial=false) { - + if (strtoupper(substr(trim($sql),0,6)) !== 'SELECT') return '

Unable to EXPLAIN non-select statement

'; $save = $this->conn->LogSQL(false); if ($partial) { @@ -102,12 +102,12 @@ function Explain($sql,$partial=false) } } $sql = str_replace('?',"''",$sql); - + if ($partial) { $sqlq = $this->conn->qstr($sql.'%'); $sql = $this->conn->GetOne("select sql1 from adodb_logsql where sql1 like $sqlq"); } - + $s = '

Explain: '.htmlspecialchars($sql).'

'; $rs = $this->conn->Execute('EXPLAIN '.$sql); $s .= rs2html($rs,false,false,false,false); @@ -115,30 +115,30 @@ function Explain($sql,$partial=false) $s .= $this->Tracer($sql); return $s; } - + function Tables() { if (!$this->tablesSQL) return false; - + $rs = $this->conn->Execute($this->tablesSQL); if (!$rs) return false; - + $html = rs2html($rs,false,false,false,false); return $html; } - + function GetReads() { global $ADODB_FETCH_MODE; $save = $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_NUM; if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false); - + $rs = $this->conn->Execute('show status'); - + if (isset($savem)) $this->conn->SetFetchMode($savem); $ADODB_FETCH_MODE = $save; - + if (!$rs) return 0; $val = 0; while (!$rs->EOF) { @@ -150,24 +150,24 @@ function GetReads() } $rs->MoveNext(); } - + $rs->Close(); - + return $val; } - + function GetWrites() { global $ADODB_FETCH_MODE; $save = $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_NUM; if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false); - + $rs = $this->conn->Execute('show status'); - + if (isset($savem)) $this->conn->SetFetchMode($savem); $ADODB_FETCH_MODE = $save; - + if (!$rs) return 0; $val = 0.0; while (!$rs->EOF) { @@ -183,27 +183,27 @@ function GetWrites() } $rs->MoveNext(); } - + $rs->Close(); - + return $val; } - + function FindDBHitRatio() { // first find out type of table //$this->conn->debug=1; - + global $ADODB_FETCH_MODE; $save = $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_NUM; if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false); - + $rs = $this->conn->Execute('show table status'); - + if (isset($savem)) $this->conn->SetFetchMode($savem); $ADODB_FETCH_MODE = $save; - + if (!$rs) return ''; $type = strtoupper($rs->fields[1]); $rs->Close(); @@ -216,29 +216,29 @@ function FindDBHitRatio() default: return $type.' not supported'; } - + } - + function GetQHitRatio() { //Total number of queries = Qcache_inserts + Qcache_hits + Qcache_not_cached $hits = $this->_DBParameter(array("show status","Qcache_hits")); $total = $this->_DBParameter(array("show status","Qcache_inserts")); $total += $this->_DBParameter(array("show status","Qcache_not_cached")); - + $total += $hits; if ($total) return round(($hits*100)/$total,2); return 0; } - + /* Use session variable to store Hit percentage, because MySQL does not remember last value of SHOW INNODB STATUS hit ratio - + # 1st query to SHOW INNODB STATUS 0.00 reads/s, 0.00 creates/s, 0.00 writes/s Buffer pool hit rate 1000 / 1000 - + # 2nd query to SHOW INNODB STATUS 0.00 reads/s, 0.00 creates/s, 0.00 writes/s No buffer pool activity since the last printout @@ -246,16 +246,16 @@ function GetQHitRatio() function GetInnoDBHitRatio() { global $ADODB_FETCH_MODE; - + $save = $ADODB_FETCH_MODE; $ADODB_FETCH_MODE = ADODB_FETCH_NUM; if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false); - + $rs = $this->conn->Execute('show innodb status'); - + if (isset($savem)) $this->conn->SetFetchMode($savem); $ADODB_FETCH_MODE = $save; - + if (!$rs || $rs->EOF) return 0; $stat = $rs->fields[0]; $rs->Close(); @@ -271,30 +271,30 @@ function GetInnoDBHitRatio() } return 0; } - + function GetKeyHitRatio() { $hits = $this->_DBParameter(array("show status","Key_read_requests")); $reqs = $this->_DBParameter(array("show status","Key_reads")); if ($reqs == 0) return 0; - + return round(($hits/($reqs+$hits))*100,2); } - + // start hack var $optimizeTableLow = 'CHECK TABLE %s FAST QUICK'; var $optimizeTableHigh = 'OPTIMIZE TABLE %s'; - + /** * @see adodb_perf#optimizeTable */ function optimizeTable( $table, $mode = ADODB_OPT_LOW) { if ( !is_string( $table)) return false; - + $conn = $this->conn; if ( !$conn) return false; - + $sql = ''; switch( $mode) { case ADODB_OPT_LOW : $sql = $this->optimizeTableLow; break; @@ -302,14 +302,14 @@ function optimizeTable( $table, $mode = ADODB_OPT_LOW) default : { // May dont use __FUNCTION__ constant for BC (__FUNCTION__ Added in PHP 4.3.0) - ADOConnection::outp( sprintf( "

%s: '%s' using of undefined mode '%s'

", __CLASS__, __FUNCTION__, $mode)); + ADOConnection::outp( sprintf( "

%s: '%s' using of undefined mode '%s'

", self::class, __FUNCTION__, $mode)); return false; } } $sql = sprintf( $sql, $table); - + return $conn->Execute( $sql) !== false; } // end hack } -?> \ No newline at end of file +?> diff --git a/src/adodb5/perf/perf-oci8.inc.php b/src/adodb5/perf/perf-oci8.inc.php deleted file mode 100644 index b5c87e52..00000000 --- a/src/adodb5/perf/perf-oci8.inc.php +++ /dev/null @@ -1,570 +0,0 @@ - array('RATIOH', - "select round((1-(phy.value / (cur.value + con.value)))*100,2) - from v\$sysstat cur, v\$sysstat con, v\$sysstat phy - where cur.name = 'db block gets' and - con.name = 'consistent gets' and - phy.name = 'physical reads'", - '=WarnCacheRatio'), - - 'sql cache hit ratio' => array( 'RATIOH', - 'select round(100*(sum(pins)-sum(reloads))/sum(pins),2) from v$librarycache', - 'increase shared_pool_size if too ratio low'), - - 'datadict cache hit ratio' => array('RATIOH', - "select - round((1 - (sum(getmisses) / (sum(gets) + - sum(getmisses))))*100,2) - from v\$rowcache", - 'increase shared_pool_size if too ratio low'), - - 'memory sort ratio' => array('RATIOH', - "SELECT ROUND((100 * b.VALUE) /DECODE ((a.VALUE + b.VALUE), - 0,1,(a.VALUE + b.VALUE)),2) -FROM v\$sysstat a, - v\$sysstat b -WHERE a.name = 'sorts (disk)' -AND b.name = 'sorts (memory)'", - "% of memory sorts compared to disk sorts - should be over 95%"), - - 'IO', - 'data reads' => array('IO', - "select value from v\$sysstat where name='physical reads'"), - - 'data writes' => array('IO', - "select value from v\$sysstat where name='physical writes'"), - - 'Data Cache', - - 'data cache buffers' => array( 'DATAC', - "select a.value/b.value from v\$parameter a, v\$parameter b - where a.name = 'db_cache_size' and b.name= 'db_block_size'", - 'Number of cache buffers. Tune db_cache_size if the data cache hit ratio is too low.'), - 'data cache blocksize' => array('DATAC', - "select value from v\$parameter where name='db_block_size'", - '' ), - - 'Memory Pools', - 'SGA Max Size' => array( 'DATAC', - "select value from v\$parameter where name = 'sga_max_size'", - 'The sga_max_size is the maximum value to which sga_target can be set.' ), - 'SGA target' => array( 'DATAC', - "select value from v\$parameter where name = 'sga_target'", - 'If sga_target is defined then data cache, shared, java and large pool size can be 0. This is because all these pools are consolidated into one sga_target.' ), - 'data cache size' => array('DATAC', - "select value from v\$parameter where name = 'db_cache_size'", - 'db_cache_size' ), - 'shared pool size' => array('DATAC', - "select value from v\$parameter where name = 'shared_pool_size'", - 'shared_pool_size, which holds shared sql, stored procedures, dict cache and similar shared structs' ), - 'java pool size' => array('DATAJ', - "select value from v\$parameter where name = 'java_pool_size'", - 'java_pool_size' ), - 'large pool buffer size' => array('CACHE', - "select value from v\$parameter where name='large_pool_size'", - 'this pool is for large mem allocations (not because it is larger than shared pool), for MTS sessions, parallel queries, io buffers (large_pool_size) ' ), - - 'pga buffer size' => array('CACHE', - "select value from v\$parameter where name='pga_aggregate_target'", - 'program global area is private memory for sorting, and hash and bitmap merges - since oracle 9i (pga_aggregate_target)' ), - - - 'Connections', - 'current connections' => array('SESS', - 'select count(*) from sys.v_$session where username is not null', - ''), - 'max connections' => array( 'SESS', - "select value from v\$parameter where name='sessions'", - ''), - - 'Memory Utilization', - 'data cache utilization ratio' => array('RATIOU', - "select round((1-bytes/sgasize)*100, 2) - from (select sum(bytes) sgasize from sys.v_\$sgastat) s, sys.v_\$sgastat f - where name = 'free memory' and pool = 'shared pool'", - 'Percentage of data cache actually in use - should be over 85%'), - - 'shared pool utilization ratio' => array('RATIOU', - 'select round((sga.bytes/case when p.value=0 then sga.bytes else to_number(p.value) end)*100,2) - from v$sgastat sga, v$parameter p - where sga.name = \'free memory\' and sga.pool = \'shared pool\' - and p.name = \'shared_pool_size\'', - 'Percentage of shared pool actually used - too low is bad, too high is worse'), - - 'large pool utilization ratio' => array('RATIOU', - "select round((1-bytes/sgasize)*100, 2) - from (select sum(bytes) sgasize from sys.v_\$sgastat) s, sys.v_\$sgastat f - where name = 'free memory' and pool = 'large pool'", - 'Percentage of large_pool actually in use - too low is bad, too high is worse'), - 'sort buffer size' => array('CACHE', - "select value from v\$parameter where name='sort_area_size'", - 'max in-mem sort_area_size (per query), uses memory in pga' ), - - 'pga usage at peak' => array('RATIOU', - '=PGA','Mb utilization at peak transactions (requires Oracle 9i+)'), - 'Transactions', - 'rollback segments' => array('ROLLBACK', - "select count(*) from sys.v_\$rollstat", - ''), - - 'peak transactions' => array('ROLLBACK', - "select max_utilization tx_hwm - from sys.v_\$resource_limit - where resource_name = 'transactions'", - 'Taken from high-water-mark'), - 'max transactions' => array('ROLLBACK', - "select value from v\$parameter where name = 'transactions'", - 'max transactions / rollback segments < 3.5 (or transactions_per_rollback_segment)'), - 'Parameters', - 'cursor sharing' => array('CURSOR', - "select value from v\$parameter where name = 'cursor_sharing'", - 'Cursor reuse strategy. Recommended is FORCE (8i+) or SIMILAR (9i+). See cursor_sharing.'), - /* - 'cursor reuse' => array('CURSOR', - "select count(*) from (select sql_text_wo_constants, count(*) - from t1 - group by sql_text_wo_constants -having count(*) > 100)",'These are sql statements that should be using bind variables'),*/ - 'index cache cost' => array('COST', - "select value from v\$parameter where name = 'optimizer_index_caching'", - '=WarnIndexCost'), - 'random page cost' => array('COST', - "select value from v\$parameter where name = 'optimizer_index_cost_adj'", - '=WarnPageCost'), - - 'Backup', - 'Achivelog Mode' => array('BACKUP', 'select log_mode from v$database', 'To turn on archivelog:
-
-        SQLPLUS> connect sys as sysdba;
-        SQLPLUS> shutdown immediate;
-
-        SQLPLUS> startup mount exclusive;
-        SQLPLUS> alter database archivelog;
-        SQLPLUS> archive log start;
-        SQLPLUS> alter database open;
-
'), - - 'DBID' => array('BACKUP','select dbid from v$database','Primary key of database, used for recovery with an RMAN Recovery Catalog'), - 'Archive Log Dest' => array('BACKUP', "SELECT NVL(v1.value,v2.value) -FROM v\$parameter v1, v\$parameter v2 WHERE v1.name='log_archive_dest' AND v2.name='log_archive_dest_10'", ''), - - 'Flashback Area' => array('BACKUP', "select nvl(value,'Flashback Area not used') from v\$parameter where name=lower('DB_RECOVERY_FILE_DEST')", 'Flashback area is a folder where all backup data and logs can be stored and managed by Oracle. If Error: message displayed, then it is not in use.'), - 'Control File Keep Time' => array('BACKUP', "select value from v\$parameter where name='control_file_record_keep_time'",'No of days to keep RMAN info in control file. I recommend it be set to x2 or x3 times the frequency of your full backup.'), - false - - ); - - - function __construct(&$conn) - { - $savelog = $conn->LogSQL(false); - $this->version = $conn->ServerInfo(); - $conn->LogSQL($savelog); - $this->conn = $conn; - } - - function WarnPageCost($val) - { - if ($val == 100) $s = 'Too High. '; - else $s = ''; - - return $s.'Recommended is 20-50 for TP, and 50 for data warehouses. Default is 100. See optimizer_index_cost_adj. '; - } - - function WarnIndexCost($val) - { - if ($val == 0) $s = 'Too Low. '; - else $s = ''; - - return $s.'Percentage of indexed data blocks expected in the cache. - Recommended is 20 (fast disk array) to 30 (slower hard disks). Default is 0. - See optimizer_index_caching.'; - } - - function PGA() - { - if ($this->version['version'] < 9) return 'Oracle 9i or later required'; - - $rs = $this->conn->Execute("select a.mb,a.targ as pga_size_pct,a.pct from - (select round(pga_target_for_estimate/1024.0/1024.0,0) Mb, - pga_target_factor targ,estd_pga_cache_hit_percentage pct,rownum as r - from v\$pga_target_advice) a left join - (select round(pga_target_for_estimate/1024.0/1024.0,0) Mb, - pga_target_factor targ,estd_pga_cache_hit_percentage pct,rownum as r - from v\$pga_target_advice) b on - a.r = b.r+1 where - b.pct < 100"); - if (!$rs) return "Only in 9i or later"; - $rs->Close(); - if ($rs->EOF) return "PGA could be too big"; - - return reset($rs->fields); - } - - function Explain($sql,$partial=false) - { - $savelog = $this->conn->LogSQL(false); - $rs = $this->conn->SelectLimit("select ID FROM PLAN_TABLE"); - if (!$rs) { - echo "

Missing PLAN_TABLE

-
-CREATE TABLE PLAN_TABLE (
-  STATEMENT_ID                    VARCHAR2(30),
-  TIMESTAMP                       DATE,
-  REMARKS                         VARCHAR2(80),
-  OPERATION                       VARCHAR2(30),
-  OPTIONS                         VARCHAR2(30),
-  OBJECT_NODE                     VARCHAR2(128),
-  OBJECT_OWNER                    VARCHAR2(30),
-  OBJECT_NAME                     VARCHAR2(30),
-  OBJECT_INSTANCE                 NUMBER(38),
-  OBJECT_TYPE                     VARCHAR2(30),
-  OPTIMIZER                       VARCHAR2(255),
-  SEARCH_COLUMNS                  NUMBER,
-  ID                              NUMBER(38),
-  PARENT_ID                       NUMBER(38),
-  POSITION                        NUMBER(38),
-  COST                            NUMBER(38),
-  CARDINALITY                     NUMBER(38),
-  BYTES                           NUMBER(38),
-  OTHER_TAG                       VARCHAR2(255),
-  PARTITION_START                 VARCHAR2(255),
-  PARTITION_STOP                  VARCHAR2(255),
-  PARTITION_ID                    NUMBER(38),
-  OTHER                           LONG,
-  DISTRIBUTION                    VARCHAR2(30)
-);
-
"; - return false; - } - - $rs->Close(); - // $this->conn->debug=1; - - if ($partial) { - $sqlq = $this->conn->qstr($sql.'%'); - $arr = $this->conn->GetArray("select distinct sql1 from adodb_logsql where sql1 like $sqlq"); - if ($arr) { - foreach($arr as $row) { - $sql = reset($row); - if (crc32($sql) == $partial) break; - } - } - } - - $s = "

Explain: ".htmlspecialchars($sql)."

"; - - $this->conn->BeginTrans(); - $id = "ADODB ".microtime(); - - $rs = $this->conn->Execute("EXPLAIN PLAN SET STATEMENT_ID='$id' FOR $sql"); - $m = $this->conn->ErrorMsg(); - if ($m) { - $this->conn->RollbackTrans(); - $this->conn->LogSQL($savelog); - $s .= "

$m

"; - return $s; - } - $rs = $this->conn->Execute(" - select - '
'||lpad('--', (level-1)*2,'-') || trim(operation) || ' ' || trim(options)||'
' as Operation, - object_name,COST,CARDINALITY,bytes - FROM plan_table -START WITH id = 0 and STATEMENT_ID='$id' -CONNECT BY prior id=parent_id and statement_id='$id'"); - - $s .= rs2html($rs,false,false,false,false); - $this->conn->RollbackTrans(); - $this->conn->LogSQL($savelog); - $s .= $this->Tracer($sql,$partial); - return $s; - } - - - function CheckMemory() - { - if ($this->version['version'] < 9) return 'Oracle 9i or later required'; - - $rs = $this->conn->Execute(" -select a.size_for_estimate as cache_mb_estimate, - case when a.size_factor=1 then - '<<= current' - when a.estd_physical_read_factor-b.estd_physical_read_factor > 0 and a.estd_physical_read_factor<1 then - '- BETTER - ' - else ' ' end as currsize, - a.estd_physical_read_factor-b.estd_physical_read_factor as best_when_0 - from (select size_for_estimate,size_factor,estd_physical_read_factor,rownum r from v\$db_cache_advice) a , - (select size_for_estimate,size_factor,estd_physical_read_factor,rownum r from v\$db_cache_advice) b where a.r = b.r-1"); - if (!$rs) return false; - - /* - The v$db_cache_advice utility show the marginal changes in physical data block reads for different sizes of db_cache_size - */ - $s = "

Data Cache Estimate

"; - if ($rs->EOF) { - $s .= "

Cache that is 50% of current size is still too big

"; - } else { - $s .= "Ideal size of Data Cache is when \"best_when_0\" changes from a positive number and becomes zero."; - $s .= rs2html($rs,false,false,false,false); - } - return $s; - } - - /* - Generate html for suspicious/expensive sql - */ - function tohtml(&$rs,$type) - { - $o1 = $rs->FetchField(0); - $o2 = $rs->FetchField(1); - $o3 = $rs->FetchField(2); - if ($rs->EOF) return '

None found

'; - $check = ''; - $sql = ''; - $s = "\n\n'; - while (!$rs->EOF) { - if ($check != $rs->fields[0].'::'.$rs->fields[1]) { - if ($check) { - $carr = explode('::',$check); - $prefix = "'; - $suffix = ''; - if (strlen($prefix)>2000) { - $prefix = ''; - $suffix = ''; - } - - $s .= "\n'; - } - $sql = $rs->fields[2]; - $check = $rs->fields[0].'::'.$rs->fields[1]; - } else - $sql .= $rs->fields[2]; - if (substr($sql,strlen($sql)-1) == "\0") $sql = substr($sql,0,strlen($sql)-1); - $rs->MoveNext(); - } - $rs->Close(); - - $carr = explode('::',$check); - $prefix = "'; - $suffix = ''; - if (strlen($prefix)>2000) { - $prefix = ''; - $suffix = ''; - } - $s .= "\n'; - - return $s."
".$o1->name.''.$o2->name.''.$o3->name.'
".$carr[0].''.$carr[1].''.$prefix.$sql.$suffix.'
".$carr[0].''.$carr[1].''.$prefix.$sql.$suffix.'
\n\n"; - } - - // code thanks to Ixora. - // http://www.ixora.com.au/scripts/query_opt.htm - // requires oracle 8.1.7 or later - function SuspiciousSQL($numsql=10) - { - $sql = " -select - substr(to_char(s.pct, '99.00'), 2) || '%' load, - s.executions executes, - p.sql_text -from - ( - select - address, - buffer_gets, - executions, - pct, - rank() over (order by buffer_gets desc) ranking - from - ( - select - address, - buffer_gets, - executions, - 100 * ratio_to_report(buffer_gets) over () pct - from - sys.v_\$sql - where - command_type != 47 and module != 'T.O.A.D.' - ) - where - buffer_gets > 50 * executions - ) s, - sys.v_\$sqltext p -where - s.ranking <= $numsql and - p.address = s.address -order by - 1 desc, s.address, p.piece"; - - global $ADODB_CACHE_MODE; - if (isset($_GET['expsixora']) && isset($_GET['sql'])) { - $partial = empty($_GET['part']); - echo "".$this->Explain($_GET['sql'],$partial)."\n"; - } - - if (isset($_GET['sql'])) return $this->_SuspiciousSQL($numsql); - - $s = ''; - $timer = time(); - $s .= $this->_SuspiciousSQL($numsql); - $timer = time() - $timer; - - if ($timer > $this->noShowIxora) return $s; - $s .= '

'; - - $save = $ADODB_CACHE_MODE; - $ADODB_CACHE_MODE = ADODB_FETCH_NUM; - if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false); - - $savelog = $this->conn->LogSQL(false); - $rs = $this->conn->SelectLimit($sql); - $this->conn->LogSQL($savelog); - - if (isset($savem)) $this->conn->SetFetchMode($savem); - $ADODB_CACHE_MODE = $save; - if ($rs) { - $s .= "\n

Ixora Suspicious SQL

"; - $s .= $this->tohtml($rs,'expsixora'); - } - - return $s; - } - - // code thanks to Ixora. - // http://www.ixora.com.au/scripts/query_opt.htm - // requires oracle 8.1.7 or later - function ExpensiveSQL($numsql = 10) - { - $sql = " -select - substr(to_char(s.pct, '99.00'), 2) || '%' load, - s.executions executes, - p.sql_text -from - ( - select - address, - disk_reads, - executions, - pct, - rank() over (order by disk_reads desc) ranking - from - ( - select - address, - disk_reads, - executions, - 100 * ratio_to_report(disk_reads) over () pct - from - sys.v_\$sql - where - command_type != 47 and module != 'T.O.A.D.' - ) - where - disk_reads > 50 * executions - ) s, - sys.v_\$sqltext p -where - s.ranking <= $numsql and - p.address = s.address -order by - 1 desc, s.address, p.piece -"; - global $ADODB_CACHE_MODE; - if (isset($_GET['expeixora']) && isset($_GET['sql'])) { - $partial = empty($_GET['part']); - echo "".$this->Explain($_GET['sql'],$partial)."\n"; - } - if (isset($_GET['sql'])) { - $var = $this->_ExpensiveSQL($numsql); - return $var; - } - - $s = ''; - $timer = time(); - $s .= $this->_ExpensiveSQL($numsql); - $timer = time() - $timer; - if ($timer > $this->noShowIxora) return $s; - - $s .= '

'; - $save = $ADODB_CACHE_MODE; - $ADODB_CACHE_MODE = ADODB_FETCH_NUM; - if ($this->conn->fetchMode !== false) $savem = $this->conn->SetFetchMode(false); - - $savelog = $this->conn->LogSQL(false); - $rs = $this->conn->Execute($sql); - $this->conn->LogSQL($savelog); - - if (isset($savem)) $this->conn->SetFetchMode($savem); - $ADODB_CACHE_MODE = $save; - - if ($rs) { - $s .= "\n

Ixora Expensive SQL

"; - $s .= $this->tohtml($rs,'expeixora'); - } - - return $s; - } - - function clearsql() - { - $perf_table = adodb_perf::table(); - // using the naive "delete from $perf_table where created<".$this->conn->sysTimeStamp will cause the table to lock, possibly - // for a long time - $sql = -"DECLARE cnt pls_integer; -BEGIN - cnt := 0; - FOR rec IN (SELECT ROWID AS rr FROM $perf_table WHERE createdconn->Execute($sql); - } - -} -?> \ No newline at end of file diff --git a/src/adodb5/perf/perf-postgres.inc.php b/src/adodb5/perf/perf-postgres.inc.php deleted file mode 100644 index 7d3ad83f..00000000 --- a/src/adodb5/perf/perf-postgres.inc.php +++ /dev/null @@ -1,153 +0,0 @@ - array('RATIO', - "select case when count(*)=3 then 'TRUE' else 'FALSE' end from pg_settings where (name='stats_block_level' or name='stats_row_level' or name='stats_start_collector') and setting='on' ", - 'Value must be TRUE to enable hit ratio statistics (stats_start_collector,stats_row_level and stats_block_level must be set to true in postgresql.conf)'), - 'data cache hit ratio' => array('RATIO', - "select case when blks_hit=0 then 0 else round( ((1-blks_read::float/blks_hit)*100)::numeric, 2) end from pg_stat_database where datname='\$DATABASE'", - '=WarnCacheRatio'), - 'IO', - 'data reads' => array('IO', - 'select sum(heap_blks_read+toast_blks_read) from pg_statio_user_tables', - ), - 'data writes' => array('IO', - 'select round((sum(n_tup_ins/4.0+n_tup_upd/8.0+n_tup_del/4.0)/16)::numeric,2) from pg_stat_user_tables', - 'Count of inserts/updates/deletes * coef'), - - 'Data Cache', - 'data cache buffers' => array('DATAC', - "select setting from pg_settings where name='shared_buffers'", - 'Number of cache buffers. Tuning'), - 'cache blocksize' => array('DATAC', - 'select 8192', - '(estimate)' ), - 'data cache size' => array( 'DATAC', - "select setting::integer*8192 from pg_settings where name='shared_buffers'", - '' ), - 'operating system cache size' => array( 'DATA', - "select setting::integer*8192 from pg_settings where name='effective_cache_size'", - '(effective cache size)' ), - 'Memory Usage', - # Postgres 7.5 changelog: Rename server parameters SortMem and VacuumMem to work_mem and maintenance_work_mem; - 'sort/work buffer size' => array('CACHE', - "select setting::integer*1024 from pg_settings where name='sort_mem' or name = 'work_mem' order by name", - 'Size of sort buffer (per query)' ), - 'Connections', - 'current connections' => array('SESS', - 'select count(*) from pg_stat_activity', - ''), - 'max connections' => array('SESS', - "select setting from pg_settings where name='max_connections'", - ''), - 'Parameters', - 'rollback buffers' => array('COST', - "select setting from pg_settings where name='wal_buffers'", - 'WAL buffers'), - 'random page cost' => array('COST', - "select setting from pg_settings where name='random_page_cost'", - 'Cost of doing a seek (default=4). See random_page_cost'), - false - ); - - function __construct(&$conn) - { - $this->conn = $conn; - } - - var $optimizeTableLow = 'VACUUM %s'; - var $optimizeTableHigh = 'VACUUM ANALYZE %s'; - -/** - * @see adodb_perf#optimizeTable - */ - - function optimizeTable($table, $mode = ADODB_OPT_LOW) - { - if(! is_string($table)) return false; - - $conn = $this->conn; - if (! $conn) return false; - - $sql = ''; - switch($mode) { - case ADODB_OPT_LOW : $sql = $this->optimizeTableLow; break; - case ADODB_OPT_HIGH: $sql = $this->optimizeTableHigh; break; - default : - { - ADOConnection::outp(sprintf("

%s: '%s' using of undefined mode '%s'

", __CLASS__, 'optimizeTable', $mode)); - return false; - } - } - $sql = sprintf($sql, $table); - - return $conn->Execute($sql) !== false; - } - - function Explain($sql,$partial=false) - { - $save = $this->conn->LogSQL(false); - - if ($partial) { - $sqlq = $this->conn->qstr($sql.'%'); - $arr = $this->conn->GetArray("select distinct distinct sql1 from adodb_logsql where sql1 like $sqlq"); - if ($arr) { - foreach($arr as $row) { - $sql = reset($row); - if (crc32($sql) == $partial) break; - } - } - } - $sql = str_replace('?',"''",$sql); - $s = '

Explain: '.htmlspecialchars($sql).'

'; - $rs = $this->conn->Execute('EXPLAIN '.$sql); - $this->conn->LogSQL($save); - $s .= '
';
-		if ($rs)
-			while (!$rs->EOF) {
-				$s .= reset($rs->fields)."\n";
-				$rs->MoveNext();
-			}
-		$s .= '
'; - $s .= $this->Tracer($sql,$partial); - return $s; - } -} -?> \ No newline at end of file diff --git a/src/adodb5/pivottable.inc.php b/src/adodb5/pivottable.inc.php index 89789030..2967f333 100644 --- a/src/adodb5/pivottable.inc.php +++ b/src/adodb5/pivottable.inc.php @@ -123,7 +123,7 @@ function PivotTableSQL(&$db,$tables,$rowfields,$colfield, $where=false, print "
$sql";
  $rs = $gDB->Execute($sql);
  rs2html($rs);
- 
+
 /*
 Generated SQL:
 
@@ -171,7 +171,7 @@ function PivotTableSQL(&$db,$tables,$rowfields,$colfield, $where=false,
  rs2html($rs);
  /*
  Generated SQL:
- 
+
 SELECT CompanyName,QuantityPerUnit, 
 	SUM(CASE WHEN UnitsInStock <= 0 THEN UnitsInStock ELSE 0 END) AS "Sum  0 ", 
 	SUM(CASE WHEN 0 < UnitsInStock and UnitsInStock <= 5 THEN UnitsInStock ELSE 0 END) AS "Sum 1 to 5", 
@@ -184,4 +184,4 @@ function PivotTableSQL(&$db,$tables,$rowfields,$colfield, $where=false,
 GROUP BY CompanyName,QuantityPerUnit
  */
 }
-?>
\ No newline at end of file
+?>
diff --git a/src/adodb5/server.php b/src/adodb5/server.php
index 09383de9..8f6a5df3 100644
--- a/src/adodb5/server.php
+++ b/src/adodb5/server.php
@@ -73,7 +73,7 @@ function err($s)
 	
 if (isset($_REQUEST['nrows'])) {
 	$nrows = $_REQUEST['nrows'];
-	$offset = isset($_REQUEST['offset']) ? $_REQUEST['offset'] : -1;
+	$offset = $_REQUEST['offset'] ?? -1;
 	$rs = $conn->SelectLimit($sql,$nrows,$offset);
 } else 
 	$rs = $conn->Execute($sql);
diff --git a/src/adodb5/session/adodb-compress-bzip2.php b/src/adodb5/session/adodb-compress-bzip2.php
index d786f1b1..47706995 100644
--- a/src/adodb5/session/adodb-compress-bzip2.php
+++ b/src/adodb5/session/adodb-compress-bzip2.php
@@ -39,8 +39,8 @@ function getBlockSize() {
 	/**
 	 */
 	function setBlockSize($block_size) {
-		assert('$block_size >= 1');
-		assert('$block_size <= 9');
+		assert($block_size >= 1);
+		assert($block_size <= 9);
 		$this->_block_size = (int) $block_size;
 	}
 
@@ -53,8 +53,8 @@ function getWorkLevel() {
 	/**
 	 */
 	function setWorkLevel($work_level) {
-		assert('$work_level >= 0');
-		assert('$work_level <= 250');
+		assert($work_level >= 0);
+		assert($work_level <= 250);
 		$this->_work_level = (int) $work_level;
 	}
 
@@ -67,7 +67,7 @@ function getMinLength() {
 	/**
 	 */
 	function setMinLength($min_length) {
-		assert('$min_length >= 0');
+		assert($min_length >= 0);
 		$this->_min_length = (int) $min_length;
 	}
 
diff --git a/src/adodb5/session/adodb-compress-gzip.php b/src/adodb5/session/adodb-compress-gzip.php
index 300e6c9f..58b7d5cf 100644
--- a/src/adodb5/session/adodb-compress-gzip.php
+++ b/src/adodb5/session/adodb-compress-gzip.php
@@ -36,8 +36,8 @@ function getLevel() {
 	/**
 	 */
 	function setLevel($level) {
-		assert('$level >= 0');
-		assert('$level <= 9');
+		assert($level >= 0);
+		assert($level <= 9);
 		$this->_level = (int) $level;
 	}
 
@@ -50,7 +50,7 @@ function getMinLength() {
 	/**
 	 */
 	function setMinLength($min_length) {
-		assert('$min_length >= 0');
+		assert($min_length >= 0);
 		$this->_min_length = (int) $min_length;
 	}
 
@@ -90,4 +90,4 @@ function read($data, $key) {
 
 return 1;
 
-?>
\ No newline at end of file
+?>
diff --git a/src/adodb5/session/adodb-cryptsession.php b/src/adodb5/session/adodb-cryptsession.php
index 13fe77bc..2dfa9ac8 100644
--- a/src/adodb5/session/adodb-cryptsession.php
+++ b/src/adodb5/session/adodb-cryptsession.php
@@ -17,11 +17,11 @@
 */
 
 if (!defined('ADODB_SESSION')) {
-	require_once dirname(__FILE__) . '/adodb-session.php';
+	require_once __DIR__ . '/adodb-session.php';
 }
 
 require_once  ADODB_SESSION . '/adodb-encrypt-md5.php';
 
 ADODB_Session::filter(new ADODB_Encrypt_MD5());
 
-?>
\ No newline at end of file
+?>
diff --git a/src/adodb5/session/adodb-cryptsession2.php b/src/adodb5/session/adodb-cryptsession2.php
index d53f5a1a..9183e9e6 100644
--- a/src/adodb5/session/adodb-cryptsession2.php
+++ b/src/adodb5/session/adodb-cryptsession2.php
@@ -17,11 +17,11 @@
 */
 
 if (!defined('ADODB_SESSION')) {
-	require_once dirname(__FILE__) . '/adodb-session2.php';
+	require_once __DIR__ . '/adodb-session2.php';
 }
 
 require_once  ADODB_SESSION . '/adodb-encrypt-md5.php';
 
 ADODB_Session::filter(new ADODB_Encrypt_MD5());
 
-?>
\ No newline at end of file
+?>
diff --git a/src/adodb5/session/adodb-encrypt-secret.php b/src/adodb5/session/adodb-encrypt-secret.php
index ed185a8b..e962e903 100644
--- a/src/adodb5/session/adodb-encrypt-secret.php
+++ b/src/adodb5/session/adodb-encrypt-secret.php
@@ -10,7 +10,7 @@
 
 */
 
-@define('HORDE_BASE', dirname(dirname(dirname(__FILE__))) . '/horde');
+@define('HORDE_BASE', dirname(__FILE__, 3) . '/horde');
 
 if (!is_dir(HORDE_BASE)) {
 	trigger_error(sprintf('Directory not found: \'%s\'', HORDE_BASE), E_USER_ERROR);
diff --git a/src/adodb5/session/adodb-session-clob.php b/src/adodb5/session/adodb-session-clob.php
index 664a39af..71e61c0c 100644
--- a/src/adodb5/session/adodb-session-clob.php
+++ b/src/adodb5/session/adodb-session-clob.php
@@ -17,8 +17,8 @@
 */
 
 if (!defined('ADODB_SESSION')) {
-	require_once dirname(__FILE__) . '/adodb-session.php';
+	require_once __DIR__ . '/adodb-session.php';
 }
 ADODB_Session::clob('CLOB');
 
-?>
\ No newline at end of file
+?>
diff --git a/src/adodb5/session/adodb-session-clob2.php b/src/adodb5/session/adodb-session-clob2.php
index 7e8eb6cb..c8e30492 100644
--- a/src/adodb5/session/adodb-session-clob2.php
+++ b/src/adodb5/session/adodb-session-clob2.php
@@ -17,8 +17,8 @@
 */
 
 if (!defined('ADODB_SESSION')) {
-	require_once dirname(__FILE__) . '/adodb-session2.php';
+	require_once __DIR__ . '/adodb-session2.php';
 }
 ADODB_Session::clob('CLOB');
 
-?>
\ No newline at end of file
+?>
diff --git a/src/adodb5/session/adodb-session.php b/src/adodb5/session/adodb-session.php
index a787e988..e97707e7 100644
--- a/src/adodb5/session/adodb-session.php
+++ b/src/adodb5/session/adodb-session.php
@@ -26,12 +26,12 @@
 */
 
 if (!defined('_ADODB_LAYER')) {
-	require realpath(dirname(__FILE__) . '/../adodb.inc.php');
+	require realpath(__DIR__ . '/../adodb.inc.php');
 }
 
 if (defined('ADODB_SESSION')) return 1;
 
-define('ADODB_SESSION', dirname(__FILE__));
+define('ADODB_SESSION', __DIR__);
 
 
 /* 
@@ -47,7 +47,7 @@ function adodb_unserialize( $serialized_string )
 {
 	$variables = array( );
 	$a = preg_split( "/(\w+)\|/", $serialized_string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE );
-	for( $i = 0; $i < count( $a ); $i = $i+2 ) {
+	for( $i = 0; $i < (is_countable($a) ? count( $a ) : 0); $i = $i+2 ) {
 		$variables[$a[$i]] = unserialize( $a[$i+1] );
 	}
 	return( $variables );
@@ -59,6 +59,7 @@ function adodb_unserialize( $serialized_string )
 */
 function adodb_session_regenerate_id() 
 {
+	$ck = [];
 	$conn = ADODB_Session::_conn();
 	if (!$conn) return false;
 
@@ -66,9 +67,9 @@ function adodb_session_regenerate_id()
 	if (function_exists('session_regenerate_id')) {
 		session_regenerate_id();
 	} else {
-		session_id(md5(uniqid(rand(), true)));
+		session_id(md5(uniqid(random_int(0, mt_getrandmax()), true)));
 		$ck = session_get_cookie_params();
-		setcookie(session_name(), session_id(), false, $ck['path'], $ck['domain'], $ck['secure']);
+		setcookie(session_name(), session_id(), ['expires' => false, 'path' => $ck['path'], 'domain' => $ck['domain'], 'secure' => $ck['secure']]);
 		//@session_start();
 	}
 	$new_id = session_id();
@@ -78,7 +79,7 @@ function adodb_session_regenerate_id()
 	if (!$ok) {
 		session_id($old_id);
 		if (empty($ck)) $ck = session_get_cookie_params();
-		setcookie(session_name(), session_id(), false, $ck['path'], $ck['domain'], $ck['secure']);
+		setcookie(session_name(), session_id(), ['expires' => false, 'path' => $ck['path'], 'domain' => $ck['domain'], 'secure' => $ck['secure']]);
 		return false;
 	}
 	
@@ -672,8 +673,8 @@ function write($key, $val)
 			$expirevar = '';
 			if ($expire_notify) {
 				$var = reset($expire_notify);
-				if (isset($$var)) {
-					$expirevar = $$var;
+				if (isset(${$var})) {
+					$expirevar = ${$var};
 				}
 			}
 			
@@ -692,8 +693,8 @@ function write($key, $val)
 		$arr = array('sesskey' => $key, 'expiry' => $expiry, $data => $val, 'expireref' => '');
 		if ($expire_notify) {
 			$var = reset($expire_notify);
-			if (isset($$var)) {
-				$arr['expireref'] = $$var;
+			if (isset(${$var})) {
+				$arr['expireref'] = ${$var};
 			}
 		}
 
@@ -929,4 +930,4 @@ function adodb_sess_gc($t)
 	return ADODB_Session::gc($t);
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/src/adodb5/session/adodb-session2.php b/src/adodb5/session/adodb-session2.php
index 37c1264f..b483d323 100644
--- a/src/adodb5/session/adodb-session2.php
+++ b/src/adodb5/session/adodb-session2.php
@@ -56,12 +56,12 @@
 */
 
 if (!defined('_ADODB_LAYER')) {
-	require realpath(dirname(__FILE__) . '/../adodb.inc.php');
+	require realpath(__DIR__ . '/../adodb.inc.php');
 }
 
 if (defined('ADODB_SESSION')) return 1;
 
-define('ADODB_SESSION', dirname(__FILE__));
+define('ADODB_SESSION', __DIR__);
 define('ADODB_SESSION2', ADODB_SESSION);
 
 /* 
@@ -77,7 +77,7 @@ function adodb_unserialize( $serialized_string )
 {
 	$variables = array( );
 	$a = preg_split( "/(\w+)\|/", $serialized_string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE );
-	for( $i = 0; $i < count( $a ); $i = $i+2 ) {
+	for( $i = 0; $i < (is_countable($a) ? count( $a ) : 0); $i = $i+2 ) {
 		$variables[$a[$i]] = unserialize( $a[$i+1] );
 	}
 	return( $variables );
@@ -89,6 +89,7 @@ function adodb_unserialize( $serialized_string )
 */
 function adodb_session_regenerate_id() 
 {
+	$ck = [];
 	$conn = ADODB_Session::_conn();
 	if (!$conn) return false;
 
@@ -96,9 +97,9 @@ function adodb_session_regenerate_id()
 	if (function_exists('session_regenerate_id')) {
 		session_regenerate_id();
 	} else {
-		session_id(md5(uniqid(rand(), true)));
+		session_id(md5(uniqid(random_int(0, mt_getrandmax()), true)));
 		$ck = session_get_cookie_params();
-		setcookie(session_name(), session_id(), false, $ck['path'], $ck['domain'], $ck['secure']);
+		setcookie(session_name(), session_id(), ['expires' => false, 'path' => $ck['path'], 'domain' => $ck['domain'], 'secure' => $ck['secure']]);
 		//@session_start();
 	}
 	$new_id = session_id();
@@ -108,7 +109,7 @@ function adodb_session_regenerate_id()
 	if (!$ok) {
 		session_id($old_id);
 		if (empty($ck)) $ck = session_get_cookie_params();
-		setcookie(session_name(), session_id(), false, $ck['path'], $ck['domain'], $ck['secure']);
+		setcookie(session_name(), session_id(), ['expires' => false, 'path' => $ck['path'], 'domain' => $ck['domain'], 'secure' => $ck['secure']]);
 		return false;
 	}
 	
@@ -444,7 +445,7 @@ static function encryptionKey($encryption_key = null) {
 	/*!
 	*/
 	static function _conn($conn=null) {
-		return isset($GLOBALS['ADODB_SESS_CONN']) ? $GLOBALS['ADODB_SESS_CONN'] : false;
+		return $GLOBALS['ADODB_SESS_CONN'] ?? false;
 	}
 
 	/*!
@@ -657,6 +658,7 @@ static function read($key)
 	*/
 	static function write($key, $oval) 
 	{
+	$qkey = null;
 	global $ADODB_SESSION_READONLY;
 	
 		if (!empty($ADODB_SESSION_READONLY)) return;
@@ -693,8 +695,8 @@ static function write($key, $oval)
 			$expirevar = '';
 			if ($expire_notify) {
 				$var = reset($expire_notify);
-				if (isset($$var)) {
-					$expirevar = $$var;
+				if (isset(${$var})) {
+					$expirevar = ${$var};
 				}
 			}
 			
@@ -713,8 +715,8 @@ static function write($key, $oval)
 		$expireref = '';
 		if ($expire_notify) {
 			$var = reset($expire_notify);
-			if (isset($$var)) {
-				$expireref = $$var;
+			if (isset(${$var})) {
+				$expireref = ${$var};
 			}
 		} 
 
@@ -940,4 +942,4 @@ function adodb_sess_gc($t)
 	return ADODB_Session::gc($t);
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/src/adodb5/session/adodb-sessions.oracle.clob.sql b/src/adodb5/session/adodb-sessions.oracle.clob.sql
deleted file mode 100644
index c5c4f2d0..00000000
--- a/src/adodb5/session/adodb-sessions.oracle.clob.sql
+++ /dev/null
@@ -1,15 +0,0 @@
--- $CVSHeader$
-
-DROP TABLE adodb_sessions;
-
-CREATE TABLE sessions (
-	sesskey		CHAR(32)	DEFAULT '' NOT NULL,
-	expiry		INT		DEFAULT 0 NOT NULL,
-	expireref	VARCHAR(64)	DEFAULT '',
-	data		CLOB		DEFAULT '',
-	PRIMARY KEY	(sesskey)
-);
-
-CREATE INDEX ix_expiry ON sessions (expiry);
-
-QUIT;
diff --git a/src/adodb5/session/adodb-sessions.oracle.sql b/src/adodb5/session/adodb-sessions.oracle.sql
deleted file mode 100644
index 8fd5a342..00000000
--- a/src/adodb5/session/adodb-sessions.oracle.sql
+++ /dev/null
@@ -1,16 +0,0 @@
--- $CVSHeader$
-
-DROP TABLE adodb_sessions;
-
-CREATE TABLE sessions (
-	sesskey		CHAR(32)	DEFAULT '' NOT NULL,
-	expiry		INT		DEFAULT 0 NOT NULL,
-	expireref	VARCHAR(64)	DEFAULT '',
-	data		VARCHAR(4000)	DEFAULT '',
-	PRIMARY KEY	(sesskey),
-	INDEX expiry (expiry)
-);
-
-CREATE INDEX ix_expiry ON sessions (expiry);
-
-QUIT;
diff --git a/src/adodb5/session/crypt.inc.php b/src/adodb5/session/crypt.inc.php
index 41cb06a5..3769459a 100644
--- a/src/adodb5/session/crypt.inc.php
+++ b/src/adodb5/session/crypt.inc.php
@@ -16,8 +16,8 @@ function keyED($txt,$encrypt_key)
 
 		function Encrypt($txt,$key)
 		{
-				srand((double)microtime()*1000000);
-				$encrypt_key = md5(rand(0,32000));
+				mt_srand((double)microtime()*1_000_000);
+				$encrypt_key = md5(random_int(0,32000));
 				$ctr=0;
 				$tmp = "";
 				for ($i=0;$i= 58 && $randnumber <= 64) || ($randnumber >= 91 && $randnumber <= 96))
 						{
-								$randnumber = rand(48,120);
+								$randnumber = random_int(48,120);
 						}
 
 						$randomPassword .= chr($randnumber);
@@ -86,8 +86,8 @@ function keyED($txt,$encrypt_key)
 		function Encrypt($txt,$key)
 		{
 
-				srand((double)microtime()*1000000);
-				$encrypt_key = sha1(rand(0,32000));
+				mt_srand((double)microtime()*1_000_000);
+				$encrypt_key = sha1(random_int(0,32000));
 				$ctr=0;
 				$tmp = "";
 
@@ -136,16 +136,16 @@ function Decrypt($txt,$key)
 		function RandPass()
 		{
 				$randomPassword = "";
-				srand((double)microtime()*1000000);
+				mt_srand((double)microtime()*1_000_000);
 
 				for($i=0;$i<8;$i++)
 				{
 
-						$randnumber = rand(48,120);
+						$randnumber = random_int(48,120);
 
 						while (($randnumber >= 58 && $randnumber <= 64) || ($randnumber >= 91 && $randnumber <= 96))
 						{
-								$randnumber = rand(48,120);
+								$randnumber = random_int(48,120);
 						}
 
 						$randomPassword .= chr($randnumber);
@@ -158,4 +158,4 @@ function RandPass()
 
 
 }
-?>
\ No newline at end of file
+?>
diff --git a/src/adodb5/session/old/adodb-cryptsession.php b/src/adodb5/session/old/adodb-cryptsession.php
index 600d184e..fdc53bff 100644
--- a/src/adodb5/session/old/adodb-cryptsession.php
+++ b/src/adodb5/session/old/adodb-cryptsession.php
@@ -6,18 +6,18 @@
   the BSD license will take precedence.
 	Made table name configurable - by David Johnson djohnson@inpro.net
 	Encryption by Ari Kuorikoski 
-	
+
   Set tabs to 4 for best viewing.
-  
+
   Latest version of ADODB is available at http://php.weblogs.com/adodb
   ======================================================================
-  
+
  This file provides PHP4 session management using the ADODB database
 wrapper library.
- 
+
  Example
  =======
- 
+
 	include('adodb.inc.php');
 	#---------------------------------#
 	include('adodb-cryptsession.php'); 
@@ -28,12 +28,12 @@
 	print "
 -- \$_SESSION['AVAR']={$_SESSION['AVAR']}

"; - + Installation ============ 1. Create a new database in MySQL or Access "sessions" like so: - + create table sessions ( SESSKEY char(32) not null, EXPIRY int(11) unsigned not null, @@ -41,17 +41,17 @@ DATA CLOB, primary key (sesskey) ); - + 2. Then define the following parameters. You can either modify this file, or define them before this file is included: - + $ADODB_SESSION_DRIVER='database driver, eg. mysql or ibase'; $ADODB_SESSION_CONNECT='server to connect to'; $ADODB_SESSION_USER ='user'; $ADODB_SESSION_PWD ='password'; $ADODB_SESSION_DB ='database'; $ADODB_SESSION_TBL = 'sessions' - + 3. Recommended is PHP 4.0.2 or later. There are documented session bugs in earlier versions of PHP. @@ -61,7 +61,7 @@ include_once('crypt.inc.php'); if (!defined('_ADODB_LAYER')) { - include (dirname(__FILE__).'/adodb.inc.php'); + include (__DIR__.'/adodb.inc.php'); } /* if database time and system time is difference is greater than this, then give warning */ @@ -70,7 +70,7 @@ if (!defined('ADODB_SESSION')) { define('ADODB_SESSION',1); - + GLOBAL $ADODB_SESSION_CONNECT, $ADODB_SESSION_DRIVER, $ADODB_SESSION_USER, @@ -84,7 +84,7 @@ $ADODB_SESSION_TBL; //$ADODB_SESS_DEBUG = true; - + /* SET THE FOLLOWING PARAMETERS */ if (empty($ADODB_SESSION_DRIVER)) { $ADODB_SESSION_DRIVER='mysql'; @@ -127,11 +127,11 @@ function adodb_sess_open($save_path, $session_name) $ADODB_SESSION_DB, $ADODB_SESS_CONN, $ADODB_SESS_DEBUG; - + $ADODB_SESS_INSERT = false; - + if (isset($ADODB_SESS_CONN)) return true; - + $ADODB_SESS_CONN = ADONewConnection($ADODB_SESSION_DRIVER); if (!empty($ADODB_SESS_DEBUG)) { $ADODB_SESS_CONN->debug = true; @@ -139,7 +139,7 @@ function adodb_sess_open($save_path, $session_name) } return $ADODB_SESS_CONN->PConnect($ADODB_SESSION_CONNECT, $ADODB_SESSION_USER,$ADODB_SESSION_PWD,$ADODB_SESSION_DB); - + } function adodb_sess_close() @@ -167,7 +167,7 @@ function adodb_sess_read($key) return $v; } else $ADODB_SESS_INSERT = true; - + return ''; } @@ -180,11 +180,11 @@ function adodb_sess_write($key, $val) // encrypt session data.. $val = $Crypt->Encrypt(rawurlencode($val), ADODB_Session_Key()); - + $arr = array('sesskey' => $key, 'expiry' => $expiry, 'data' => $val); if ($ADODB_SESSION_EXPIRE_NOTIFY) { $var = reset($ADODB_SESSION_EXPIRE_NOTIFY); - $arr['expireref'] = $$var; + $arr['expireref'] = ${$var}; } $rs = $ADODB_SESS_CONN->Replace($ADODB_SESSION_TBL, $arr, @@ -196,7 +196,7 @@ function adodb_sess_write($key, $val) } else { // bug in access driver (could be odbc?) means that info is not commited // properly unless select statement executed in Win2000 - + if ($ADODB_SESS_CONN->databaseType == 'access') $rs = $ADODB_SESS_CONN->Execute("select sesskey from $ADODB_SESSION_TBL WHERE sesskey='$key'"); } return isset($rs); @@ -205,7 +205,7 @@ function adodb_sess_write($key, $val) function adodb_sess_destroy($key) { global $ADODB_SESS_CONN, $ADODB_SESSION_TBL,$ADODB_SESSION_EXPIRE_NOTIFY; - + if ($ADODB_SESSION_EXPIRE_NOTIFY) { reset($ADODB_SESSION_EXPIRE_NOTIFY); $fn = next($ADODB_SESSION_EXPIRE_NOTIFY); @@ -251,7 +251,7 @@ function adodb_sess_gc($maxlifetime) { $rs->MoveNext(); } $rs->Close(); - + $ADODB_SESS_CONN->Execute("DELETE FROM $ADODB_SESSION_TBL WHERE expiry < $t"); $ADODB_SESS_CONN->CommitTrans(); } @@ -259,12 +259,12 @@ function adodb_sess_gc($maxlifetime) { $qry = "DELETE FROM $ADODB_SESSION_TBL WHERE expiry < " . time(); $ADODB_SESS_CONN->Execute($qry); } - + // suggested by Cameron, "GaM3R" if (defined('ADODB_SESSION_OPTIMIZE')) { global $ADODB_SESSION_DRIVER; - + switch( $ADODB_SESSION_DRIVER ) { case 'mysql': case 'mysqlt': @@ -276,13 +276,13 @@ function adodb_sess_gc($maxlifetime) { break; } } - + if ($ADODB_SESS_CONN->dataProvider === 'oci8') $sql = 'select TO_CHAR('.($ADODB_SESS_CONN->sysTimeStamp).', \'RRRR-MM-DD HH24:MI:SS\') from '. $ADODB_SESSION_TBL; else $sql = 'select '.$ADODB_SESS_CONN->sysTimeStamp.' from '. $ADODB_SESSION_TBL; - + $rs = $ADODB_SESS_CONN->SelectLimit($sql,1); if ($rs && !$rs->EOF) { - + $dbts = reset($rs->fields); $rs->Close(); $dbt = $ADODB_SESS_CONN->UnixTimeStamp($dbts); @@ -295,7 +295,7 @@ function adodb_sess_gc($maxlifetime) { -- $msg

"); } } - + return true; } diff --git a/src/adodb5/session/old/adodb-session-clob.php b/src/adodb5/session/old/adodb-session-clob.php index c31d0dc0..2cd1d35f 100644 --- a/src/adodb5/session/old/adodb-session-clob.php +++ b/src/adodb5/session/old/adodb-session-clob.php @@ -87,7 +87,7 @@ function NotifyFn($expireref, $sesskey) */ if (!defined('_ADODB_LAYER')) { - include (dirname(__FILE__).'/adodb.inc.php'); + include (__DIR__.'/adodb.inc.php'); } if (!defined('ADODB_SESSION')) { @@ -219,15 +219,15 @@ function adodb_sess_read($key) $v = ''; } else $v = rawurldecode(reset($rs->fields)); - + $rs->Close(); - + // new optimization adodb 2.1 $ADODB_SESSION_CRC = strlen($v).crc32($v); - + return $v; } - + return ''; // thx to Jorma Tuomainen, webmaster#wizactive.com } @@ -238,6 +238,7 @@ function adodb_sess_read($key) \****************************************************************************************/ function adodb_sess_write($key, $val) { + $err = null; global $ADODB_SESS_CONN, $ADODB_SESS_LIFE, @@ -264,7 +265,7 @@ function adodb_sess_write($key, $val) $arr = array('sesskey' => $key, 'expiry' => $expiry, 'data' => $val); if ($ADODB_SESSION_EXPIRE_NOTIFY) { $var = reset($ADODB_SESSION_EXPIRE_NOTIFY); - $arr['expireref'] = $$var; + $arr['expireref'] = ${$var}; } @@ -353,6 +354,8 @@ function adodb_sess_destroy($key) function adodb_sess_gc($maxlifetime) { + $qry = null; + $opt_qry = null; global $ADODB_SESS_DEBUG, $ADODB_SESS_CONN, $ADODB_SESSION_TBL,$ADODB_SESSION_EXPIRE_NOTIFY; if ($ADODB_SESSION_EXPIRE_NOTIFY) { diff --git a/src/adodb5/session/old/adodb-session.php b/src/adodb5/session/old/adodb-session.php index 45327003..8385d2f1 100644 --- a/src/adodb5/session/old/adodb-session.php +++ b/src/adodb5/session/old/adodb-session.php @@ -97,7 +97,7 @@ function NotifyFn($expireref, $sesskey) */ if (!defined('_ADODB_LAYER')) { - include (dirname(__FILE__).'/adodb.inc.php'); + include (__DIR__.'/adodb.inc.php'); } if (!defined('ADODB_SESSION')) { @@ -112,6 +112,7 @@ function NotifyFn($expireref, $sesskey) */ function adodb_session_regenerate_id() { + $ck = []; $conn = ADODB_Session::_conn(); if (!$conn) return false; @@ -119,9 +120,9 @@ function adodb_session_regenerate_id() if (function_exists('session_regenerate_id')) { session_regenerate_id(); } else { - session_id(md5(uniqid(rand(), true))); + session_id(md5(uniqid(random_int(0, mt_getrandmax()), true))); $ck = session_get_cookie_params(); - setcookie(session_name(), session_id(), false, $ck['path'], $ck['domain'], $ck['secure']); + setcookie(session_name(), session_id(), ['expires' => false, 'path' => $ck['path'], 'domain' => $ck['domain'], 'secure' => $ck['secure']]); //@session_start(); } $new_id = session_id(); @@ -131,7 +132,7 @@ function adodb_session_regenerate_id() if (!$ok) { session_id($old_id); if (empty($ck)) $ck = session_get_cookie_params(); - setcookie(session_name(), session_id(), false, $ck['path'], $ck['domain'], $ck['secure']); + setcookie(session_name(), session_id(), ['expires' => false, 'path' => $ck['path'], 'domain' => $ck['domain'], 'secure' => $ck['secure']]); return false; } @@ -252,15 +253,15 @@ function adodb_sess_read($key) $v = ''; } else $v = rawurldecode(reset($rs->fields)); - + $rs->Close(); - + // new optimization adodb 2.1 $ADODB_SESSION_CRC = strlen($v).crc32($v); - + return $v; } - + return ''; // thx to Jorma Tuomainen, webmaster#wizactive.com } @@ -295,7 +296,7 @@ function adodb_sess_write($key, $val) $arr = array('sesskey' => $key, 'expiry' => $expiry, 'data' => $val); if ($ADODB_SESSION_EXPIRE_NOTIFY) { $var = reset($ADODB_SESSION_EXPIRE_NOTIFY); - $arr['expireref'] = $$var; + $arr['expireref'] = ${$var}; } $rs = $ADODB_SESS_CONN->Replace($ADODB_SESSION_TBL,$arr, 'sesskey',$autoQuote = true); @@ -342,6 +343,7 @@ function adodb_sess_destroy($key) function adodb_sess_gc($maxlifetime) { + $opt_qry = null; global $ADODB_SESS_DEBUG, $ADODB_SESS_CONN, $ADODB_SESSION_TBL,$ADODB_SESSION_EXPIRE_NOTIFY; if ($ADODB_SESSION_EXPIRE_NOTIFY) { @@ -434,4 +436,4 @@ function adodb_sess_gc($maxlifetime) -- \$_SESSION['AVAR']={$_SESSION['AVAR']}

",false); } -?> \ No newline at end of file +?> diff --git a/src/adodb5/session/old/crypt.inc.php b/src/adodb5/session/old/crypt.inc.php index b99bbba5..c4da9b06 100644 --- a/src/adodb5/session/old/crypt.inc.php +++ b/src/adodb5/session/old/crypt.inc.php @@ -16,8 +16,8 @@ function keyED($txt,$encrypt_key) function Encrypt($txt,$key) { - srand((double)microtime()*1000000); - $encrypt_key = md5(rand(0,32000)); + mt_srand((double)microtime()*1_000_000); + $encrypt_key = md5(random_int(0,32000)); $ctr=0; $tmp = ""; for ($i=0;$i= 58 && $randnumber <= 64) || ($randnumber >= 91 && $randnumber <= 96)) { - $randnumber = rand(48,120); + $randnumber = random_int(48,120); } $randomPassword .= chr($randnumber); @@ -61,4 +61,4 @@ function RandPass() } } -?> \ No newline at end of file +?> diff --git a/src/adodb5/toexport.inc.php b/src/adodb5/toexport.inc.php index a9017dd4..ff4c6bd6 100644 --- a/src/adodb5/toexport.inc.php +++ b/src/adodb5/toexport.inc.php @@ -62,6 +62,7 @@ function rs2tabout(&$rs,$addtitles=true) function _adodb_export(&$rs,$sep,$sepreplace,$fp=false,$addtitles=true,$quote = '"',$escquote = '"',$replaceNewLine = ' ') { + $elements = []; if (!$rs) return ''; //---------- // CONSTANTS @@ -100,7 +101,7 @@ function _adodb_export(&$rs,$sep,$sepreplace,$fp=false,$addtitles=true,$quote = if ($escquote) $v = str_replace($quote,$escquotequote,$v); $v = strip_tags(str_replace("\n", $replaceNewLine, str_replace("\r\n",$replaceNewLine,str_replace($sep,$sepreplace,$v)))); - if (strpos($v,$sep) !== false || strpos($v,$quote) !== false) $elements[] = "$quote$v$quote"; + if (strpos($v,(string) $sep) !== false || strpos($v,(string) $quote) !== false) $elements[] = "$quote$v$quote"; else $elements[] = $v; } } else { // ASSOCIATIVE ARRAY @@ -108,7 +109,7 @@ function _adodb_export(&$rs,$sep,$sepreplace,$fp=false,$addtitles=true,$quote = if ($escquote) $v = str_replace($quote,$escquotequote,trim($v)); $v = strip_tags(str_replace("\n", $replaceNewLine, str_replace("\r\n",$replaceNewLine,str_replace($sep,$sepreplace,$v)))); - if (strpos($v,$sep) !== false || strpos($v,$quote) !== false) $elements[] = "$quote$v$quote"; + if (strpos($v,(string) $sep) !== false || strpos($v,(string) $quote) !== false) $elements[] = "$quote$v$quote"; else $elements[] = $v; } } diff --git a/src/googleTranslate-1.7/LICENSE b/src/googleTranslate-1.7/LICENSE deleted file mode 100644 index d511905c..00000000 --- a/src/googleTranslate-1.7/LICENSE +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/GoogleTranslateWrapper.html b/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/GoogleTranslateWrapper.html deleted file mode 100644 index 08d89675..00000000 --- a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/GoogleTranslateWrapper.html +++ /dev/null @@ -1,751 +0,0 @@ - - - - - Docs For Class GoogleTranslateWrapper - - - - - - - - -

- Class GoogleTranslateWrapper -

(line 39) -
- - -
-

Description

-
-
-

- Located in File: /googleTranslate.class.php
-

- -
GoogleTranslateWrapper Main Class
- -

-
- -
- -

Class Variables

- -Summary:
-
- string - $_apiKey -
-
- array - $_chunks -
-
- string - $_currentChunk -
- -
- string - $_fromLang -
-
- string - $_googleDetectUrl -
-
- string - $_googleTranslateUrl -
-
- string - $_ip -
-
- string - $_postFields -
-
- string - $_serviceError -
-
- string - $_siteUrl -
-
- integer - $_stringLimit -
-
- boolean - $_success -
-
- string - $_text -
-
- string - $_toLang -
-
- integer - $_totalChunks -
-
- string - $_translatedText -
-
- string - $_version -
-
- -
-

- $_apiKey = '' (line 87) -

-

Data type : string

- -
Google API key
-
    -
  • access: - private
  • -
-
- -
-

- $_chunks = 0 (line 130) -

-

Data type : array

- -
Chunk array
-
    -
  • access: - private
  • -
-
- -
-

- $_currentChunk = 0 (line 136) -

-

Data type : string

- -
Current data chunk
-
    -
  • access: - private
  • -
-
- -
-

- $_detectedSourceLanguage = "" (line 148) -

-

Data type : string

- -
Detected source language
-
    -
  • access: - private
  • -
-
- -
-

- $_fromLang = '' (line 57) -

-

Data type : string

- -
Language to translate from
-
    -
  • access: - private
  • -
-
- -
-

- $_googleDetectUrl = 'http://ajax.googleapis.com/ajax/services/language/detect' (line 51) -

-

Data type : string

- -
URL of Google language detection
-
    -
  • access: - private
  • -
-
- -
-

- $_googleTranslateUrl = 'http://ajax.googleapis.com/ajax/services/language/translate' (line 45) -

-

Data type : string

- -
URL of Google translate
-
    -
  • access: - private
  • -
-
- -
-

- $_ip = '' (line 93) -

-

Data type : string

- -
Host IP address
-
    -
  • access: - private
  • -
-
- -
-

- $_postFields (line 99) -

-

Data type : string

- -
POST fields
-
    -
  • access: - private
  • -
-
- -
-

- $_serviceError = "" (line 111) -

-

Data type : string

- -
Service Error
-
    -
  • access: - private
  • -
-
- -
-

- $_siteUrl = '' (line 81) -

-

Data type : string

- -
Site url using the code
-
    -
  • access: - private
  • -
-
- -
-

- $_stringLimit = 5000 (line 124) -

-

Data type : integer

- -
Translation character limit.
-

Currently the limit set by Google is 5000

-
    -
  • access: - private
  • -
-
- -
-

- $_success = false (line 117) -

-

Data type : boolean

- -
Translation success
-
    -
  • access: - private
  • -
-
- -
-

- $_text = '' (line 75) -

-

Data type : string

- -
Text to translate
-
    -
  • access: - private
  • -
-
- -
-

- $_toLang = '' (line 63) -

-

Data type : string

- -
Language to translate to
-
    -
  • access: - private
  • -
-
- -
-

- $_totalChunks = 0 (line 142) -

-

Data type : integer

- -
Total chunks
-
    -
  • access: - private
  • -
-
- -
-

- $_translatedText (line 105) -

-

Data type : string

- -
Translated Text
-
    -
  • access: - private
  • -
-
- -
-

- $_version = '1.0' (line 69) -

-

Data type : string

- -
API version
-
    -
  • access: - private
  • -
-
- -
-
- -

Class Constants

- -Summary:
-
- DETECT -
- -
- -
-

- DETECT = 1 (line 150) -

- -
    -
-
- -
-

- TRANSLATE = 2 (line 151) -

- -
    -
-
- -
-
-

Method Detail

- -Summary:
-
-
- boolean - detectLanguage - (string $text) -
-
- String - getDetectedSource - () -
-
- String - getLastError - () -
-
- boolean - isSuccess - () -
-
- boolean - selfTest - () -
-
- void - setCredentials - (string $apiKey,  $ip) -
-
- void - setReferrer - (string $siteUrl) -
-
- boolean - translate - ([string $text = ''], string $to, [string $from = '']) -
-
- void - _composeUrl - ( $type) -
-
- string - _remoteQuery - (string $query) -
-
- string - _remoteQueryDetect - (string $query) -
-
-
- - - - -

- Method detectLanguage (line 383) -

-

boolean detectLanguage( -string -$text)

- - -
Detect the language of the given text
-

Parameters

-
    -
  • string $text: text language to detect
  • -
- -

Info

-
    -
  • return - | string
  • -
  • access - public
  • -
-
- -

- Method getDetectedSource (line 276) -

-

String getDetectedSource( -)

- - -
Get the detected source language, if the source is not provided during query
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method getLastError (line 264) -

-

String getLastError( -)

- - -
Get the last generated service error
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method isSuccess (line 254) -

-

boolean isSuccess( -)

- - -
Check if the last translation was a success
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method selfTest (line 236) -

-

boolean selfTest( -)

- - -
Self test the class
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method setCredentials (line 287) -

-

void setCredentials( -string -$apiKey, -$ip)

- - -
Set credentials (optional) when accessing Google translation services
-

Parameters

-
    -
  • string $apiKey: your google api key
  • -
  • $ip:
  • -
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method setReferrer (line 299) -

-

void setReferrer( -string -$siteUrl)

- - -
Set Referrer header
-

Parameters

-
    -
  • string $siteUrl: your website url
  • -
- -

Info

-
    -
  • access - public
  • -
-
- -

- Method translate (line 312) -

-

boolean translate( -[string -$text = ''], string -$to, [string -$from = ''])

- - -
Translate the given text
-

Parameters

-
    -
  • string $text: text to translate
  • -
  • string $to: language to translate to
  • -
  • string $from: optional language to translate from
  • -
- -

Info

-
    -
  • return - | string
  • -
  • access - public
  • -
-
- -

- Method _composeUrl (line 158) -

-

void _composeUrl( - -$type)

- - -
Build a POST url to query Google
-

Parameters

-
    -
  • $type:
  • -
- -

Info

-
    -
  • access - private
  • -
-
- -

- Method _remoteQuery (line 185) -

-

string _remoteQuery( -string -$query)

- - -
Process the built query using cURL and POST
-

Parameters

-
    -
  • string $query: POST fields
  • -
- -

Info

-
    -
  • return - response
  • -
  • access - private
  • -
-
- -

- Method _remoteQueryDetect (line 213) -

-

string _remoteQueryDetect( -string -$query)

- - -
Process the built query using cURL and GET
-

Parameters

-
    -
  • string $query: GET fields
  • -
- -

Info

-
    -
  • return - response
  • -
  • access - private
  • -
-
-
-
-

Inherited Variables

- - - -

Inherited Class Variable Summary

- -
-
-

Inherited Methods

- - - -

Inherited Method Summary

- -
-
- -
-
- Documentation generated on Wed, 23 Jun 2010 12:15:23 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_example.php.html b/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_example.php.html deleted file mode 100644 index 9d5eb5cb..00000000 --- a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_example.php.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - Docs for page example.php - - - - - - - -

File: /example.php

-
- - -
-

Description

- - - - -

Classes defined in this file

- - - - - - - -

CLASS NAME

DESCRIPTION

-
- -
- - -

Include/Require Statements

- - - - -
-

- 'googleTranslate.class.php' (line 3) -

-

require_once : 'googleTranslate.class.php'

- -
    -
-
-
-
- - -

Global Variables

- - - -
-
- - - -

Constants

- - - -
-
- - -

Functions

- - - -
-
- -
-
- Documentation generated on Mon, 22 Mar 2010 12:42:32 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_googleTranslate.class.php.html b/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_googleTranslate.class.php.html deleted file mode 100644 index 1344a3fc..00000000 --- a/src/googleTranslate-1.7/docs/GoogleTranslateWrapper/_googleTranslate.class.php.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - Docs for page googleTranslate.class.php - - - - - - - -

File: /googleTranslate.class.php

-
- - -
-

Description

- -
GoogleTranslateWrapper: PHP wrapper for Google Translation services Copyright (C) 2010 Sameer Borate
-

GoogleTranslateWrapper is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

GoogleTranslateWrapper is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GoogleTranslateWrapper; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

- - - -

Classes defined in this file

- - - - - - - - - - - -

CLASS NAME

DESCRIPTION

GoogleTranslateWrapperGoogleTranslateWrapper Main Class
-
- -
- - -

Include/Require Statements

- - - -
-
- - -

Global Variables

- - - -
-
- - - -

Constants

- - - -
-
- - -

Functions

- - - -
-
- -
-
- Documentation generated on Wed, 23 Jun 2010 12:15:22 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__example.php.html b/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__example.php.html deleted file mode 100644 index 308fcd4c..00000000 --- a/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__example.php.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - File Source for example.php - - -

Source for file example.php

-

Documentation is available at example.php

-
-
  1. <?php
  2. -
  3.  
  4. -
  5. require_once('googleTranslate.class.php');
  6. -
  7.  
  8. -
  9. $gt = new GoogleTranslateWrapper();
  10. -
  11.  
  12. -
  13. /* Translate tedt from one language to another */
  14. -
  15. $test "Bonjour de cette partie du monde";
  16. -
  17. echo $gt->translate($test"en""fr");
  18. -
  19.  
  20. -
  21. /* Detect the language of the given text */
  22. -
  23. $text "For me, it is far better to grasp
  24. -
  25.         the Universe as it really is than
  26. -
  27.         to persist in delusion, however
  28. -
  29.         satisfying and reassuring.";
  30. -
  31. print_r($gt->detectLanguage($text));
  32. -
  33.  
  34. -
  35.  
  36. -
  37. ?>
  38. -
-
-
-
- Documentation generated on Mon, 22 Mar 2010 12:42:32 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__googleTranslate.class.php.html b/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__googleTranslate.class.php.html deleted file mode 100644 index 39e0d22c..00000000 --- a/src/googleTranslate-1.7/docs/__filesource/fsource_GoogleTranslateWrapper__googleTranslate.class.php.html +++ /dev/null @@ -1,444 +0,0 @@ - - - - - File Source for googleTranslate.class.php - - -

Source for file googleTranslate.class.php

-

Documentation is available at googleTranslate.class.php

-
-
  1. <?php
  2. -
  3.  
  4. -
  5. /**
  6. -
  7.  * GoogleTranslateWrapper: PHP wrapper for Google Translation services
  8. -
  9.  * Copyright (C) 2010  Sameer Borate
  10. -
  11.  * 
  12. -
  13.  * GoogleTranslateWrapper is free software; you can redistribute it and/or
  14. -
  15.  * modify it under the terms of the GNU General Public License as published by
  16. -
  17.  * the Free Software Foundation; either version 2 of the License, or
  18. -
  19.  * (at your option) any later version.
  20. -
  21.  * 
  22. -
  23.  * GoogleTranslateWrapper is distributed in the hope that it will be useful,
  24. -
  25.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  26. -
  27.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  28. -
  29.  * GNU General Public License for more details.
  30. -
  31.  * 
  32. -
  33.  * You should have received a copy of the GNU General Public License
  34. -
  35.  * along with GoogleTranslateWrapper; if not, write to the Free Software
  36. -
  37.  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  38. -
  39.  *
  40. -
  41.  * @category    GoogleTranslateWrapper
  42. -
  43.  * @package     GoogleTranslateWrapper
  44. -
  45.  * @author      Sameer Borate
  46. -
  47.  * @copyright   2010 Sameer Borate
  48. -
  49.  */
  50. -
  51.  
  52. -
  53.  
  54. -
  55. /**
  56. -
  57.  * GoogleTranslateWrapper Main Class
  58. -
  59.  * 
  60. -
  61.  * @category    GoogleTranslateWrapper
  62. -
  63.  * @package     GoogleTranslateWrapper
  64. -
  65.  * @author      Sameer Borate
  66. -
  67.  * @link        http://www.codediesel.com
  68. -
  69.  * @copyright   2010 Sameer Borate
  70. -
  71.  * @version     1.7
  72. -
  73.  */
  74. -
  75.  
  76. -
  77. -
  78. {
  79. -
  80.     /**
  81. -
  82.      * URL of Google translate
  83. -
  84.      * @var string 
  85. -
  86.      */
  87. -
  88.     private $_googleTranslateUrl = 'http://ajax.googleapis.com/ajax/services/language/translate';
  89. -
  90.     
  91. -
  92.     /**
  93. -
  94.      * URL of Google language detection
  95. -
  96.      * @var string 
  97. -
  98.      */
  99. -
  100.     private $_googleDetectUrl = 'http://ajax.googleapis.com/ajax/services/language/detect';
  101. -
  102.     
  103. -
  104.     /**
  105. -
  106.      * Language to translate from
  107. -
  108.      * @var string 
  109. -
  110.      */
  111. -
  112.     private $_fromLang = '';
  113. -
  114.     
  115. -
  116.     /**
  117. -
  118.      * Language to translate to
  119. -
  120.      * @var string 
  121. -
  122.      */
  123. -
  124.     private $_toLang = '';
  125. -
  126.     
  127. -
  128.     /**
  129. -
  130.      * API version
  131. -
  132.      * @var string 
  133. -
  134.      */
  135. -
  136.     private $_version = '1.0';
  137. -
  138.     
  139. -
  140.     /**
  141. -
  142.      * Text to translate
  143. -
  144.      * @var string 
  145. -
  146.      */
  147. -
  148.     private $_text = '';
  149. -
  150.     
  151. -
  152.     /**
  153. -
  154.      * Site url using the code
  155. -
  156.      * @var string 
  157. -
  158.      */
  159. -
  160.     private $_siteUrl = '';
  161. -
  162.     
  163. -
  164.     /**
  165. -
  166.      * Google API key
  167. -
  168.      * @var string 
  169. -
  170.      */
  171. -
  172.     private $_apiKey = '';
  173. -
  174.     
  175. -
  176.     /**
  177. -
  178.      * Host IP address
  179. -
  180.      * @var string 
  181. -
  182.      */
  183. -
  184.     private $_ip = '';
  185. -
  186.     
  187. -
  188.     /**
  189. -
  190.      * POST fields
  191. -
  192.      * @var string 
  193. -
  194.      */
  195. -
  196.     private $_postFields;
  197. -
  198.     
  199. -
  200.     /**
  201. -
  202.      * Translated Text
  203. -
  204.      * @var string 
  205. -
  206.      */
  207. -
  208.     private $_translatedText;
  209. -
  210.     
  211. -
  212.     /**
  213. -
  214.      * Service Error
  215. -
  216.      * @var string 
  217. -
  218.      */
  219. -
  220.     private $_serviceError = "";
  221. -
  222.     
  223. -
  224.     /**
  225. -
  226.      * Translation success
  227. -
  228.      * @var boolean 
  229. -
  230.      */
  231. -
  232.     private $_success = false;
  233. -
  234.     
  235. -
  236.     /**
  237. -
  238.      * Translation character limit.
  239. -
  240.      * Currently the limit set by Google is 5000
  241. -
  242.      * @var integer 
  243. -
  244.      */
  245. -
  246.     private $_stringLimit = 5000;
  247. -
  248.     
  249. -
  250.     /**
  251. -
  252.      * Chunk array
  253. -
  254.      * @var array 
  255. -
  256.      */
  257. -
  258.     private $_chunks = 0;
  259. -
  260.     
  261. -
  262.     /**
  263. -
  264.      * Current data chunk
  265. -
  266.      * @var string 
  267. -
  268.      */
  269. -
  270.     private $_currentChunk = 0;
  271. -
  272.     
  273. -
  274.     /**
  275. -
  276.      * Total chunks
  277. -
  278.      * @var integer 
  279. -
  280.      */
  281. -
  282.     private $_totalChunks = 0;
  283. -
  284.     
  285. -
  286.     /**
  287. -
  288.      * Detected source language
  289. -
  290.      * @var string 
  291. -
  292.      */
  293. -
  294.     private $_detectedSourceLanguage = "";
  295. -
  296.     
  297. -
  298.     const DETECT = 1;
  299. -
  300.     const TRANSLATE = 2;
  301. -
  302.  
  303. -
  304.     
  305. -
  306.     /**
  307. -
  308.      * Build a POST url to query Google
  309. -
  310.      *
  311. -
  312.      */
  313. -
  314.     private function _composeUrl($type
  315. -
  316.     {
  317. -
  318.         if($type == self::TRANSLATE)
  319. -
  320.         {
  321. -
  322.             $fields = array('v'         => $this->_version,
  323. -
  324.                             'q'         => $this->_text,
  325. -
  326.                             'langpair'  => $this->_fromLang . "|" $this->_toLang);
  327. -
  328.         }
  329. -
  330.         elseif($type == self::DETECT)
  331. -
  332.         {
  333. -
  334.             $fields = array('v'         => $this->_version,
  335. -
  336.                         'q'         => $this->_text);
  337. -
  338.         }
  339. -
  340.         
  341. -
  342.         if($this->_apiKey != ""$fields['key'$this->_apiKey;
  343. -
  344.         if($this->_ip != ""$fields['userip'$this->_ip;
  345. -
  346.  
  347. -
  348.         $this->_postFields = http_build_query($fields''"&");
  349. -
  350.     }
  351. -
  352.  
  353. -
  354.     
  355. -
  356.     /**
  357. -
  358.      * Process the built query using cURL and POST
  359. -
  360.      *
  361. -
  362.      * @param string POST fields
  363. -
  364.      * @return string response
  365. -
  366.      */
  367. -
  368.     private function _remoteQuery($query)
  369. -
  370.     {
  371. -
  372.         if(!function_exists('curl_init'))
  373. -
  374.         {
  375. -
  376.             return "";
  377. -
  378.         }
  379. -
  380.         
  381. -
  382.         /* Setup CURL and its options*/
  383. -
  384.         $ch curl_init();
  385. -
  386.         curl_setopt($chCURLOPT_URL,$this->_googleTranslateUrl);
  387. -
  388.         curl_setopt($chCURLOPT_REFERER$this->_siteUrl);
  389. -
  390.         curl_setopt($chCURLOPT_RETURNTRANSFER1);
  391. -
  392.         curl_setopt($chCURLOPT_TIMEOUT15);
  393. -
  394.         curl_setopt($chCURLOPT_POST1);
  395. -
  396.         curl_setopt($chCURLOPT_POSTFIELDS$query);
  397. -
  398.  
  399. -
  400.         $response curl_exec($ch)
  401. -
  402.  
  403. -
  404.         return $response;
  405. -
  406.     }
  407. -
  408.     
  409. -
  410.     
  411. -
  412.     /**
  413. -
  414.      * Process the built query using cURL and GET
  415. -
  416.      *
  417. -
  418.      * @param string GET fields
  419. -
  420.      * @return string response
  421. -
  422.      */
  423. -
  424.     private function _remoteQueryDetect($query)
  425. -
  426.     {
  427. -
  428.         if(!function_exists('curl_init'))
  429. -
  430.         {
  431. -
  432.             return "";
  433. -
  434.         }
  435. -
  436.         
  437. -
  438.         $ch curl_init();
  439. -
  440.         $url $this->_googleDetectUrl . "?" $query;
  441. -
  442.         curl_setopt($chCURLOPT_URL$url);
  443. -
  444.         curl_setopt($chCURLOPT_RETURNTRANSFER1);
  445. -
  446.         curl_setopt($chCURLOPT_REFERER$this->_siteUrl);
  447. -
  448.  
  449. -
  450.         $response curl_exec($ch)
  451. -
  452.         return $response;
  453. -
  454.     }
  455. -
  456.     
  457. -
  458.     
  459. -
  460.     /**
  461. -
  462.      * Self test the class
  463. -
  464.      *
  465. -
  466.      * @return boolean 
  467. -
  468.      */
  469. -
  470.     public function selfTest()
  471. -
  472.     {
  473. -
  474.         if(!function_exists('curl_init'))
  475. -
  476.         {
  477. -
  478.             echo "cURL not installed.";
  479. -
  480.         }
  481. -
  482.         else
  483. -
  484.         {
  485. -
  486.             $testText $this->translate("hello""fr""en");
  487. -
  488.             echo ($testText == "bonjour""Test Ok." "Test Failed.";
  489. -
  490.         }
  491. -
  492.     }
  493. -
  494.     
  495. -
  496.     /**
  497. -
  498.      * Check if the last translation was a success
  499. -
  500.      *
  501. -
  502.      * @return boolean 
  503. -
  504.      */
  505. -
  506.     public function isSuccess()
  507. -
  508.     {
  509. -
  510.         return $this->_success;
  511. -
  512.     }
  513. -
  514.     
  515. -
  516.     /**
  517. -
  518.      * Get the last generated service error
  519. -
  520.      *
  521. -
  522.      * @return String 
  523. -
  524.      */
  525. -
  526.     public function getLastError()
  527. -
  528.     {
  529. -
  530.         return $this->_serviceError;
  531. -
  532.     }
  533. -
  534.     
  535. -
  536.     
  537. -
  538.     /**
  539. -
  540.      * Get the detected source language, if the source is not provided
  541. -
  542.      * during query
  543. -
  544.      *
  545. -
  546.      * @return String 
  547. -
  548.      */
  549. -
  550.     public function getDetectedSource()
  551. -
  552.     {
  553. -
  554.         return $this->_detectedSourceLanguage;
  555. -
  556.     }
  557. -
  558.     
  559. -
  560.     
  561. -
  562.     /**
  563. -
  564.      * Set credentials (optional) when accessing Google translation services
  565. -
  566.      *
  567. -
  568.      * @param string $apiKey your google api key
  569. -
  570.      */
  571. -
  572.     public function setCredentials($apiKey$ip)
  573. -
  574.     {
  575. -
  576.         $this->_apiKey = $apiKey;
  577. -
  578.         $this->_ip = $ip;
  579. -
  580.     }
  581. -
  582.     
  583. -
  584.     
  585. -
  586.     /**
  587. -
  588.      * Set Referrer header
  589. -
  590.      *
  591. -
  592.      * @param string $siteUrl your website url
  593. -
  594.      */
  595. -
  596.     public function setReferrer($siteUrl)
  597. -
  598.     {
  599. -
  600.         $this->_siteUrl = $siteUrl;
  601. -
  602.     }
  603. -
  604.     
  605. -
  606.     
  607. -
  608.     /**
  609. -
  610.      * Translate the given text
  611. -
  612.      * @param string $text text to translate
  613. -
  614.      * @param string $to language to translate to
  615. -
  616.      * @param string $from optional language to translate from
  617. -
  618.      * @return boolean | string
  619. -
  620.      */
  621. -
  622.     public function translate($text ''$to$from '')
  623. -
  624.     {
  625. -
  626.         $this->_success = false;
  627. -
  628.         
  629. -
  630.         if($text == '' || $to == '')
  631. -
  632.         {
  633. -
  634.             return false;
  635. -
  636.         }
  637. -
  638.         else
  639. -
  640.         {
  641. -
  642.             if($this->_chunks == 0)
  643. -
  644.             {
  645. -
  646.                 $this->_chunks = str_split($text$this->_stringLimit);
  647. -
  648.                 $this->_totalChunks = count($this->_chunks);
  649. -
  650.                 $this->_currentChunk = 0;
  651. -
  652.              
  653. -
  654.                 $this->_text = $this->_chunks[$this->_currentChunk];
  655. -
  656.                 $this->_toLang = $to;
  657. -
  658.                 $this->_fromLang = $from;
  659. -
  660.             }
  661. -
  662.             else
  663. -
  664.             {
  665. -
  666.                 $this->_text = $text;
  667. -
  668.                 $this->_toLang = $to;
  669. -
  670.                 $this->_fromLang = $from;
  671. -
  672.             }
  673. -
  674.         }
  675. -
  676.         
  677. -
  678.         $this->_composeUrl(self::TRANSLATE);
  679. -
  680.         
  681. -
  682.         if($this->_text != '' && $this->_postFields != '')
  683. -
  684.         {
  685. -
  686.             $contents $this->_remoteQuery($this->_postFields);
  687. -
  688.             $json json_decode($contentstrue);
  689. -
  690.             
  691. -
  692.             if($json['responseStatus'== 200)
  693. -
  694.             {   
  695. -
  696.                 $this->_translatedText .= $json['responseData']['translatedText'];
  697. -
  698.                 if(isset($json['responseData']['detectedSourceLanguage']))
  699. -
  700.                 {
  701. -
  702.                     $this->_detectedSourceLanguage = $json['responseData']['detectedSourceLanguage'];   
  703. -
  704.                 }
  705. -
  706.                 
  707. -
  708.                 $this->_currentChunk++;
  709. -
  710.  
  711. -
  712.                 if($this->_currentChunk >= $this->_totalChunks{
  713. -
  714.                     $this->_success = true;
  715. -
  716.                     return $this->_translatedText;
  717. -
  718.                 }
  719. -
  720.                 else {
  721. -
  722.                     return $this->translate($this->_chunks[$this->_currentChunk]$to$from);
  723. -
  724.                 }
  725. -
  726.                 
  727. -
  728.             }
  729. -
  730.             else
  731. -
  732.             
  733. -
  734.                 $this->_serviceError =     $json['responseDetails'];
  735. -
  736.                 return false;
  737. -
  738.             }
  739. -
  740.         }
  741. -
  742.         else
  743. -
  744.         {
  745. -
  746.             return false;
  747. -
  748.         }
  749. -
  750.     }
  751. -
  752.     
  753. -
  754.     /**
  755. -
  756.      * Detect the language of the given text
  757. -
  758.      * @param string $text text language to detect
  759. -
  760.      * @return boolean | string
  761. -
  762.      */
  763. -
  764.     public function detectLanguage($text)
  765. -
  766.     {
  767. -
  768.     
  769. -
  770.         if($text == '')
  771. -
  772.         {
  773. -
  774.             return false;
  775. -
  776.         }
  777. -
  778.         else
  779. -
  780.         {
  781. -
  782.             $this->_text = $text;
  783. -
  784.         }
  785. -
  786.         
  787. -
  788.         
  789. -
  790.         $this->_composeUrl(self::DETECT);
  791. -
  792.         
  793. -
  794.         if($this->_text != '' && $this->_postFields != '')
  795. -
  796.         {
  797. -
  798.         
  799. -
  800.             $contents $this->_remoteQueryDetect($this->_postFields);
  801. -
  802.             $json json_decode($contentstrue);
  803. -
  804.             
  805. -
  806.             if($json['responseStatus'== 200)
  807. -
  808.             {   
  809. -
  810.                 return $json['responseData'];
  811. -
  812.             }
  813. -
  814.             else
  815. -
  816.             
  817. -
  818.                 $this->_serviceError =     $json['responseDetails'];
  819. -
  820.                 return false;
  821. -
  822.             }
  823. -
  824.         }
  825. -
  826.         else
  827. -
  828.         {
  829. -
  830.             return false;
  831. -
  832.         }
  833. -
  834.  
  835. -
  836.     }
  837. -
  838.     
  839. -
  840. }
  841. -
  842.  
  843. -
  844.  
  845. -
  846. ?>
  847. -
-
-
-
- Documentation generated on Wed, 23 Jun 2010 12:15:23 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/blank.html b/src/googleTranslate-1.7/docs/blank.html deleted file mode 100644 index ba4c3e72..00000000 --- a/src/googleTranslate-1.7/docs/blank.html +++ /dev/null @@ -1,13 +0,0 @@ - - - GoogleTranslateWrapper v1.7 - - - - -

GoogleTranslateWrapper v1.7

-Welcome to GoogleTranslateWrapper!
-
-This documentation was generated by phpDocumentor v1.4.1
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/classtrees_GoogleTranslateWrapper.html b/src/googleTranslate-1.7/docs/classtrees_GoogleTranslateWrapper.html deleted file mode 100644 index 09514770..00000000 --- a/src/googleTranslate-1.7/docs/classtrees_GoogleTranslateWrapper.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - -

- -

-

Root class GoogleTranslateWrapper

- - -
-
- Documentation generated on Wed, 23 Jun 2010 12:15:22 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/elementindex.html b/src/googleTranslate-1.7/docs/elementindex.html deleted file mode 100644 index e73e45fd..00000000 --- a/src/googleTranslate-1.7/docs/elementindex.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - -

Index of All Elements

-  -Indexes by package:
- -
- d - g - i - s - t - _ - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
d  - top
   DETECTin file googleTranslate.class.php, class constant GoogleTranslateWrapper::DETECT
   detectLanguagein file googleTranslate.class.php, method GoogleTranslateWrapper::detectLanguage()
    Detect the language of the given text
g  - top
   getDetectedSourcein file googleTranslate.class.php, method GoogleTranslateWrapper::getDetectedSource()
    Get the detected source language, if the source is not provided during query
   getLastErrorin file googleTranslate.class.php, method GoogleTranslateWrapper::getLastError()
    Get the last generated service error
   googleTranslate.class.phpprocedural page googleTranslate.class.php
   GoogleTranslateWrapperin file googleTranslate.class.php, class GoogleTranslateWrapper
    GoogleTranslateWrapper Main Class
i  - top
   isSuccessin file googleTranslate.class.php, method GoogleTranslateWrapper::isSuccess()
    Check if the last translation was a success
s  - top
   selfTestin file googleTranslate.class.php, method GoogleTranslateWrapper::selfTest()
    Self test the class
   setCredentialsin file googleTranslate.class.php, method GoogleTranslateWrapper::setCredentials()
    Set credentials (optional) when accessing Google translation services
   setReferrerin file googleTranslate.class.php, method GoogleTranslateWrapper::setReferrer()
    Set Referrer header
t  - top
   translatein file googleTranslate.class.php, method GoogleTranslateWrapper::translate()
    Translate the given text
   TRANSLATEin file googleTranslate.class.php, class constant GoogleTranslateWrapper::TRANSLATE
_  - top
   $_apiKeyin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_apiKey
    Google API key
   $_chunksin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_chunks
    Chunk array
   $_currentChunkin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_currentChunk
    Current data chunk
   $_detectedSourceLanguagein file googleTranslate.class.php, variable GoogleTranslateWrapper::$_detectedSourceLanguage
    Detected source language
   $_fromLangin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_fromLang
    Language to translate from
   $_googleDetectUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_googleDetectUrl
    URL of Google language detection
   $_googleTranslateUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_googleTranslateUrl
    URL of Google translate
   $_ipin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_ip
    Host IP address
   $_postFieldsin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_postFields
    POST fields
   $_serviceErrorin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_serviceError
    Service Error
   $_siteUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_siteUrl
    Site url using the code
   $_stringLimitin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_stringLimit
    Translation character limit.
   $_successin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_success
    Translation success
   $_textin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_text
    Text to translate
   $_toLangin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_toLang
    Language to translate to
   $_totalChunksin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_totalChunks
    Total chunks
   $_translatedTextin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_translatedText
    Translated Text
   $_versionin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_version
    API version
   _composeUrlin file googleTranslate.class.php, method GoogleTranslateWrapper::_composeUrl()
    Build a POST url to query Google
   _remoteQueryin file googleTranslate.class.php, method GoogleTranslateWrapper::_remoteQuery()
    Process the built query using cURL and POST
   _remoteQueryDetectin file googleTranslate.class.php, method GoogleTranslateWrapper::_remoteQueryDetect()
    Process the built query using cURL and GET
- \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/elementindex_GoogleTranslateWrapper.html b/src/googleTranslate-1.7/docs/elementindex_GoogleTranslateWrapper.html deleted file mode 100644 index 067e5421..00000000 --- a/src/googleTranslate-1.7/docs/elementindex_GoogleTranslateWrapper.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - - -

Element Index, Package GoogleTranslateWrapper

-
    -
-Index of all elements -
- d - g - i - s - t - _ - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_  - top
   $_apiKeyin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_apiKey
    Google API key
   $_chunksin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_chunks
    Chunk array
   $_currentChunkin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_currentChunk
    Current data chunk
   $_detectedSourceLanguagein file googleTranslate.class.php, variable GoogleTranslateWrapper::$_detectedSourceLanguage
    Detected source language
   $_fromLangin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_fromLang
    Language to translate from
   $_googleDetectUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_googleDetectUrl
    URL of Google language detection
   $_googleTranslateUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_googleTranslateUrl
    URL of Google translate
   $_ipin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_ip
    Host IP address
   $_postFieldsin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_postFields
    POST fields
   $_serviceErrorin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_serviceError
    Service Error
   $_siteUrlin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_siteUrl
    Site url using the code
   $_stringLimitin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_stringLimit
    Translation character limit.
   $_successin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_success
    Translation success
   $_textin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_text
    Text to translate
   $_toLangin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_toLang
    Language to translate to
   $_totalChunksin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_totalChunks
    Total chunks
   $_translatedTextin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_translatedText
    Translated Text
   $_versionin file googleTranslate.class.php, variable GoogleTranslateWrapper::$_version
    API version
   _composeUrlin file googleTranslate.class.php, method GoogleTranslateWrapper::_composeUrl()
    Build a POST url to query Google
   _remoteQueryin file googleTranslate.class.php, method GoogleTranslateWrapper::_remoteQuery()
    Process the built query using cURL and POST
   _remoteQueryDetectin file googleTranslate.class.php, method GoogleTranslateWrapper::_remoteQueryDetect()
    Process the built query using cURL and GET
d  - top
   DETECTin file googleTranslate.class.php, class constant GoogleTranslateWrapper::DETECT
   detectLanguagein file googleTranslate.class.php, method GoogleTranslateWrapper::detectLanguage()
    Detect the language of the given text
g  - top
   getDetectedSourcein file googleTranslate.class.php, method GoogleTranslateWrapper::getDetectedSource()
    Get the detected source language, if the source is not provided during query
   getLastErrorin file googleTranslate.class.php, method GoogleTranslateWrapper::getLastError()
    Get the last generated service error
   googleTranslate.class.phpprocedural page googleTranslate.class.php
   GoogleTranslateWrapperin file googleTranslate.class.php, class GoogleTranslateWrapper
    GoogleTranslateWrapper Main Class
i  - top
   isSuccessin file googleTranslate.class.php, method GoogleTranslateWrapper::isSuccess()
    Check if the last translation was a success
s  - top
   selfTestin file googleTranslate.class.php, method GoogleTranslateWrapper::selfTest()
    Self test the class
   setCredentialsin file googleTranslate.class.php, method GoogleTranslateWrapper::setCredentials()
    Set credentials (optional) when accessing Google translation services
   setReferrerin file googleTranslate.class.php, method GoogleTranslateWrapper::setReferrer()
    Set Referrer header
t  - top
   translatein file googleTranslate.class.php, method GoogleTranslateWrapper::translate()
    Translate the given text
   TRANSLATEin file googleTranslate.class.php, class constant GoogleTranslateWrapper::TRANSLATE
- \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/errors.html b/src/googleTranslate-1.7/docs/errors.html deleted file mode 100644 index b17b8bb7..00000000 --- a/src/googleTranslate-1.7/docs/errors.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - phpDocumentor Parser Errors and Warnings - - -Post-parsing
- -

googleTranslate.class.php

-

Warnings:


-Warning on line 36 - package GoogleTranslateWrapper v1.7 is already in category , will now replace with category GoogleTranslateWrapper
-
-
- Documentation generated on Wed, 23 Jun 2010 12:15:24 +0000 by phpDocumentor 1.4.1 -
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/index.html b/src/googleTranslate-1.7/docs/index.html deleted file mode 100644 index 500c9ade..00000000 --- a/src/googleTranslate-1.7/docs/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - GoogleTranslateWrapper v1.7 - - - - - - - - - - - <H2>Frame Alert</H2> - <P>This document is designed to be viewed using the frames feature. - If you see this message, you are using a non-frame-capable web client.</P> - - - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/li_GoogleTranslateWrapper.html b/src/googleTranslate-1.7/docs/li_GoogleTranslateWrapper.html deleted file mode 100644 index b067ed1c..00000000 --- a/src/googleTranslate-1.7/docs/li_GoogleTranslateWrapper.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - -

Navigation: GoogleTranslateWrapper

- -
- -
-phpDocumentor v 1.4.1
-
-HTML layout inspired by PHPEdit
- - \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/media/images/Class.gif b/src/googleTranslate-1.7/docs/media/images/Class.gif deleted file mode 100644 index ada36bbb..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Class.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Constant.gif b/src/googleTranslate-1.7/docs/media/images/Constant.gif deleted file mode 100644 index d9ca9cfa..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Constant.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Constants.gif b/src/googleTranslate-1.7/docs/media/images/Constants.gif deleted file mode 100644 index eba8d08f..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Constants.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Constructor.gif b/src/googleTranslate-1.7/docs/media/images/Constructor.gif deleted file mode 100644 index f153cfb4..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Constructor.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Destructor.gif b/src/googleTranslate-1.7/docs/media/images/Destructor.gif deleted file mode 100644 index bf3d62b3..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Destructor.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Disk.gif b/src/googleTranslate-1.7/docs/media/images/Disk.gif deleted file mode 100644 index 7ab08fd0..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Disk.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/FolderClosed.gif b/src/googleTranslate-1.7/docs/media/images/FolderClosed.gif deleted file mode 100644 index 68c6563c..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/FolderClosed.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/FolderOpened.gif b/src/googleTranslate-1.7/docs/media/images/FolderOpened.gif deleted file mode 100644 index 8b012d55..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/FolderOpened.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Functions.gif b/src/googleTranslate-1.7/docs/media/images/Functions.gif deleted file mode 100644 index bc2def80..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Functions.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/GhostClass.gif b/src/googleTranslate-1.7/docs/media/images/GhostClass.gif deleted file mode 100644 index 44124540..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/GhostClass.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/I.png b/src/googleTranslate-1.7/docs/media/images/I.png deleted file mode 100644 index e8512fb9..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/I.png and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/L.png b/src/googleTranslate-1.7/docs/media/images/L.png deleted file mode 100644 index eb334eda..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/L.png and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Lminus.png b/src/googleTranslate-1.7/docs/media/images/Lminus.png deleted file mode 100644 index f7c43c0a..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Lminus.png and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Lplus.png b/src/googleTranslate-1.7/docs/media/images/Lplus.png deleted file mode 100644 index 848ec2fc..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Lplus.png and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/PrivateDataMember.gif b/src/googleTranslate-1.7/docs/media/images/PrivateDataMember.gif deleted file mode 100644 index 346380de..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/PrivateDataMember.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/PrivateMethod.gif b/src/googleTranslate-1.7/docs/media/images/PrivateMethod.gif deleted file mode 100644 index dcd2b203..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/PrivateMethod.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/PrivateProperty.gif b/src/googleTranslate-1.7/docs/media/images/PrivateProperty.gif deleted file mode 100644 index a21fffa0..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/PrivateProperty.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/ProtectedDataMember.gif b/src/googleTranslate-1.7/docs/media/images/ProtectedDataMember.gif deleted file mode 100644 index 882fa7db..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/ProtectedDataMember.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/ProtectedMethod.gif b/src/googleTranslate-1.7/docs/media/images/ProtectedMethod.gif deleted file mode 100644 index b25197b2..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/ProtectedMethod.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/ProtectedProperty.gif b/src/googleTranslate-1.7/docs/media/images/ProtectedProperty.gif deleted file mode 100644 index 94892fe4..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/ProtectedProperty.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/PublicDataMember.gif b/src/googleTranslate-1.7/docs/media/images/PublicDataMember.gif deleted file mode 100644 index 5a799e0c..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/PublicDataMember.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/PublicMethod.gif b/src/googleTranslate-1.7/docs/media/images/PublicMethod.gif deleted file mode 100644 index 571fd9ce..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/PublicMethod.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/PublicProperty.gif b/src/googleTranslate-1.7/docs/media/images/PublicProperty.gif deleted file mode 100644 index 634ff5cb..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/PublicProperty.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/T.png b/src/googleTranslate-1.7/docs/media/images/T.png deleted file mode 100644 index 30173254..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/T.png and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Thumbs.db b/src/googleTranslate-1.7/docs/media/images/Thumbs.db deleted file mode 100644 index 00a7da66..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Thumbs.db and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Tminus.png b/src/googleTranslate-1.7/docs/media/images/Tminus.png deleted file mode 100644 index 2260e424..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Tminus.png and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Tplus.png b/src/googleTranslate-1.7/docs/media/images/Tplus.png deleted file mode 100644 index 2c8d8f4f..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Tplus.png and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Types.gif b/src/googleTranslate-1.7/docs/media/images/Types.gif deleted file mode 100644 index 7c13fd59..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Types.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Variable.gif b/src/googleTranslate-1.7/docs/media/images/Variable.gif deleted file mode 100644 index 63b3f553..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Variable.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/Vars.gif b/src/googleTranslate-1.7/docs/media/images/Vars.gif deleted file mode 100644 index 3963c3c1..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/Vars.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/blank.png b/src/googleTranslate-1.7/docs/media/images/blank.png deleted file mode 100644 index cee9cd37..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/blank.png and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/classFolder.gif b/src/googleTranslate-1.7/docs/media/images/classFolder.gif deleted file mode 100644 index 5492345f..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/classFolder.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/error.gif b/src/googleTranslate-1.7/docs/media/images/error.gif deleted file mode 100644 index e323ff06..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/error.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/file.png b/src/googleTranslate-1.7/docs/media/images/file.png deleted file mode 100644 index 0bb2427f..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/file.png and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/foldericon.png b/src/googleTranslate-1.7/docs/media/images/foldericon.png deleted file mode 100644 index 2684748b..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/foldericon.png and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/minus.gif b/src/googleTranslate-1.7/docs/media/images/minus.gif deleted file mode 100644 index 9e998f1b..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/minus.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/msgError.gif b/src/googleTranslate-1.7/docs/media/images/msgError.gif deleted file mode 100644 index 93c6d36a..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/msgError.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/msgFatalError.gif b/src/googleTranslate-1.7/docs/media/images/msgFatalError.gif deleted file mode 100644 index 6257bbe5..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/msgFatalError.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/msgHint.gif b/src/googleTranslate-1.7/docs/media/images/msgHint.gif deleted file mode 100644 index 0b23fbfe..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/msgHint.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/msgInformation.gif b/src/googleTranslate-1.7/docs/media/images/msgInformation.gif deleted file mode 100644 index 1cc5c9ba..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/msgInformation.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/msgWarning.gif b/src/googleTranslate-1.7/docs/media/images/msgWarning.gif deleted file mode 100644 index e0757783..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/msgWarning.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/openfoldericon.png b/src/googleTranslate-1.7/docs/media/images/openfoldericon.png deleted file mode 100644 index 15fcd567..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/openfoldericon.png and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/plus.gif b/src/googleTranslate-1.7/docs/media/images/plus.gif deleted file mode 100644 index cade83c7..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/plus.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/images/spacer.gif b/src/googleTranslate-1.7/docs/media/images/spacer.gif deleted file mode 100644 index 1fa6d01f..00000000 Binary files a/src/googleTranslate-1.7/docs/media/images/spacer.gif and /dev/null differ diff --git a/src/googleTranslate-1.7/docs/media/layout.css b/src/googleTranslate-1.7/docs/media/layout.css deleted file mode 100644 index bd892a5a..00000000 --- a/src/googleTranslate-1.7/docs/media/layout.css +++ /dev/null @@ -1,81 +0,0 @@ -#header { - z-index: 100; - position: absolute; - top: 0px; - left: 0px; - width: 100%; - height: 5%; -} -#nav { - z-index: 200; - position: absolute; - top: 5%; - left: 0px; - width: 15%; - height: 1600px; - clip: auto; - overflow: auto; -} -#body { - position: absolute; - top: 6%; - left: 17%; - width: 82%; -} -#content { - clear: both; - top: -1px; -} -#packagePosition { - position: absolute; - right: 5px; - top: 0px; - width: 35%; - height: 100%; -} -#packageTitle { - position: absolute; - right: 0px; -} -#packageTitle2 { - position: absolute; - right: -3px; - top: -2px; -} -#elementPath { - position: absolute; - right: 0px; - bottom: 0px; -} -#navLinks { - position: absolute; - top: 0px; - left: 10px; - height: 100%; - -} -.leftCol { - width: auto; - float: left; -} -.middleCol { - width: auto; - float: left; -} -.rightCol { - width: auto; - float: left; -} -#credit { - margin-top: 20px; - margin-bottom: 50px; -} - -/** Fixed layout for nav on mozilla */ -head:first-child+body div#header { - position: fixed; -} -head:first-child+body div#nav { - position: fixed; - height: 94% -} diff --git a/src/googleTranslate-1.7/docs/media/lib/classTree.js b/src/googleTranslate-1.7/docs/media/lib/classTree.js deleted file mode 100644 index 7f57c474..00000000 --- a/src/googleTranslate-1.7/docs/media/lib/classTree.js +++ /dev/null @@ -1,454 +0,0 @@ -/*----------------------------------------\ -| Cross Browser Tree Widget 1.1 | -|-----------------------------------------| -| Created by Emil A. Eklund (eae@eae.net) | -| For WebFX (http://webfx.eae.net/) | -|-----------------------------------------| -| This script is provided as is without | -| any warranty whatsoever. It may be used | -| free of charge for non commerical sites | -| For commerical use contact the author | -| of this script for further details. | -|-----------------------------------------| -| Created 2000-12-11 | Updated 2001-09-06 | -\----------------------------------------*/ - -var webFXTreeConfig = { - rootIcon : 'media/images/Class.gif', - openRootIcon : 'media/images/Class.gif', - folderIcon : 'media/images/Class.gif', - openFolderIcon : 'media/images/Class.gif', - fileIcon : 'media/images/Class.gif', - iIcon : 'media/images/I.png', - lIcon : 'media/images/L.png', - lMinusIcon : 'media/images/Lminus.png', - lPlusIcon : 'media/images/Lplus.png', - tIcon : 'media/images/T.png', - tMinusIcon : 'media/images/Tminus.png', - tPlusIcon : 'media/images/Tplus.png', - blankIcon : 'media/images/blank.png', - defaultText : 'Tree Item', - defaultAction : 'javascript:void(0);', - defaultTarget : 'right', - defaultBehavior : 'classic' -}; - -var webFXTreeHandler = { - idCounter : 0, - idPrefix : "webfx-tree-object-", - all : {}, - behavior : null, - selected : null, - getId : function() { return this.idPrefix + this.idCounter++; }, - toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); }, - select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); }, - focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); }, - blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); }, - keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); }, - cookies : new WebFXCookie() -}; - -/* - * WebFXCookie class - */ - -function WebFXCookie() { - if (document.cookie.length) { this.cookies = ' ' + document.cookie; } -} - -WebFXCookie.prototype.setCookie = function (key, value) { - document.cookie = key + "=" + escape(value); -} - -WebFXCookie.prototype.getCookie = function (key) { - if (this.cookies) { - var start = this.cookies.indexOf(' ' + key + '='); - if (start == -1) { return null; } - var end = this.cookies.indexOf(";", start); - if (end == -1) { end = this.cookies.length; } - end -= start; - var cookie = this.cookies.substr(start,end); - return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1)); - } - else { return null; } -} - -/* - * WebFXTreeAbstractNode class - */ - -function WebFXTreeAbstractNode(sText, sAction, sTarget) { - this.childNodes = []; - this.id = webFXTreeHandler.getId(); - this.text = sText || webFXTreeConfig.defaultText; - this.action = sAction || webFXTreeConfig.defaultAction; - this.targetWindow = sTarget || webFXTreeConfig.defaultTarget; - this._last = false; - webFXTreeHandler.all[this.id] = this; -} - -WebFXTreeAbstractNode.prototype.add = function (node) { - node.parentNode = this; - this.childNodes[this.childNodes.length] = node; - var root = this; - if (this.childNodes.length >=2) { - this.childNodes[this.childNodes.length -2]._last = false; - } - while (root.parentNode) { root = root.parentNode; } - if (root.rendered) { - if (this.childNodes.length >= 2) { - document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon); - if (this.childNodes[this.childNodes.length -2].folder) { - this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon; - this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon; - } - this.childNodes[this.childNodes.length -2]._last = false; - } - this._last = true; - var foo = this; - while (foo.parentNode) { - for (var i = 0; i < foo.parentNode.childNodes.length; i++) { - if (foo.id == foo.parentNode.childNodes[i].id) { break; } - } - if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; } - else { foo.parentNode._last = false; } - foo = foo.parentNode; - } - document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString()); - if ((!this.folder) && (!this.openIcon)) { - this.icon = webFXTreeConfig.folderIcon; - this.openIcon = webFXTreeConfig.openFolderIcon; - } - this.folder = true; - this.indent(); - this.expand(); - } - return node; -} - -WebFXTreeAbstractNode.prototype.toggle = function() { - if (this.folder) { - if (this.open) { this.collapse(); } - else { this.expand(); } - } -} - -WebFXTreeAbstractNode.prototype.select = function() { - document.getElementById(this.id + '-anchor').focus(); -} - -WebFXTreeAbstractNode.prototype.focus = function() { - webFXTreeHandler.selected = this; - if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; } - document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight'; - document.getElementById(this.id + '-anchor').style.color = 'highlighttext'; - document.getElementById(this.id + '-anchor').focus(); -} - -WebFXTreeAbstractNode.prototype.blur = function() { - if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; } - document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent'; - document.getElementById(this.id + '-anchor').style.color = 'menutext'; -} - -WebFXTreeAbstractNode.prototype.doExpand = function() { - if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; } - if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; } - this.open = true; - webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1'); -} - -WebFXTreeAbstractNode.prototype.doCollapse = function() { - if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; } - if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; } - this.open = false; - webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0'); -} - -WebFXTreeAbstractNode.prototype.expandAll = function() { - this.expandChildren(); - if ((this.folder) && (!this.open)) { this.expand(); } -} - -WebFXTreeAbstractNode.prototype.expandChildren = function() { - for (var i = 0; i < this.childNodes.length; i++) { - this.childNodes[i].expandAll(); -} } - -WebFXTreeAbstractNode.prototype.collapseAll = function() { - if ((this.folder) && (this.open)) { this.collapse(); } - this.collapseChildren(); -} - -WebFXTreeAbstractNode.prototype.collapseChildren = function() { - for (var i = 0; i < this.childNodes.length; i++) { - this.childNodes[i].collapseAll(); -} } - -WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) { - /* - * Since we only want to modify items one level below ourself, - * and since the rightmost indentation position is occupied by - * the plus icon we set this to -2 - */ - if (lvl == null) { lvl = -2; } - var state = 0; - for (var i = this.childNodes.length - 1; i >= 0 ; i--) { - state = this.childNodes[i].indent(lvl + 1, del, last, level); - if (state) { return; } - } - if (del) { - if (level >= this._level) { - if (this.folder) { - document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon; - this.plusIcon = webFXTreeConfig.lPlusIcon; - this.minusIcon = webFXTreeConfig.lMinusIcon; - } - else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; } - return 1; - } - } - var foo = document.getElementById(this.id + '-indent-' + lvl); - if (foo) { - if ((del) && (last)) { foo._last = true; } - if (foo._last) { foo.src = webFXTreeConfig.blankIcon; } - else { foo.src = webFXTreeConfig.iIcon; } - } - return 0; -} - -/* - * WebFXTree class - */ - -function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) { - this.base = WebFXTreeAbstractNode; - this.base(sText, sAction); - this.icon = sIcon || webFXTreeConfig.rootIcon; - this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon; - /* Defaults to open */ - this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true; - this.folder = true; - this.rendered = false; - if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; } - this.targetWindow = 'right'; -} - -WebFXTree.prototype = new WebFXTreeAbstractNode; - -WebFXTree.prototype.setBehavior = function (sBehavior) { - webFXTreeHandler.behavior = sBehavior; -}; - -WebFXTree.prototype.getBehavior = function (sBehavior) { - return webFXTreeHandler.behavior; -}; - -WebFXTree.prototype.getSelected = function() { - if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; } - else { return null; } -} - -WebFXTree.prototype.remove = function() { } - -WebFXTree.prototype.expand = function() { - this.doExpand(); -} - -WebFXTree.prototype.collapse = function() { - this.focus(); - this.doCollapse(); -} - -WebFXTree.prototype.getFirst = function() { - return null; -} - -WebFXTree.prototype.getLast = function() { - return null; -} - -WebFXTree.prototype.getNextSibling = function() { - return null; -} - -WebFXTree.prototype.getPreviousSibling = function() { - return null; -} - -WebFXTree.prototype.keydown = function(key) { - if (key == 39) { this.expand(); return false; } - if (key == 37) { this.collapse(); return false; } - if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; } - return true; -} - -WebFXTree.prototype.toString = function() { - var str = "
"; - str += "" + this.text + "
"; - str += "
"; - for (var i = 0; i < this.childNodes.length; i++) { - str += this.childNodes[i].toString(i, this.childNodes.length); - } - str += "
"; - this.rendered = true; - return str; -}; - -/* - * WebFXTreeItem class - */ - -function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) { - this.base = WebFXTreeAbstractNode; - this.base(sText, sAction); - /* Defaults to close */ - this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false; - if (eParent) { eParent.add(this); } - if (sIcon) { this.icon = sIcon; } - if (sOpenIcon) { this.openIcon = sOpenIcon; } -} - -WebFXTreeItem.prototype = new WebFXTreeAbstractNode; - -WebFXTreeItem.prototype.remove = function() { - var parentNode = this.parentNode; - var prevSibling = this.getPreviousSibling(true); - var nextSibling = this.getNextSibling(true); - var folder = this.parentNode.folder; - var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true; - this.getPreviousSibling().focus(); - this._remove(); - if (parentNode.childNodes.length == 0) { - parentNode.folder = false; - parentNode.open = false; - } - if (last) { - if (parentNode.id == prevSibling.id) { - document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon; - } - else { } - } - if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) { - parentNode.indent(null, true, last, this._level); - } - if (document.getElementById(prevSibling.id + '-plus')) { - if (nextSibling) { - if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; } - else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; } - } - else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; } - } -} - -WebFXTreeItem.prototype._remove = function() { - for (var i = this.childNodes.length - 1; i >= 0; i--) { - this.childNodes[i]._remove(); - } - for (var i = 0; i < this.parentNode.childNodes.length; i++) { - if (this.id == this.parentNode.childNodes[i].id) { - for (var j = i; j < this.parentNode.childNodes.length; j++) { - this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1] - } - this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1; - if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; } - } - } - webFXTreeHandler.all[this.id] = null; - if (document.getElementById(this.id)) { - document.getElementById(this.id).innerHTML = ""; - document.getElementById(this.id).removeNode(); - } -} - -WebFXTreeItem.prototype.expand = function() { - this.doExpand(); - document.getElementById(this.id + '-plus').src = this.minusIcon; -} - -WebFXTreeItem.prototype.collapse = function() { - this.focus(); - this.doCollapse(); - document.getElementById(this.id + '-plus').src = this.plusIcon; -} - -WebFXTreeItem.prototype.getFirst = function() { - return this.childNodes[0]; -} - -WebFXTreeItem.prototype.getLast = function() { - if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); } - else { return this.childNodes[this.childNodes.length - 1]; } -} - -WebFXTreeItem.prototype.getNextSibling = function() { - for (var i = 0; i < this.parentNode.childNodes.length; i++) { - if (this == this.parentNode.childNodes[i]) { break; } - } - if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); } - else { return this.parentNode.childNodes[i]; } -} - -WebFXTreeItem.prototype.getPreviousSibling = function(b) { - for (var i = 0; i < this.parentNode.childNodes.length; i++) { - if (this == this.parentNode.childNodes[i]) { break; } - } - if (i == 0) { return this.parentNode; } - else { - if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); } - else { return this.parentNode.childNodes[i]; } -} } - -WebFXTreeItem.prototype.keydown = function(key) { - if ((key == 39) && (this.folder)) { - if (!this.open) { this.expand(); return false; } - else { this.getFirst().select(); return false; } - } - else if (key == 37) { - if (this.open) { this.collapse(); return false; } - else { this.parentNode.select(); return false; } - } - else if (key == 40) { - if (this.open) { this.getFirst().select(); return false; } - else { - var sib = this.getNextSibling(); - if (sib) { sib.select(); return false; } - } } - else if (key == 38) { this.getPreviousSibling().select(); return false; } - return true; -} - -WebFXTreeItem.prototype.toString = function (nItem, nItemCount) { - var foo = this.parentNode; - var indent = ''; - if (nItem + 1 == nItemCount) { this.parentNode._last = true; } - var i = 0; - while (foo.parentNode) { - foo = foo.parentNode; - indent = "" + indent; - i++; - } - this._level = i; - if (this.childNodes.length) { this.folder = 1; } - else { this.open = false; } - if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) { - if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; } - if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; } - } - else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; } - var label = this.text; - label = label.replace('<', '<'); - label = label.replace('>', '>'); - var str = "
"; - str += indent; - str += "" - str += "" + label + "
"; - str += "
"; - for (var i = 0; i < this.childNodes.length; i++) { - str += this.childNodes[i].toString(i,this.childNodes.length); - } - str += "
"; - this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon); - this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon); - return str; -} \ No newline at end of file diff --git a/src/googleTranslate-1.7/docs/media/lib/tab.webfx.css b/src/googleTranslate-1.7/docs/media/lib/tab.webfx.css deleted file mode 100644 index 337fd8a8..00000000 --- a/src/googleTranslate-1.7/docs/media/lib/tab.webfx.css +++ /dev/null @@ -1,86 +0,0 @@ -/* - -bright: rgb(234,242,255); -normal: rgb(120,172,255); -dark: rgb(0,66,174); - -*/ - - - - -.dynamic-tab-pane-control.tab-pane { - position: relative; - width: 100%; -} - -.dynamic-tab-pane-control .tab-row .tab { - font-family: Verdana, Helvetica, Arial; - font-size: 12px; - cursor: Default; - display: inline; - margin: 1px -5px 1px 5px; - float: left; - padding: 3px 6px 3px 6px; - background: rgb(234,242,255); - border: 1px solid; - border-color: rgb(120,172,255); - border-left: 0; - border-bottom: 0; - border-top: 0; - - cursor: hand; - cursor: pointer; - - z-index: 1; - position: relative; - top: 0; -} - -.dynamic-tab-pane-control .tab-row .tab.selected { - border: 1px solid rgb(120,172,255); - border-bottom: 0; - z-index: 3; - padding: 2px 6px 5px 6px; - margin: 1px -6px -2px 0px; - top: -2px; - background: white; -} - -.dynamic-tab-pane-control .tab-row .tab a { - font-family: Verdana, Helvetica, Arial; - font-size: 13px; - color: rgb(0,66,174); - text-decoration: none; - cursor: hand; - cursor: pointer; -} - -.dynamic-tab-pane-control .tab-row .hover a { - color: rgb(0,66,174); -} - -.dynamic-tab-pane-control .tab-row .tab.selected a { - font-weight: bold; -} - -.dynamic-tab-pane-control .tab-page { - clear: both; - border: 1px solid rgb(120,172,255); - background: White; - z-index: 2; - position: relative; - top: -2px; - color: Black; - font-family: Verdana, Helvetica, Arial; - font-size: 13px; - padding: 10px; -} - -.dynamic-tab-pane-control .tab-row { - z-index: 1; - white-space: nowrap; - background: rgb(234,242,255); - height: 1.85em; - width: 100%; -} diff --git a/src/googleTranslate-1.7/docs/media/lib/tabpane.js b/src/googleTranslate-1.7/docs/media/lib/tabpane.js deleted file mode 100644 index f1418bee..00000000 --- a/src/googleTranslate-1.7/docs/media/lib/tabpane.js +++ /dev/null @@ -1,308 +0,0 @@ -/* - * Tab Pane - * - * This script was created by Erik Arvidsson (erik(at)eae.net) - * for WebFX (http://webfx.eae.net) - * Copyright 2002 - * - * For usage see license at http://webfx.eae.net/license.html - * - * Version: 1.0 - * Created: 2002-01-?? First working version - * Updated: 2002-02-17 Cleaned up for 1.0 public version - * - * Dependencies: *.css - a css file to define the layout - * - */ - - -// This function is used to define if the browser supports the needed -// features -function hasSupport() { - - if (typeof hasSupport.support != "undefined") - return hasSupport.support; - - var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent ); - - hasSupport.support = ( typeof document.implementation != "undefined" && - document.implementation.hasFeature( "html", "1.0" ) || ie55 ) - - // IE55 has a serious DOM1 bug... Patch it! - if ( ie55 ) { - document._getElementsByTagName = document.getElementsByTagName; - document.getElementsByTagName = function ( sTagName ) { - if ( sTagName == "*" ) - return document.all; - else - return document._getElementsByTagName( sTagName ); - }; - } - - return hasSupport.support; -} - -/////////////////////////////////////////////////////////////////////////////////// -// The constructor for tab panes -// -// el : HTMLElement The html element used to represent the tab pane -// bUseCookie : Boolean Optional. Default is true. Used to determine whether to us -// persistance using cookies or not -// -function WebFXTabPane( el, bUseCookie ) { - if ( !hasSupport() || el == null ) return; - - this.element = el; - this.element.tabPane = this; - this.pages = []; - this.selectedIndex = null; - this.useCookie = bUseCookie != null ? bUseCookie : false; - - // add class name tag to class name - this.element.className = this.classNameTag + " " + this.element.className; - - // add tab row - this.tabRow = document.createElement( "div" ); - this.tabRow.className = "tab-row"; - el.insertBefore( this.tabRow, el.firstChild ); - - var tabIndex = 0; - if ( this.useCookie ) { - tabIndex = Number( WebFXTabPane.getCookie( "webfxtab_" + this.element.id ) ); - if ( isNaN( tabIndex ) ) - tabIndex = 0; - } - - this.selectedIndex = tabIndex; - - // loop through child nodes and add them - var cs = el.childNodes; - var n; - for (var i = 0; i < cs.length; i++) { - if (cs[i].nodeType == 1 && cs[i].className == "tab-page") { - this.addTabPage( cs[i] ); - } - } -} - -WebFXTabPane.prototype = { - - classNameTag: "dynamic-tab-pane-control", - - setSelectedIndex: function ( n ) { - if (this.selectedIndex != n) { - if (this.selectedIndex != null && this.pages[ this.selectedIndex ] != null ) - this.pages[ this.selectedIndex ].hide(); - this.selectedIndex = n; - this.pages[ this.selectedIndex ].show(); - - if ( this.useCookie ) - WebFXTabPane.setCookie( "webfxtab_" + this.element.id, n ); // session cookie - } - }, - - getSelectedIndex: function () { - return this.selectedIndex; - }, - - addTabPage: function ( oElement ) { - if ( !hasSupport() ) return; - - if ( oElement.tabPage == this ) // already added - return oElement.tabPage; - - var n = this.pages.length; - var tp = this.pages[n] = new WebFXTabPage( oElement, this, n ); - tp.tabPane = this; - - // move the tab out of the box - this.tabRow.appendChild( tp.tab ); - - if ( n == this.selectedIndex ) - tp.show(); - else - tp.hide(); - - return tp; - } -}; - -// Cookie handling -WebFXTabPane.setCookie = function ( sName, sValue, nDays ) { - var expires = ""; - if ( nDays ) { - var d = new Date(); - d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 ); - expires = "; expires=" + d.toGMTString(); - } - - document.cookie = sName + "=" + sValue + expires + "; path=/"; -}; - -WebFXTabPane.getCookie = function (sName) { - var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" ); - var res = re.exec( document.cookie ); - return res != null ? res[3] : null; -}; - -WebFXTabPane.removeCookie = function ( name ) { - setCookie( name, "", -1 ); -}; - - - - - - - - -/////////////////////////////////////////////////////////////////////////////////// -// The constructor for tab pages. This one should not be used. -// Use WebFXTabPage.addTabPage instead -// -// el : HTMLElement The html element used to represent the tab pane -// tabPane : WebFXTabPane The parent tab pane -// nindex : Number The index of the page in the parent pane page array -// -function WebFXTabPage( el, tabPane, nIndex ) { - if ( !hasSupport() || el == null ) return; - - this.element = el; - this.element.tabPage = this; - this.index = nIndex; - - var cs = el.childNodes; - for (var i = 0; i < cs.length; i++) { - if (cs[i].nodeType == 1 && cs[i].className == "tab") { - this.tab = cs[i]; - break; - } - } - - // insert a tag around content to support keyboard navigation - var a = document.createElement( "A" ); - a.href = "javascript:void 0;"; - while ( this.tab.hasChildNodes() ) - a.appendChild( this.tab.firstChild ); - this.tab.appendChild( a ); - - - anchor = ''; - if ( document.URL.indexOf( '#' ) != -1 ) { - anchor = document.URL.substr( document.URL.indexOf( '#' ) + 1); - } - j = 0; - if ( anchor.length > 0 ) { - finalList = new Array(); - listOfAnchors = el.getElementsByTagName('A'); - for (i=0; i - - - - - - -

Packages

- - - \ No newline at end of file diff --git a/src/googleTranslate-1.7/example.php b/src/googleTranslate-1.7/example.php deleted file mode 100644 index 91452652..00000000 --- a/src/googleTranslate-1.7/example.php +++ /dev/null @@ -1,22 +0,0 @@ - -detectLanguage($test)); - -/* Translate */ -echo $gt->translate($test, "fr", "en"); - -/* Was translation successful */ -echo $gt->isSuccess(); - - - -?> \ No newline at end of file diff --git a/src/googleTranslate-1.7/googleTranslate.class.php b/src/googleTranslate-1.7/googleTranslate.class.php deleted file mode 100644 index b3b7b2fb..00000000 --- a/src/googleTranslate-1.7/googleTranslate.class.php +++ /dev/null @@ -1,424 +0,0 @@ - $this->_version, - 'q' => $this->_text, - 'langpair' => $this->_fromLang . "|" . $this->_toLang); - } - elseif($type == self::DETECT) - { - $fields = array('v' => $this->_version, - 'q' => $this->_text); - } - - if($this->_apiKey != "") $fields['key'] = $this->_apiKey; - if($this->_ip != "") $fields['userip'] = $this->_ip; - - $this->_postFields = http_build_query($fields, '', "&"); - } - - - /** - * Process the built query using cURL and POST - * - * @param string POST fields - * @return string response - */ - private function _remoteQuery($query) - { - if(!function_exists('curl_init')) - { - return ""; - } - - /* Setup CURL and its options*/ - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL,$this->_googleTranslateUrl); - curl_setopt($ch, CURLOPT_REFERER, $this->_siteUrl); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_TIMEOUT, 15); - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_POSTFIELDS, $query); - - $response = curl_exec($ch); - - return $response; - } - - - /** - * Process the built query using cURL and GET - * - * @param string GET fields - * @return string response - */ - private function _remoteQueryDetect($query) - { - if(!function_exists('curl_init')) - { - return ""; - } - - $ch = curl_init(); - $url = $this->_googleDetectUrl . "?" . $query; - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_REFERER, $this->_siteUrl); - - $response = curl_exec($ch); - return $response; - } - - - /** - * Self test the class - * - * @return boolean - */ - public function selfTest() - { - if(!function_exists('curl_init')) - { - echo "cURL not installed."; - } - else - { - $testText = $this->translate("hello", "fr", "en"); - echo ($testText == "bonjour") ? "Test Ok." : "Test Failed."; - } - } - - /** - * Check if the last translation was a success - * - * @return boolean - */ - public function isSuccess() - { - return $this->_success; - } - - /** - * Get the last generated service error - * - * @return String - */ - public function getLastError() - { - return $this->_serviceError; - } - - - /** - * Get the detected source language, if the source is not provided - * during query - * - * @return String - */ - public function getDetectedSource() - { - return $this->_detectedSourceLanguage; - } - - - /** - * Set credentials (optional) when accessing Google translation services - * - * @param string $apiKey your google api key - */ - public function setCredentials($apiKey, $ip) - { - $this->_apiKey = $apiKey; - $this->_ip = $ip; - } - - - /** - * Set Referrer header - * - * @param string $siteUrl your website url - */ - public function setReferrer($siteUrl) - { - $this->_siteUrl = $siteUrl; - } - - - /** - * Translate the given text - * @param string $text text to translate - * @param string $to language to translate to - * @param string $from optional language to translate from - * @return boolean | string - */ - public function translate($text = '', $to, $from = '') - { - $this->_success = false; - - if($text == '' || $to == '') - { - return false; - } - else - { - if($this->_chunks == 0) - { - $this->_chunks = str_split($text, $this->_stringLimit); - $this->_totalChunks = count($this->_chunks); - $this->_currentChunk = 0; - - $this->_text = $this->_chunks[$this->_currentChunk]; - $this->_toLang = $to; - $this->_fromLang = $from; - } - else - { - $this->_text = $text; - $this->_toLang = $to; - $this->_fromLang = $from; - } - } - - $this->_composeUrl(self::TRANSLATE); - - if($this->_text != '' && $this->_postFields != '') - { - $contents = $this->_remoteQuery($this->_postFields); - $json = json_decode($contents, true); - - if($json['responseStatus'] == 200) - { - $this->translatedText .= $json['responseData']['translatedText']; - if(isset($json['responseData']['detectedSourceLanguage'])) - { - $this->_detectedSourceLanguage = $json['responseData']['detectedSourceLanguage']; - } - - $this->_currentChunk++; - - if($this->_currentChunk >= $this->_totalChunks) { - $this->_success = true; - return $this->translatedText; - } - else { - return $this->translate($this->_chunks[$this->_currentChunk], $to, $from); - } - - } - else - { - $this->_serviceError = $json['responseDetails']; - return false; - } - } - else - { - return false; - } - } - - /** - * Detect the language of the given text - * @param string $text text language to detect - * @return boolean | string - */ - public function detectLanguage($text) - { - - if($text == '') - { - return false; - } - else - { - $this->_text = $text; - } - - - $this->_composeUrl(self::DETECT); - - if($this->_text != '' && $this->_postFields != '') - { - - $contents = $this->_remoteQueryDetect($this->_postFields); - $json = json_decode($contents, true); - - if($json['responseStatus'] == 200) - { - return $json['responseData']; - } - else - { - $this->_serviceError = $json['responseDetails']; - return false; - } - } - else - { - return false; - } - - } - -} - - -?> \ No newline at end of file