diff --git a/cdn-rewrite.php b/cdn-rewrite.php
new file mode 100644
index 0000000000000000000000000000000000000000..c9a38285358b718852b5fbbd8e05b021bebb9c03
--- /dev/null
+++ b/cdn-rewrite.php
@@ -0,0 +1,209 @@
+<?php
+/*
+Plugin Name: CDN Rewrite
+Plugin URI: http://voceconnect.com/
+Description: Rewrites asset URLs to CDN
+Version: 0.1
+Author: Chris Scott, Michael Pretty
+Author URI: http://voceconnect.com/
+*/
+
+require_once('voce-settings.php');
+
+class CDN_Rewrite {
+
+	const OPTION_GENERAL = 'cdn_general';
+
+	private $submenu_general;
+	private $file_extensions;
+	private $blog_details;
+	private $cdn_root_url;
+
+	public function __construct() {
+		$this->file_extensions = $this->get_setting('file_extensions');
+		$this->cdn_root_url = untrailingslashit($this->get_setting('root_url'));
+	}
+
+	public function initialize() {
+		if (!class_exists('Voce_Settings')) {
+			return;
+		}
+
+		add_action('admin_menu', array($this, 'add_options_page'));
+		if ('' == $this->file_extensions || '' == $this->cdn_root_url) {
+			add_action('admin_notices', array($this, 'settings_warning'));
+			return;
+		}
+
+		if('/' != $this->cdn_root_url) {
+			add_action('template_redirect', array($this, 'start_buffer'), 1);
+		}
+	}
+
+	/**
+	 * get general setting
+	 *
+	 * @param string $setting setting name
+	 * @return mixed setting value or false if not set
+	 */
+	private function get_setting($setting) {
+		$settings = get_option(self::OPTION_GENERAL);
+		if(!$settings || !is_array($settings)) {
+			$settings = array(
+				'file_extensions' => 'bmp|bz2|css|gif|ico|gz|jpg|jpeg|js|mp3|pdf|png|rar|rtf|swf|tar|tgz|txt|wav|zip'
+			);
+			update_option(self::OPTION_GENERAL, $settings);
+		}
+		return (isset($settings[$setting])) ? $settings[$setting] : false;
+	}
+
+	public function settings_warning() {
+		echo "<div class='update-nag'>The CDN Rewrite plugin is missing some required settings.</div>";
+	}
+
+	/**
+	 * adds the options page
+	 *
+	 * @return void
+	 */
+	public function add_options_page() {
+		$this->submenu_general = add_options_page('CDN Rewrite', 'CDN Rewrite', 'manage_options', self::OPTION_GENERAL, array($this, 'submenu_general'));
+		$settings = new Voce_Settings(self::OPTION_GENERAL, self::OPTION_GENERAL);
+
+		$section = $settings->add_section('api', 'CDN Rewrite Settings', $this->submenu_general);
+		$section->add_field('root_url', 'CDN Root URL (required)', 'field_input', array('description' => 'The base URL of the CDN.'));
+		$section->add_field('file_extensions', 'File Extensions (required)', 'field_input');
+	}
+
+	/**
+	 * callback to display submenu_external
+	 *
+	 * @return void
+	 */
+	function submenu_general() {
+		?>
+		<div class="wrap">
+			<h2>CDN Rewrite Settings</h2>
+			<form method="post" action="options.php">
+				<?php settings_fields(self::OPTION_GENERAL); ?>
+				<?php do_settings_sections($this->submenu_general); ?>
+				<p class="submit">
+					<input name="Submit" type="submit" class="button-primary" value="<?php esc_attr_e('Save Changes'); ?>" />
+				</p>
+			</form>
+		</div>
+		<?php
+	}
+
+	/**
+	 * start output buffering.
+	 *
+	 */
+	public function start_buffer() {
+		ob_start(array($this, 'filter_urls'));
+	}
+
+	/**
+	 * Callback for output buffering.  Search content for urls to replace
+	 *
+	 * @param string $content
+	 * @return string
+	 */
+	public function filter_urls($content) {
+		$root_url = $this->get_site_root_url();
+		$regex = '#(?<=[(\"\'])'.quotemeta($root_url).'(?:(/[^\"\')]+\.('.$this->file_extensions.')))#';
+
+		$content = preg_replace_callback($regex, array($this, 'url_rewrite'), $content);
+
+		return $content;
+	}
+
+	/**
+	 * Returns the root url of the current site
+	 *
+	 * @return string
+	 */
+	public function get_site_root_url() {
+		if(is_multisite() && !is_subdomain_install()) {
+			$root_blog = get_blog_details(1);
+			$root_url = $root_blog->siteurl;
+		} else {
+			$root_url = site_url();
+		}
+		return $root_url;
+	}
+
+	/**
+	 * Returns the details for the current blog
+	 *
+	 * @return object
+	 */
+	public function get_this_blog_details() {
+		if(!isset($this->blog_details)) {
+			global $blog_id;
+			$this->blog_details = get_blog_details($blog_id);
+		}
+		return $this->blog_details;
+	}
+
+	/**
+	 * Callback for url preg_replace_callback.  Returns corrected URL
+	 *
+	 * @param array $match
+	 * @return string
+	 */
+	public function url_rewrite($match) {
+		global $blog_id;
+		$path = $match[1];
+		//if is subfolder install and isn't root blog and path starts with site_url and isnt uploads dir
+		if(is_multisite() && !is_subdomain_install() && $blog_id !== 1) {
+			$bloginfo = $this->get_this_blog_details();
+			if((0 === strpos($path, $bloginfo->path)) && (0 !== strpos($path, $bloginfo->path.'files/'))) {
+				$path = '/'.substr($path, strlen($bloginfo->path));
+			}
+		}
+		return $this->cdn_root_url . $path;
+	}
+
+}
+add_action('init', array(new CDN_Rewrite(), 'initialize'));
+
+class CDN_VersionAssets {
+
+	private $default_version = '';
+	private $root_url;
+
+	public function __construct() {
+		$this->root_url = site_url();
+	}
+
+	public function initialize() {
+		add_filter('style_loader_src', array($this, 'replace_version'), 10);
+		add_filter('script_loader_src', array($this, 'replace_version'), 10);
+		add_filter('stylesheet_uri', array($this, 'replace_version'), 10);
+	}
+
+	public function on_template_redirect() {
+		$this->default_version = @filemtime(get_stylesheet_directory().'/style.css');
+	}
+
+	private function get_version($url) {
+		if(0 === strpos($url, $this->root_url)) {
+			$parts = parse_url($url);
+			$file_path = str_replace(site_url('/'), ABSPATH, $parts['scheme'].'://'.$parts['host'].$parts['path']);
+			if(	!($version = @filemtime($file_path)) ) {
+				$version = $this->default_version;
+			}
+			return $version;
+		}
+		return false;
+	}
+
+	public function replace_version($src) {
+		if( $new_version = $this->get_version($src) ) {
+			return add_query_arg('ver', $new_version, $src);
+		}
+		return $src;
+	}
+}
+add_action('init', array(new CDN_VersionAssets(), 'initialize'));
\ No newline at end of file
diff --git a/cloudfiles-cdn.php b/cloudfiles-cdn.php
deleted file mode 100644
index b91e41afc5d96c8e1becae9abccd03d89dfc904d..0000000000000000000000000000000000000000
--- a/cloudfiles-cdn.php
+++ /dev/null
@@ -1,296 +0,0 @@
-<?php
-/*
-Plugin Name: Cloudfiles CDN
-Plugin URI: http://voceconnect.com/
-Description: Adds/Deletes uploaded images on CDN and rewrites asset URLs to CDN
-Version: 0.1
-Author: Chris Scott, Michael Pretty
-Author URI: http://voceconnect.com/
-*/
-
-class CloudfilesCdn {
-
-	function __construct() {
-		if (!defined('CF_USERNAME') || !defined('CF_API_KEY') || !defined('CF_CONTAINER') || !defined('CF_CONTAINER_URL')) {
-			// these should be defined in wp-config. if not, don't do anything here.
-			return;
-		}
-
-		add_filter('wp_handle_upload', array('CloudfilesCdn', 'catch_wp_handle_upload'));
-		add_filter('wp_delete_file', array('CloudfilesCdn', 'catch_wp_delete_file'));
-		add_filter('wp_generate_attachment_metadata', array('CloudfilesCdn', 'catch_wp_generate_attachment_metadata'));
-		add_filter('bp_core_avatar_cropstore', array('CloudfilesCdn', 'catch_bp_core_avatar_cropstore'));
-		add_action('bp_core_avatar_save', array('CloudfilesCdn', 'catch_bp_core_avatar_save'), 10, 2);
-	}
-
-	/**
-	 * delete old BP avatars on save
-	 *
-	 * @param string $user_id not used
-	 * @param string $old the path to the file being deleted
-	 * @return void
-	 */
-	public static function catch_bp_core_avatar_save($user_id, $old) {
-		$files = array();
-		// this will be -avatar2
-		$files[] = str_replace(ABSPATH, '', $old);
-		// get -avatar1 also
-		$files[] = str_replace('-avatar2', '-avatar1', $files[0]);
-
-		foreach ($files as $file) {
-			if (defined('CF_DEBUG_ENABLED') && CF_DEBUG_ENABLED)
-				error_log("DELETING OLD BP AVATAR: $file");
-
-			self::delete_file($file);
-		}
-	}
-
-	/**
-	 * when BP avatars are cropped, catch the cropped sizes and upload
-	 *
-	 * @param string $files
-	 * @return array the original file array
-	 */
-	public static function catch_bp_core_avatar_cropstore($files) {
-		foreach ((array) $files as $file) {
-			$relative_file_path = str_replace(ABSPATH, '', $file);
-			$file_type = wp_check_filetype($file);
-
-			if (defined('CF_DEBUG_ENABLED') && CF_DEBUG_ENABLED)
-				error_log("UPLOADING BP AVATAR: $relative_file_path");
-			self::upload_file($file, $file_type['type'], $relative_file_path);
-		}
-
-		return $files;
-	}
-
-	/**
-	 * go grab the already generated intermediate sizes and upload
-	 *
-	 * @param string $metadata
-	 * @return array updated metadata
-	 */
-	public static function catch_wp_generate_attachment_metadata($metadata) {
-		//error_log("WP_GENERATE_ATTACHMENT_METADATA: " . var_export($metadata, true));
-		$upload_dir = wp_upload_dir();
-		$upload_path = trailingslashit($upload_dir['path']);
-		$sizes = $metadata['sizes'];
-
-		foreach ($sizes as $size => $size_data ) {
-			$file = $size_data['file'];
-			$relative_file_path = self::get_blog_path() . 'files' . trailingslashit($upload_dir['subdir']) . $file;
-			$file_type = wp_check_filetype($file);
-			if (defined('CF_DEBUG_ENABLED') && CF_DEBUG_ENABLED)
-				error_log("UPLOADING INTERMEDIATE SIZE: $relative_file_path");
-			self::upload_file($upload_path . $file, $file_type['type'], $relative_file_path);
-		}
-
-		return $metadata;
-	}
-
-	/**
-	 * get a local filename from a CDN URL
-	 *
-	 * @param string $url
-	 * @return string filename
-	 */
-	private static function get_local_filename($url) {
-		return ABSPATH . str_replace(trailingslashit(CF_CONTAINER_URL), '', $url);
-	}
-
-	/**
-	 * Filter to handle wp_handle_upload for uploaded files. Logs any errors.
-	 *
-	 * @param string $upload
-	 * @return void
-	 */
-	public static function catch_wp_handle_upload($upload) {
-		// check for buddypress avatar upload and don't upload since it resizes and deletes this one
-		if (function_exists('bp_core_setup_globals') && strpos($upload['file'], '/avatars/') !== false) {
-			return $upload;
-		}
-
-		$blog_path = self::get_blog_path();
-		$relative_url = $blog_path . self::remove_site_url($upload['url']);
-		if (defined('CF_DEBUG_ENABLED') && CF_DEBUG_ENABLED)
-			error_log("UPLOADING: $relative_url");
-
-		// upload file
-		if (!self::upload_file($upload['file'], $upload['type'], $relative_url)) {
-			error_log("[CloudfilesCdn] Error uploading file: $relative_url");
-			return $upload;
-		}
-
-		return $upload;
-	}
-
-	/**
-	 * Filter to handle wp_delete_file for deleted files. Deletes the file
-	 * from the CDN.
-	 *
-	 * @param string $file
-	 * @return string the original file path
-	 */
-	public static function catch_wp_delete_file($file) {
-		//error_log("WP_DELETE_FILE: " . var_export($file, true));
-		// handle 'wp-content/blogs.dir/1/files/2010/07/653106995_338e53fb1412.jpg' files
-		if (strpos($file, 'blogs.dir')) {
-			$parts = explode('files/', $file);
-			$file = $parts[1];
-		}
-		$upload_dir = wp_upload_dir();
-		$relative_path = self::get_blog_path() . 'files/' . $file;
-
-		// delete the file from the CDN if it is on there
-		if (defined('CF_DEBUG_ENABLED') && CF_DEBUG_ENABLED)
-			error_log("DELETING FILE: $relative_path");
-		self::delete_file(str_replace(ABSPATH, '', $relative_path));
-
-		return $file;
-	}
-
-	/**
-	 * get the blog's path without the leading slash
-	 *
-	 * @return string
-	 */
-	private static function get_blog_path() {
-		global $blog_id;
-		$blog_path = '';
-		if ((int) $blog_id !== 1) {
-			$blog_details = get_blog_details($blog_id);
-			$blog_path = $blog_details->path;
-		}
-
-		return ltrim($blog_path, '/');
-	}
-
-	/**
-	 * Get the relative filename. The filename from the wp_delete_file filter
-	 * will either have the file path to the WP_UPLOAD_DIR prepended to the cdn'd file
-	 * url or it will be the path relative to the WP_UPLOAD_DIR
-	 *
-	 * @param string $file
-	 * @return void
-	 */
-	private static function get_relative_file($file) {
-		$cont_url = CF_CONTAINER_URL;
-		if (strpos($file, $cont_url) !== false) {
-			if ($file_parts = explode(trailingslashit(CF_CONTAINER_URL), $file)) {
-				// prepended w/bad upload path (e.g. http://c0002127.cdn1.cloudfiles.rackspacecloud.com/wp-content/uploads/2010/07/http://c0002127.cdn1.cloudfiles.rackspacecloud.com/wp-content/uploads/2010/07/653106995_338e53fb1416-150x150.jpg)
-				if (isset($file_parts[2])) {
-					return $file_parts[2];
-				} elseif (isset($file_parts[1])) {
-					// just regular CDN url
-					return $file_parts[1];
-				}
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * delete a file from the CDN
-	 *
-	 * @param string $file relative filename
-	 * @return bool true on success, false on failure
-	 */
-	private static function delete_file($file) {
-		require_once(trailingslashit(dirname(__FILE__)) . 'cloudfiles/cloudfiles.php');
-		$auth = new CF_Authentication(CF_USERNAME, CF_API_KEY);
-
-		try {
-			$auth->authenticate();
-		} catch (Exception $e) {
-			error_log(sprintf("[CloudfilesCdn] Error authenticating to Cloudfiles: %s", $e->getMessage()));
-			return false;
-		}
-
-		$conn = new CF_Connection($auth);
-		$container = $conn->get_container(CF_CONTAINER);
-
-		try {
-			$obj = $container->get_object($file);
-			$container->delete_object($obj);
-		} catch (Exception $e) {
-			error_log(sprintf("[CloudfilesCdn] Error deleting file '%s' from Cloudfiles: %s", $file, $e->getMessage()));
-		}
-
-		return true;
-	}
-
-
-
-	/**
-	 * Update the attachement URL if the attached file is on the CDN
-	 *
-	 * @param string $url
-	 * @param string $post_id
-	 * @return string original or updated URL
-	 */
-	public static function cdn_attachment_url($url, $post_id) {
-		if ($file = get_post_meta($post_id, '_wp_attached_file', true)) {
-			if (strpos($file, CF_CONTAINER_URL) !== false) {
-				return $file;
-			}
-		}
-
-		return $url;
-	}
-
-	/**
-	 * Upload a file to cloudfiles
-	 *
-	 * @param string $file the file's path
-	 * @param string $file_type the file's mime type
-	 * @param string $file_url the file's site-relative URL
-	 * @return bool true on succes, false on fail
-	 */
-	private static function upload_file($file, $file_type, $file_url) {
-		require_once(trailingslashit(dirname(__FILE__)) . 'cloudfiles/cloudfiles.php');
-		$auth = new CF_Authentication(CF_USERNAME, CF_API_KEY);
-
-		try {
-			$auth->authenticate();
-		} catch (Exception $e) {
-			error_log(sprintf("[CloudfilesCdn] Error authenticating to Cloudfiles: %s", $e->getMessage()));
-			return false;
-		}
-
-		$conn = new CF_Connection($auth);
-		$container = $conn->get_container(CF_CONTAINER);
-
-		$obj = $container->create_object($file_url);
-		$obj->content_type = $file_type;
-
-		try {
-			$obj->load_from_filename($file);
-		} catch (Exception $e) {
-			error_log(sprintf("[CloudfilesCdn] Error uploading '%s' to Cloudfiles: %s", $file, $e->getMessage()));
-			return false;
-		}
-
-		if (defined('CF_DEBUG_ENABLED') && CF_DEBUG_ENABLED)
-			error_log("UPLOADED: $file, $file_type, $file_url");
-
-		return true;
-	}
-
-	/**
-	 * Get a site-relative url without a leading / from an absolute URL containing the siteurl
-	 *
-	 * @param string $absolute_url
-	 * @return string relative url
-	 */
-	private static function remove_site_url($absolute_url) {
-		return str_replace(trailingslashit(get_option('siteurl')), '', $absolute_url);
-	}
-
-	private static function remove_cdn_url($url) {
-		return str_replace(trailingslashit(CF_CONTAINER_URL), '', $url);
-	}
-
-}
-
-$cdn = new CloudfilesCdn();
\ No newline at end of file
diff --git a/cloudfiles/cloudfiles.php b/cloudfiles/cloudfiles.php
deleted file mode 100644
index 87486e2d92d809f848f1ef57d401fde716ce9e9a..0000000000000000000000000000000000000000
--- a/cloudfiles/cloudfiles.php
+++ /dev/null
@@ -1,2168 +0,0 @@
-<?php
-/**
- * This is the PHP Cloud Files API.
- *
- * <code>
- *   # Authenticate to Cloud Files.  The default is to automatically try
- *   # to re-authenticate if an authentication token expires.
- *   #
- *   # NOTE: Some versions of cURL include an outdated certificate authority (CA)
- *   #       file.  This API ships with a newer version obtained directly from
- *   #       cURL's web site (http://curl.haxx.se).  To use the newer CA bundle,
- *   #       call the CF_Authentication instance's 'ssl_use_cabundle()' method.
- *   #
- *   $auth = new CF_Authentication($username, $api_key);
- *   # $auth->ssl_use_cabundle();  # bypass cURL's old CA bundle
- *   $auth->authenticate();
- *
- *   # Establish a connection to the storage system
- *   #
- *   # NOTE: Some versions of cURL include an outdated certificate authority (CA)
- *   #       file.  This API ships with a newer version obtained directly from
- *   #       cURL's web site (http://curl.haxx.se).  To use the newer CA bundle,
- *   #       call the CF_Connection instance's 'ssl_use_cabundle()' method.
- *   #
- *   $conn = new CF_Connection($auth);
- *   # $conn->ssl_use_cabundle();  # bypass cURL's old CA bundle
- *
- *   # Create a remote Container and storage Object
- *   #
- *   $images = $conn->create_container("photos");
- *   $bday = $images->create_object("first_birthday.jpg");
- *
- *   # Upload content from a local file by streaming it.  Note that we use
- *   # a "float" for the file size to overcome PHP's 32-bit integer limit for
- *   # very large files.
- *   #
- *   $fname = "/home/user/photos/birthdays/birthday1.jpg";  # filename to upload
- *   $size = (float) sprintf("%u", filesize($fname));
- *   $fp = open($fname, "r");
- *   $bday->write($fp, $size);
- *
- *   # Or... use a convenience function instead
- *   #
- *   $bday->load_from_filename("/home/user/photos/birthdays/birthday1.jpg");
- *
- *   # Now, publish the "photos" container to serve the images by CDN.
- *   # Use the "$uri" value to put in your web pages or send the link in an
- *   # email message, etc.
- *   #
- *   $uri = $images->make_public();
- *
- *   # Or... print out the Object's public URI
- *   #
- *   print $bday->public_uri();
- * </code>
- *
- * See the included tests directory for additional sample code.
- *
- * Requres PHP 5.x (for Exceptions and OO syntax) and PHP's cURL module.
- *
- * It uses the supporting "cloudfiles_http.php" module for HTTP(s) support and
- * allows for connection re-use and streaming of content into/out of Cloud Files
- * via PHP's cURL module.
- *
- * See COPYING for license information.
- *
- * @author Eric "EJ" Johnson <ej@racklabs.com>
- * @copyright Copyright (c) 2008, Rackspace US, Inc.
- * @package php-cloudfiles
- */
-
-/**
- */
-require_once("cloudfiles_exceptions.php");
-require("cloudfiles_http.php");
-define("DEFAULT_CF_API_VERSION", 1);
-define("MAX_CONTAINER_NAME_LEN", 256);
-define("MAX_OBJECT_NAME_LEN", 1024);
-define("MAX_OBJECT_SIZE", 5*1024*1024*1024+1); # bigger than S3! ;-)
-
-/**
- * Class for handling Cloud Files Authentication, call it's {@link authenticate()}
- * method to obtain authorized service urls and an authentication token.
- *
- * Example:
- * <code>
- * # Create the authentication instance
- * #
- * $auth = new CF_Authentication("username", "api_key");
- *
- * # NOTE: Some versions of cURL include an outdated certificate authority (CA)
- * #       file.  This API ships with a newer version obtained directly from
- * #       cURL's web site (http://curl.haxx.se).  To use the newer CA bundle,
- * #       call the CF_Authentication instance's 'ssl_use_cabundle()' method.
- * #
- * # $auth->ssl_use_cabundle(); # bypass cURL's old CA bundle
- *
- * # Perform authentication request
- * #
- * $auth->authenticate();
- * </code>
- *
- * @package php-cloudfiles
- */
-class CF_Authentication
-{
-    public $dbug;
-    public $username;
-    public $api_key;
-    public $auth_host;
-    public $account;
-
-    /**
-     * Instance variables that are set after successful authentication
-     */
-    public $storage_url;
-    public $cdnm_url;
-    public $auth_token;
-
-    /**
-     * Class constructor (PHP 5 syntax)
-     *
-     * @param string $username Mosso username
-     * @param string $api_key Mosso API Access Key
-     * @param string $account <b>Deprecated</b> <i>Account name</i>
-     * @param string $auth_host <b>Deprecated</b> <i>Authentication service URI</i>
-     */
-    function __construct($username=NULL, $api_key=NULL, $account=NULL, $auth_host=NULL)
-    {
-
-        $this->dbug = False;
-        $this->username = $username;
-        $this->api_key = $api_key;
-        $this->account_name = $account;
-        $this->auth_host = $auth_host;
-
-        $this->storage_url = NULL;
-        $this->cdnm_url = NULL;
-        $this->auth_token = NULL;
-
-        $this->cfs_http = new CF_Http(DEFAULT_CF_API_VERSION);
-    }
-
-    /**
-     * Use the Certificate Authority bundle included with this API
-     *
-     * Most versions of PHP with cURL support include an outdated Certificate
-     * Authority (CA) bundle (the file that lists all valid certificate
-     * signing authorities).  The SSL certificates used by the Cloud Files
-     * storage system are perfectly valid but have been created/signed by
-     * a CA not listed in these outdated cURL distributions.
-     *
-     * As a work-around, we've included an updated CA bundle obtained
-     * directly from cURL's web site (http://curl.haxx.se).  You can direct
-     * the API to use this CA bundle by calling this method prior to making
-     * any remote calls.  The best place to use this method is right after
-     * the CF_Authentication instance has been instantiated.
-     *
-     * You can specify your own CA bundle by passing in the full pathname
-     * to the bundle.  You can use the included CA bundle by leaving the
-     * argument blank.
-     *
-     * @param string $path Specify path to CA bundle (default to included)
-     */
-    function ssl_use_cabundle($path=NULL)
-    {
-        $this->cfs_http->ssl_use_cabundle($path);
-    }
-
-    /**
-     * Attempt to validate Username/API Access Key
-     *
-     * Attempts to validate credentials with the authentication service.  It
-     * either returns <kbd>True</kbd> or throws an Exception.  Accepts a single
-     * (optional) argument for the storage system API version.
-     *
-     * Example:
-     * <code>
-     * # Create the authentication instance
-     * #
-     * $auth = new CF_Authentication("username", "api_key");
-     *
-     * # Perform authentication request
-     * #
-     * $auth->authenticate();
-     * </code>
-     *
-     * @param string $version API version for Auth service (optional)
-     * @return boolean <kbd>True</kbd> if successfully authenticated
-     * @throws AuthenticationException invalid credentials
-     * @throws InvalidResponseException invalid response
-     */
-    function authenticate($version=DEFAULT_CF_API_VERSION)
-    {
-        list($status,$reason,$surl,$curl,$atoken) = 
-                $this->cfs_http->authenticate($this->username, $this->api_key,
-                $this->account_name, $this->auth_host);
-
-        if ($status == 401) {
-            throw new AuthenticationException("Invalid username or access key.");
-        }
-        if ($status != 204) {
-            throw new InvalidResponseException(
-                "Unexpected response (".$status."): ".$reason);
-        }
-
-        if (!($surl || $curl) || !$atoken) {
-            throw new InvalidResponseException(
-                "Expected headers missing from auth service.");
-        }
-        $this->storage_url = $surl;
-        $this->cdnm_url = $curl;
-        $this->auth_token = $atoken;
-        return True;
-    }
-	/**
-	 * Use Cached Token and Storage URL's rather then grabbing from the Auth System
-         *
-         * Example:
- 	 * <code>
-         * #Create an Auth instance
-         * $auth = new CF_Authentication();
-         * #Pass Cached URL's and Token as Args
-	 * $auth->load_cached_credentials("auth_token", "storage_url", "cdn_management_url");
-         * </code>
-	 * 
-	 * @param string $auth_token A Cloud Files Auth Token (Required)
-         * @param string $storage_url The Cloud Files Storage URL (Required)
-         * @param string $cdnm_url CDN Management URL (Required)
-         * @return boolean <kbd>True</kbd> if successful 
-	 * @throws SyntaxException If any of the Required Arguments are missing
-         */
-	function load_cached_credentials($auth_token, $storage_url, $cdnm_url)
-    {
-        if(!$storage_url || !$cdnm_url)
-        {
-                throw new SyntaxException("Missing Required Interface URL's!");
-                return False;
-        }
-        if(!$auth_token)
-        {
-                throw new SyntaxException("Missing Auth Token!");
-                return False;
-        }
-
-        $this->storage_url = $storage_url;
-        $this->cdnm_url    = $cdnm_url;
-        $this->auth_token  = $auth_token;
-        return True;
-    }
-	/**
-         * Grab Cloud Files info to be Cached for later use with the load_cached_credentials method.
-         *
-	 * Example:
-         * <code>
-         * #Create an Auth instance
-         * $auth = new CF_Authentication("UserName","API_Key");
-         * $auth->authenticate();
-         * $array = $auth->export_credentials();
-         * </code>
-         * 
-	 * @return array of url's and an auth token.
-         */
-    function export_credentials()
-    {
-        $arr = array();
-        $arr['storage_url'] = $this->storage_url;
-        $arr['cdnm_url']    = $this->cdnm_url;
-        $arr['auth_token']  = $this->auth_token;
-
-        return $arr;
-    }
-
-
-    /**
-     * Make sure the CF_Authentication instance has authenticated.
-     *
-     * Ensures that the instance variables necessary to communicate with
-     * Cloud Files have been set from a previous authenticate() call.
-     *
-     * @return boolean <kbd>True</kbd> if successfully authenticated
-     */
-    function authenticated()
-    {
-        if (!($this->storage_url || $this->cdnm_url) || !$this->auth_token) {
-            return False;
-        }
-        return True;
-    }
-
-    /**
-     * Toggle debugging - set cURL verbose flag
-     */
-    function setDebug($bool)
-    {
-        $this->dbug = $bool;
-        $this->cfs_http->setDebug($bool);
-    }
-}
-
-/**
- * Class for establishing connections to the Cloud Files storage system.
- * Connection instances are used to communicate with the storage system at
- * the account level; listing and deleting Containers and returning Container
- * instances.
- *
- * Example:
- * <code>
- * # Create the authentication instance
- * #
- * $auth = new CF_Authentication("username", "api_key");
- *
- * # Perform authentication request
- * #
- * $auth->authenticate();
- *
- * # Create a connection to the storage/cdn system(s) and pass in the
- * # validated CF_Authentication instance.
- * #
- * $conn = new CF_Connection($auth);
- *
- * # NOTE: Some versions of cURL include an outdated certificate authority (CA)
- * #       file.  This API ships with a newer version obtained directly from
- * #       cURL's web site (http://curl.haxx.se).  To use the newer CA bundle,
- * #       call the CF_Authentication instance's 'ssl_use_cabundle()' method.
- * #
- * # $conn->ssl_use_cabundle(); # bypass cURL's old CA bundle
- * </code>
- *
- * @package php-cloudfiles
- */
-class CF_Connection
-{
-    public $dbug;
-    public $cfs_http;
-    public $cfs_auth;
-
-    /**
-     * Pass in a previously authenticated CF_Authentication instance.
-     *
-     * Example:
-     * <code>
-     * # Create the authentication instance
-     * #
-     * $auth = new CF_Authentication("username", "api_key");
-     *
-     * # Perform authentication request
-     * #
-     * $auth->authenticate();
-     *
-     * # Create a connection to the storage/cdn system(s) and pass in the
-     * # validated CF_Authentication instance.
-     * #
-     * $conn = new CF_Connection($auth);
-     *
-     * # If you are connecting via Rackspace servers and have access
-     * # to the servicenet network you can set the $servicenet to True
-     * # like this.
-     *
-     * $conn = new CF_Connection($auth, $servicenet=True);
-     *
-     * </code>
-     *
-     * If the environement variable RACKSPACE_SERVICENET is defined it will
-     * force to connect via the servicenet.
-     *
-     * @param obj $cfs_auth previously authenticated CF_Authentication instance
-     * @param boolean $servicenet enable/disable access via Rackspace servicenet.
-     * @throws AuthenticationException not authenticated
-     */
-    function __construct($cfs_auth, $servicenet=False)
-    {
-        if (isset($_ENV['RACKSPACE_SERVICENET']))
-            $servicenet=True;
-        $this->cfs_http = new CF_Http(DEFAULT_CF_API_VERSION);
-        $this->cfs_auth = $cfs_auth;
-        if (!$this->cfs_auth->authenticated()) {
-            $e = "Need to pass in a previously authenticated ";
-            $e .= "CF_Authentication instance.";
-            throw new AuthenticationException($e);
-        }
-        $this->cfs_http->setCFAuth($this->cfs_auth, $servicenet=$servicenet);
-        $this->dbug = False;
-    }
-
-    /**
-     * Toggle debugging of instance and back-end HTTP module
-     *
-     * @param boolean $bool enable/disable cURL debugging
-     */
-    function setDebug($bool)
-    {
-        $this->dbug = (boolean) $bool;
-        $this->cfs_http->setDebug($this->dbug);
-    }
-
-    /**
-     * Close a connection
-     *
-     * Example:
-     * <code>
-     *  
-     * $conn->close();
-     * 
-     * </code>
-     *
-     * Will close all current cUrl active connections.
-     * 
-     */
-    public function close()
-    {
-        $this->cfs_http->close();
-    }
-    
-    /**
-     * Cloud Files account information
-     *
-     * Return an array of two floats (since PHP only supports 32-bit integers);
-     * number of containers on the account and total bytes used for the account.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * list($quantity, $bytes) = $conn->get_info();
-     * print "Number of containers: " . $quantity . "\n";
-     * print "Bytes stored in container: " . $bytes . "\n";
-     * </code>
-     *
-     * @return array (number of containers, total bytes stored)
-     * @throws InvalidResponseException unexpected response
-     */
-    function get_info()
-    {
-        list($status, $reason, $container_count, $total_bytes) =
-                $this->cfs_http->head_account();
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->get_info();
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return array($container_count, $total_bytes);
-    }
-
-    /**
-     * Create a Container
-     *
-     * Given a Container name, return a Container instance, creating a new
-     * remote Container if it does not exit.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $images = $conn->create_container("my photos");
-     * </code>
-     *
-     * @param string $container_name container name
-     * @return CF_Container
-     * @throws SyntaxException invalid name
-     * @throws InvalidResponseException unexpected response
-     */
-    function create_container($container_name=NULL)
-    {
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-        
-        if (!isset($container_name) or $container_name == "") 
-            throw new SyntaxException("Container name not set.");
-
-        if (strpos($container_name, "/") !== False) {
-            $r = "Container name '".$container_name;
-            $r .= "' cannot contain a '/' character.";
-            throw new SyntaxException($r);
-        }
-        if (strlen($container_name) > MAX_CONTAINER_NAME_LEN) {
-            throw new SyntaxException(sprintf(
-                "Container name exeeds %d bytes.",
-                MAX_CONTAINER_NAME_LEN));
-        }
-
-        $return_code = $this->cfs_http->create_container($container_name);
-        if (!$return_code) {
-            throw new InvalidResponseException("Invalid response ("
-                . $return_code. "): " . $this->cfs_http->get_error());
-        }
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->create_container($container_name);
-        #}
-        if ($return_code != 201 && $return_code != 202) {
-            throw new InvalidResponseException(
-                "Invalid response (".$return_code."): "
-                    . $this->cfs_http->get_error());
-        }
-        return new CF_Container($this->cfs_auth, $this->cfs_http, $container_name);
-    }
-
-    /**
-     * Delete a Container
-     *
-     * Given either a Container instance or name, remove the remote Container.
-     * The Container must be empty prior to removing it.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $conn->delete_container("my photos");
-     * </code>
-     *
-     * @param string|obj $container container name or instance
-     * @return boolean <kbd>True</kbd> if successfully deleted
-     * @throws SyntaxException missing proper argument
-     * @throws InvalidResponseException invalid response
-     * @throws NonEmptyContainerException container not empty
-     * @throws NoSuchContainerException remote container does not exist
-     */
-    function delete_container($container=NULL)
-    {
-        $container_name = NULL;
-        
-        if (is_object($container)) {
-            if (get_class($container) == "CF_Container") {
-                $container_name = $container->name;
-            }
-        }
-        if (is_string($container)) {
-            $container_name = $container;
-        }
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Must specify container object or name.");
-
-        $return_code = $this->cfs_http->delete_container($container_name);
-
-        if (!$return_code) {
-            throw new InvalidResponseException("Failed to obtain http response");
-        }
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->delete_container($container);
-        #}
-        if ($return_code == 409) {
-            throw new NonEmptyContainerException(
-                "Container must be empty prior to removing it.");
-        }
-        if ($return_code == 404) {
-            throw new NoSuchContainerException(
-                "Specified container did not exist to delete.");
-        }
-        if ($return_code != 204) {
-            throw new InvalidResponseException(
-                "Invalid response (".$return_code."): "
-                . $this->cfs_http->get_error());
-        }
-        return True;
-    }
-
-    /**
-     * Return a Container instance
-     *
-     * For the given name, return a Container instance if the remote Container
-     * exists, otherwise throw a Not Found exception.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $images = $conn->get_container("my photos");
-     * print "Number of Objects: " . $images->count . "\n";
-     * print "Bytes stored in container: " . $images->bytes . "\n";
-     * </code>
-     *
-     * @param string $container_name name of the remote Container
-     * @return container CF_Container instance
-     * @throws NoSuchContainerException thrown if no remote Container
-     * @throws InvalidResponseException unexpected response
-     */
-    function get_container($container_name=NULL)
-    {
-        list($status, $reason, $count, $bytes) =
-                $this->cfs_http->head_container($container_name);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->get_container($container_name);
-        #}
-        if ($status == 404) {
-            throw new NoSuchContainerException("Container not found.");
-        }
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response: ".$this->cfs_http->get_error());
-        }
-        return new CF_Container($this->cfs_auth, $this->cfs_http,
-            $container_name, $count, $bytes);
-    }
-
-    /**
-     * Return array of Container instances
-     *
-     * Return an array of CF_Container instances on the account.  The instances
-     * will be fully populated with Container attributes (bytes stored and
-     * Object count)
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $clist = $conn->get_containers();
-     * foreach ($clist as $cont) {
-     *     print "Container name: " . $cont->name . "\n";
-     *     print "Number of Objects: " . $cont->count . "\n";
-     *     print "Bytes stored in container: " . $cont->bytes . "\n";
-     * }
-     * </code>
-     *
-     * @return array An array of CF_Container instances
-     * @throws InvalidResponseException unexpected response
-     */
-    function get_containers($limit=0, $marker=NULL)
-    {
-        list($status, $reason, $container_info) =
-                $this->cfs_http->list_containers_info($limit, $marker);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->get_containers();
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response: ".$this->cfs_http->get_error());
-        }
-        $containers = array();
-        foreach ($container_info as $name => $info) {
-            $containers[] = new CF_Container($this->cfs_auth, $this->cfs_http,
-                $info['name'], $info["count"], $info["bytes"], False);
-        }
-        return $containers;
-    }
-
-    /**
-     * Return list of remote Containers
-     *
-     * Return an array of strings containing the names of all remote Containers.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $container_list = $conn->list_containers();
-     * print_r($container_list);
-     * Array
-     * (
-     *     [0] => "my photos",
-     *     [1] => "my docs"
-     * )
-     * </code>
-     *
-     * @param integer $limit restrict results to $limit Containers
-     * @param string $marker return results greater than $marker
-     * @return array list of remote Containers
-     * @throws InvalidResponseException unexpected response
-     */
-    function list_containers($limit=0, $marker=NULL)
-    {
-        list($status, $reason, $containers) =
-            $this->cfs_http->list_containers($limit, $marker);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->list_containers($limit, $marker);
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return $containers;
-    }
-
-    /**
-     * Return array of information about remote Containers
-     *
-     * Return a nested array structure of Container info.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     *
-     * $container_info = $conn->list_containers_info();
-     * print_r($container_info);
-     * Array
-     * (
-     *     ["my photos"] =>
-     *         Array
-     *         (
-     *             ["bytes"] => 78,
-     *             ["count"] => 2
-     *         )
-     *     ["docs"] =>
-     *         Array
-     *         (
-     *             ["bytes"] => 37323,
-     *             ["count"] => 12
-     *         )
-     * )
-     * </code>
-     *
-     * @param integer $limit restrict results to $limit Containers
-     * @param string $marker return results greater than $marker
-     * @return array nested array structure of Container info
-     * @throws InvalidResponseException unexpected response
-     */
-    function list_containers_info($limit=0, $marker=NULL)
-    {
-        list($status, $reason, $container_info) = 
-                $this->cfs_http->list_containers_info($limit, $marker);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->list_containers_info($limit, $marker);
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return $container_info;
-    }
-
-    /**
-     * Return list of Containers that have been published to the CDN.
-     *
-     * Return an array of strings containing the names of published Containers.
-     * Note that this function returns the list of any Container that has
-     * ever been CDN-enabled regardless of it's existence in the storage
-     * system.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_containers = $conn->list_public_containers();
-     * print_r($public_containers);
-     * Array
-     * (
-     *     [0] => "images",
-     *     [1] => "css",
-     *     [2] => "javascript"
-     * )
-     * </code>
-     *
-     * @return array list of published Container names
-     * @throws InvalidResponseException unexpected response
-     */
-    function list_public_containers()
-    {
-        list($status, $reason, $containers) =
-                $this->cfs_http->list_cdn_containers();
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->list_public_containers();
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return $containers;
-    }
-
-    /**
-     * Set a user-supplied callback function to report download progress
-     *
-     * The callback function is used to report incremental progress of a data
-     * download functions (e.g. $container->list_objects(), $obj->read(), etc).
-     * The specified function will be periodically called with the number of
-     * bytes transferred until the entire download is complete.  This callback
-     * function can be useful for implementing "progress bars" for large
-     * downloads.
-     *
-     * The specified callback function should take a single integer parameter.
-     *
-     * <code>
-     * function read_callback($bytes_transferred) {
-     *     print ">> downloaded " . $bytes_transferred . " bytes.\n";
-     *     # ... do other things ...
-     *     return;
-     * }
-     *
-     * $conn = new CF_Connection($auth_obj);
-     * $conn->set_read_progress_function("read_callback");
-     * print_r($conn->list_containers());
-     *
-     * # output would look like this:
-     * #
-     * >> downloaded 10 bytes.
-     * >> downloaded 11 bytes.
-     * Array
-     * (
-     *      [0] => fuzzy.txt
-     *      [1] => space name
-     * )
-     * </code>
-     *
-     * @param string $func_name the name of the user callback function
-     */
-    function set_read_progress_function($func_name)
-    {
-        $this->cfs_http->setReadProgressFunc($func_name);
-    }
-
-    /**
-     * Set a user-supplied callback function to report upload progress
-     *
-     * The callback function is used to report incremental progress of a data
-     * upload functions (e.g. $obj->write() call).  The specified function will
-     * be periodically called with the number of bytes transferred until the
-     * entire upload is complete.  This callback function can be useful
-     * for implementing "progress bars" for large uploads/downloads.
-     *
-     * The specified callback function should take a single integer parameter.
-     *
-     * <code>
-     * function write_callback($bytes_transferred) {
-     *     print ">> uploaded " . $bytes_transferred . " bytes.\n";
-     *     # ... do other things ...
-     *     return;
-     * }
-     *
-     * $conn = new CF_Connection($auth_obj);
-     * $conn->set_write_progress_function("write_callback");
-     * $container = $conn->create_container("stuff");
-     * $obj = $container->create_object("foo");
-     * $obj->write("The callback function will be called during upload.");
-     *
-     * # output would look like this:
-     * # >> uploaded 51 bytes.
-     * #
-     * </code>
-     *
-     * @param string $func_name the name of the user callback function
-     */
-    function set_write_progress_function($func_name)
-    {
-        $this->cfs_http->setWriteProgressFunc($func_name);
-    }
-
-    /**
-     * Use the Certificate Authority bundle included with this API
-     *
-     * Most versions of PHP with cURL support include an outdated Certificate
-     * Authority (CA) bundle (the file that lists all valid certificate
-     * signing authorities).  The SSL certificates used by the Cloud Files
-     * storage system are perfectly valid but have been created/signed by
-     * a CA not listed in these outdated cURL distributions.
-     *
-     * As a work-around, we've included an updated CA bundle obtained
-     * directly from cURL's web site (http://curl.haxx.se).  You can direct
-     * the API to use this CA bundle by calling this method prior to making
-     * any remote calls.  The best place to use this method is right after
-     * the CF_Authentication instance has been instantiated.
-     *
-     * You can specify your own CA bundle by passing in the full pathname
-     * to the bundle.  You can use the included CA bundle by leaving the
-     * argument blank.
-     *
-     * @param string $path Specify path to CA bundle (default to included)
-     */
-    function ssl_use_cabundle($path=NULL)
-    {
-        $this->cfs_http->ssl_use_cabundle($path);
-    }
-
-    #private function _re_auth()
-    #{
-    #    $new_auth = new CF_Authentication(
-    #        $this->cfs_auth->username,
-    #        $this->cfs_auth->api_key,
-    #        $this->cfs_auth->auth_host,
-    #        $this->cfs_auth->account);
-    #    $new_auth->authenticate();
-    #    $this->cfs_auth = $new_auth;
-    #    $this->cfs_http->setCFAuth($this->cfs_auth);
-    #    return True;
-    #}
-}
-
-/**
- * Container operations
- *
- * Containers are storage compartments where you put your data (objects).
- * A container is similar to a directory or folder on a conventional filesystem
- * with the exception that they exist in a flat namespace, you can not create
- * containers inside of containers.
- *
- * You also have the option of marking a Container as "public" so that the
- * Objects stored in the Container are publicly available via the CDN.
- *
- * @package php-cloudfiles
- */
-class CF_Container
-{
-    public $cfs_auth;
-    public $cfs_http;
-    public $name;
-    public $object_count;
-    public $bytes_used;
-
-    public $cdn_enabled;
-    public $cdn_uri;
-    public $cdn_ttl;
-    public $cdn_log_retention;
-    public $cdn_acl_user_agent;
-    public $cdn_acl_referrer;
-
-    /**
-     * Class constructor
-     *
-     * Constructor for Container
-     *
-     * @param obj $cfs_auth CF_Authentication instance
-     * @param obj $cfs_http HTTP connection manager
-     * @param string $name name of Container
-     * @param int $count number of Objects stored in this Container
-     * @param int $bytes number of bytes stored in this Container
-     * @throws SyntaxException invalid Container name
-     */
-    function __construct(&$cfs_auth, &$cfs_http, $name, $count=0,
-        $bytes=0, $docdn=True)
-    {
-        if (strlen($name) > MAX_CONTAINER_NAME_LEN) {
-            throw new SyntaxException("Container name exceeds "
-                . "maximum allowed length.");
-        }
-        if (strpos($name, "/") !== False) {
-            throw new SyntaxException(
-                "Container names cannot contain a '/' character.");
-        }
-        $this->cfs_auth = $cfs_auth;
-        $this->cfs_http = $cfs_http;
-        $this->name = $name;
-        $this->object_count = $count;
-        $this->bytes_used = $bytes;
-        $this->cdn_enabled = NULL;
-        $this->cdn_uri = NULL;
-        $this->cdn_ttl = NULL;
-        $this->cdn_log_retention = NULL;
-        $this->cdn_acl_user_agent = NULL;
-        $this->cdn_acl_referrer = NULL;
-        if ($this->cfs_http->getCDNMUrl() != NULL && $docdn) {
-            $this->_cdn_initialize();
-        }
-    }
-
-    /**
-     * String representation of Container
-     *
-     * Pretty print the Container instance.
-     *
-     * @return string Container details
-     */
-    function __toString()
-    {
-        $me = sprintf("name: %s, count: %.0f, bytes: %.0f",
-            $this->name, $this->object_count, $this->bytes_used);
-        if ($this->cfs_http->getCDNMUrl() != NULL) {
-            $me .= sprintf(", cdn: %s, cdn uri: %s, cdn ttl: %.0f, logs retention: %s",
-                $this->is_public() ? "Yes" : "No",
-                $this->cdn_uri, $this->cdn_ttl,
-                $this->cdn_log_retention ? "Yes" : "No"
-                );
-
-            if ($this->cdn_acl_user_agent != NULL) {
-                $me .= ", cdn acl user agent: " . $this->cdn_acl_user_agent;
-            }
-
-            if ($this->cdn_acl_referrer != NULL) {
-                $me .= ", cdn acl referrer: " . $this->cdn_acl_referrer;
-            }
-            
-            
-        }
-        return $me;
-    }
-
-    /**
-     * Enable Container content to be served via CDN or modify CDN attributes
-     *
-     * Either enable this Container's content to be served via CDN or
-     * adjust its CDN attributes.  This Container will always return the
-     * same CDN-enabled URI each time it is toggled public/private/public.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->create_container("public");
-     *
-     * # CDN-enable the container and set it's TTL for a month
-     * #
-     * $public_container->make_public(86400/2); # 12 hours (86400 seconds/day)
-     * </code>
-     *
-     * @param int $ttl the time in seconds content will be cached in the CDN
-     * @returns string the CDN enabled Container's URI
-     * @throws CDNNotEnabledException CDN functionality not returned during auth
-     * @throws AuthenticationException if auth token is not valid/expired
-     * @throws InvalidResponseException unexpected response
-     */
-    function make_public($ttl=86400)
-    {
-        if ($this->cfs_http->getCDNMUrl() == NULL) {
-            throw new CDNNotEnabledException(
-                "Authentication response did not indicate CDN availability");
-        }
-        if ($this->cdn_uri != NULL) {
-            # previously published, assume we're setting new attributes
-            list($status, $reason, $cdn_uri) =
-                $this->cfs_http->update_cdn_container($this->name,$ttl,
-                                                      $this->cdn_log_retention,
-                                                      $this->cdn_acl_user_agent,
-                                                      $this->cdn_acl_referrer);
-            #if ($status == 401 && $this->_re_auth()) {
-            #    return $this->make_public($ttl);
-            #}
-            if ($status == 404) {
-                # this instance _thinks_ the container was published, but the
-                # cdn management system thinks otherwise - try again with a PUT
-                list($status, $reason, $cdn_uri) =
-                    $this->cfs_http->add_cdn_container($this->name,$ttl);
-
-            }
-        } else {
-            # publish it for first time
-            list($status, $reason, $cdn_uri) =
-                $this->cfs_http->add_cdn_container($this->name,$ttl);
-        }
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->make_public($ttl);
-        #}
-        if (!in_array($status, array(201,202))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_enabled = True;
-        $this->cdn_ttl = $ttl;
-        $this->cdn_uri = $cdn_uri;
-        $this->cdn_log_retention = False;
-        $this->cdn_acl_user_agent = "";
-        $this->cdn_acl_referrer = "";
-        return $this->cdn_uri;
-    }
-
-    /**
-     * Enable ACL restriction by User Agent for this container.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # Enable ACL by Referrer
-     * $public_container->acl_referrer("Mozilla");
-     * </code>
-     *
-     * @returns boolean True if successful
-     * @throws CDNNotEnabledException CDN functionality not returned during auth
-     * @throws AuthenticationException if auth token is not valid/expired
-     * @throws InvalidResponseException unexpected response
-     */
-    function acl_user_agent($cdn_acl_user_agent="") {
-        if ($this->cfs_http->getCDNMUrl() == NULL) {
-            throw new CDNNotEnabledException(
-                "Authentication response did not indicate CDN availability");
-        }
-        list($status,$reason) =
-            $this->cfs_http->update_cdn_container($this->name,
-                                                  $this->cdn_ttl,
-                                                  $this->cdn_log_retention,
-                                                  $cdn_acl_user_agent,
-                                                  $this->cdn_acl_referrer
-                );
-        if (!in_array($status, array(202,404))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_acl_user_agent = $cdn_acl_user_agent;
-        return True;
-    }
-
-    /**
-     * Enable ACL restriction by referer for this container.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # Enable Referrer
-     * $public_container->acl_referrer("http://www.example.com/gallery.php");
-     * </code>
-     *
-     * @returns boolean True if successful
-     * @throws CDNNotEnabledException CDN functionality not returned during auth
-     * @throws AuthenticationException if auth token is not valid/expired
-     * @throws InvalidResponseException unexpected response
-     */
-    function acl_referrer($cdn_acl_referrer="") {
-        if ($this->cfs_http->getCDNMUrl() == NULL) {
-            throw new CDNNotEnabledException(
-                "Authentication response did not indicate CDN availability");
-        }
-        list($status,$reason) =
-            $this->cfs_http->update_cdn_container($this->name,
-                                                  $this->cdn_ttl,
-                                                  $this->cdn_log_retention,
-                                                  $this->cdn_acl_user_agent,
-                                                  $cdn_acl_referrer
-                );
-        if (!in_array($status, array(202,404))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_acl_referrer = $cdn_acl_referrer;
-        return True;
-    }
-    
-    /**
-     * Enable log retention for this CDN container.
-     *
-     * Enable CDN log retention on the container. If enabled logs will
-     * be periodically (at unpredictable intervals) compressed and
-     * uploaded to a ".CDN_ACCESS_LOGS" container in the form of
-     * "container_name.YYYYMMDDHH-XXXX.gz". Requires CDN be enabled on
-     * the account.
-     * 
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # Enable logs retention.
-     * $public_container->log_retention(True);
-     * </code>
-     *
-     * @returns boolean True if successful
-     * @throws CDNNotEnabledException CDN functionality not returned during auth
-     * @throws AuthenticationException if auth token is not valid/expired
-     * @throws InvalidResponseException unexpected response
-     */
-    function log_retention($cdn_log_retention=False) {
-        if ($this->cfs_http->getCDNMUrl() == NULL) {
-            throw new CDNNotEnabledException(
-                "Authentication response did not indicate CDN availability");
-        }
-        list($status,$reason) =
-            $this->cfs_http->update_cdn_container($this->name,
-                                                  $this->cdn_ttl,
-                                                  $cdn_log_retention,
-                                                  $this->cdn_acl_user_agent,
-                                                  $this->cdn_acl_referrer
-                );
-        if (!in_array($status, array(202,404))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_log_retention = $cdn_log_retention;
-        return True;
-    }
-    
-    /**
-     * Disable the CDN sharing for this container
-     *
-     * Use this method to disallow distribution into the CDN of this Container's
-     * content.
-     *
-     * NOTE: Any content already cached in the CDN will continue to be served
-     *       from its cache until the TTL expiration transpires.  The default
-     *       TTL is typically one day, so "privatizing" the Container will take
-     *       up to 24 hours before the content is purged from the CDN cache.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # Disable CDN accessability
-     * # ... still cached up to a month based on previous example
-     * #
-     * $public_container->make_private();
-     * </code>
-     *
-     * @returns boolean True if successful
-     * @throws CDNNotEnabledException CDN functionality not returned during auth
-     * @throws AuthenticationException if auth token is not valid/expired
-     * @throws InvalidResponseException unexpected response
-     */
-    function make_private()
-    {
-        if ($this->cfs_http->getCDNMUrl() == NULL) {
-            throw new CDNNotEnabledException(
-                "Authentication response did not indicate CDN availability");
-        }
-        list($status,$reason) = $this->cfs_http->remove_cdn_container($this->name);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->make_private();
-        #}
-        if (!in_array($status, array(202,404))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_enabled = False;
-        $this->cdn_ttl = NULL;
-        $this->cdn_uri = NULL;
-        $this->cdn_log_retention = NULL;
-        $this->cdn_acl_user_agent = NULL;
-        $this->cdn_acl_referrer = NULL;
-        return True;
-    }
-
-    /**
-     * Check if this Container is being publicly served via CDN
-     *
-     * Use this method to determine if the Container's content is currently
-     * available through the CDN.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # Display CDN accessability
-     * #
-     * $public_container->is_public() ? print "Yes" : print "No";
-     * </code>
-     *
-     * @returns boolean True if enabled, False otherwise
-     */
-    function is_public()
-    {
-        return $this->cdn_enabled == True ? True : False;
-    }
-
-    /**
-     * Create a new remote storage Object
-     *
-     * Return a new Object instance.  If the remote storage Object exists,
-     * the instance's attributes are populated.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # This creates a local instance of a storage object but only creates
-     * # it in the storage system when the object's write() method is called.
-     * #
-     * $pic = $public_container->create_object("baby.jpg");
-     * </code>
-     *
-     * @param string $obj_name name of storage Object
-     * @return obj CF_Object instance
-     */
-    function create_object($obj_name=NULL)
-    {
-        return new CF_Object($this, $obj_name);
-    }
-
-    /**
-     * Return an Object instance for the remote storage Object
-     *
-     * Given a name, return a Object instance representing the
-     * remote storage object.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $public_container = $conn->get_container("public");
-     *
-     * # This call only fetches header information and not the content of
-     * # the storage object.  Use the Object's read() or stream() methods
-     * # to obtain the object's data.
-     * #
-     * $pic = $public_container->get_object("baby.jpg");
-     * </code>
-     *
-     * @param string $obj_name name of storage Object
-     * @return obj CF_Object instance
-     */
-    function get_object($obj_name=NULL)
-    {
-        return new CF_Object($this, $obj_name, True);
-    }
-
-    /**
-     * Return a list of Objects
-     *
-     * Return an array of strings listing the Object names in this Container.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $images = $conn->get_container("my photos");
-     *
-     * # Grab the list of all storage objects
-     * #
-     * $all_objects = $images->list_objects();
-     *
-     * # Grab subsets of all storage objects
-     * #
-     * $first_ten = $images->list_objects(10);
-     * 
-     * # Note the use of the previous result's last object name being
-     * # used as the 'marker' parameter to fetch the next 10 objects
-     * #
-     * $next_ten = $images->list_objects(10, $first_ten[count($first_ten)-1]);
-     *
-     * # Grab images starting with "birthday_party" and default limit/marker
-     * # to match all photos with that prefix
-     * #
-     * $prefixed = $images->list_objects(0, NULL, "birthday");
-     *
-     * # Assuming you have created the appropriate directory marker Objects,
-     * # you can traverse your pseudo-hierarchical containers
-     * # with the "path" argument.
-     * #
-     * $animals = $images->list_objects(0,NULL,NULL,"pictures/animals");
-     * $dogs = $images->list_objects(0,NULL,NULL,"pictures/animals/dogs");
-     * </code>
-     *
-     * @param int $limit <i>optional</i> only return $limit names
-     * @param int $marker <i>optional</i> subset of names starting at $marker
-     * @param string $prefix <i>optional</i> Objects whose names begin with $prefix
-     * @param string $path <i>optional</i> only return results under "pathname"
-     * @return array array of strings
-     * @throws InvalidResponseException unexpected response
-     */
-    function list_objects($limit=0, $marker=NULL, $prefix=NULL, $path=NULL)
-    {
-        list($status, $reason, $obj_list) =
-            $this->cfs_http->list_objects($this->name, $limit,
-                $marker, $prefix, $path);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->list_objects($limit, $marker, $prefix, $path);
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return $obj_list;
-    }
-
-    /**
-     * Return an array of Objects
-     *
-     * Return an array of Object instances in this Container.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $images = $conn->get_container("my photos");
-     *
-     * # Grab the list of all storage objects
-     * #
-     * $all_objects = $images->get_objects();
-     *
-     * # Grab subsets of all storage objects
-     * #
-     * $first_ten = $images->get_objects(10);
-     *
-     * # Note the use of the previous result's last object name being
-     * # used as the 'marker' parameter to fetch the next 10 objects
-     * #
-     * $next_ten = $images->list_objects(10, $first_ten[count($first_ten)-1]);
-     *
-     * # Grab images starting with "birthday_party" and default limit/marker
-     * # to match all photos with that prefix
-     * #
-     * $prefixed = $images->get_objects(0, NULL, "birthday");
-     *
-     * # Assuming you have created the appropriate directory marker Objects,
-     * # you can traverse your pseudo-hierarchical containers
-     * # with the "path" argument.
-     * #
-     * $animals = $images->get_objects(0,NULL,NULL,"pictures/animals");
-     * $dogs = $images->get_objects(0,NULL,NULL,"pictures/animals/dogs");
-     * </code>
-     *
-     * @param int $limit <i>optional</i> only return $limit names
-     * @param int $marker <i>optional</i> subset of names starting at $marker
-     * @param string $prefix <i>optional</i> Objects whose names begin with $prefix
-     * @param string $path <i>optional</i> only return results under "pathname"
-     * @return array array of strings
-     * @throws InvalidResponseException unexpected response
-     */
-    function get_objects($limit=0, $marker=NULL, $prefix=NULL, $path=NULL)
-    {
-        list($status, $reason, $obj_array) =
-            $this->cfs_http->get_objects($this->name, $limit,
-                $marker, $prefix, $path);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->get_objects($limit, $marker, $prefix, $path);
-        #}
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $objects = array();
-        foreach ($obj_array as $obj) {
-            $tmp = new CF_Object($this, $obj["name"], False, False);
-            $tmp->content_type = $obj["content_type"];
-            $tmp->content_length = (float) $obj["bytes"];
-            $tmp->set_etag($obj["hash"]);
-            $tmp->last_modified = $obj["last_modified"];
-            $objects[] = $tmp;
-        }
-        return $objects;
-    }
-
-    /**
-     * Delete a remote storage Object
-     *
-     * Given an Object instance or name, permanently remove the remote Object
-     * and all associated metadata.
-     *
-     * Example:
-     * <code>
-     * # ... authentication code excluded (see previous examples) ...
-     * #
-     * $conn = new CF_Authentication($auth);
-     *
-     * $images = $conn->get_container("my photos");
-     *
-     * # Delete specific object
-     * #
-     * $images->delete_object("disco_dancing.jpg");
-     * </code>
-     *
-     * @param obj $obj name or instance of Object to delete
-     * @return boolean <kbd>True</kbd> if successfully removed
-     * @throws SyntaxException invalid Object name
-     * @throws NoSuchObjectException remote Object does not exist
-     * @throws InvalidResponseException unexpected response
-     */
-    function delete_object($obj)
-    {
-        $obj_name = NULL;
-        if (is_object($obj)) {
-            if (get_class($obj) == "CF_Object") {
-                $obj_name = $obj->name;
-            }
-        }
-        if (is_string($obj)) {
-            $obj_name = $obj;
-        }
-        if (!$obj_name) {
-            throw new SyntaxException("Object name not set.");
-        }
-        $status = $this->cfs_http->delete_object($this->name, $obj_name);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->delete_object($obj);
-        #}
-        if ($status == 404) {
-            $m = "Specified object '".$this->name."/".$obj_name;
-            $m.= "' did not exist to delete.";
-            throw new NoSuchObjectException($m);
-        }
-        if ($status != 204) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        return True;
-    }
-
-    /**
-     * Helper function to create "path" elements for a given Object name
-     *
-     * Given an Object whos name contains '/' path separators, this function
-     * will create the "directory marker" Objects of one byte with the
-     * Content-Type of "application/folder".
-     *
-     * It assumes the last element of the full path is the "real" Object
-     * and does NOT create a remote storage Object for that last element.
-     */
-    function create_paths($path_name)
-    {
-        if ($path_name[0] == '/') {
-            $path_name = mb_substr($path_name, 0, 1);
-        }
-        $elements = explode('/', $path_name, -1);
-        $build_path = "";
-        foreach ($elements as $idx => $val) {
-            if (!$build_path) {
-                $build_path = $val;
-            } else {
-                $build_path .= "/" . $val;
-            }
-            $obj = new CF_Object($this, $build_path);
-            $obj->content_type = "application/directory";
-            $obj->write(".", 1);
-        }
-    }
-
-    /**
-     * Internal method to grab CDN/Container info if appropriate to do so
-     *
-     * @throws InvalidResponseException unexpected response
-     */
-    private function _cdn_initialize()
-    {
-        list($status, $reason, $cdn_enabled, $cdn_uri, $cdn_ttl,
-             $cdn_log_retention, $cdn_acl_user_agent, $cdn_acl_referrer) =
-            $this->cfs_http->head_cdn_container($this->name);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->_cdn_initialize();
-        #}
-        if (!in_array($status, array(204,404))) {
-            throw new InvalidResponseException(
-                "Invalid response (".$status."): ".$this->cfs_http->get_error());
-        }
-        $this->cdn_enabled = $cdn_enabled;
-        $this->cdn_uri = $cdn_uri;
-        $this->cdn_ttl = $cdn_ttl;
-        $this->cdn_log_retention = $cdn_log_retention;
-        $this->cdn_acl_user_agent = $cdn_acl_user_agent;
-        $this->cdn_acl_referrer = $cdn_acl_referrer;
-    }
-
-    #private function _re_auth()
-    #{
-    #    $new_auth = new CF_Authentication(
-    #        $this->cfs_auth->username,
-    #        $this->cfs_auth->api_key,
-    #        $this->cfs_auth->auth_host,
-    #        $this->cfs_auth->account);
-    #    $new_auth->authenticate();
-    #    $this->cfs_auth = $new_auth;
-    #    $this->cfs_http->setCFAuth($this->cfs_auth);
-    #    return True;
-    #}
-}
-
-
-/**
- * Object operations
- *
- * An Object is analogous to a file on a conventional filesystem. You can
- * read data from, or write data to your Objects. You can also associate 
- * arbitrary metadata with them.
- *
- * @package php-cloudfiles
- */
-class CF_Object
-{
-    public $container;
-    public $name;
-    public $last_modified;
-    public $content_type;
-    public $content_length;
-    public $metadata;
-    private $etag;
-
-    /**
-     * Class constructor
-     *
-     * @param obj $container CF_Container instance
-     * @param string $name name of Object
-     * @param boolean $force_exists if set, throw an error if Object doesn't exist
-     */
-    function __construct(&$container, $name, $force_exists=False, $dohead=True)
-    {
-        if ($name[0] == "/") {
-            $r = "Object name '".$name;
-            $r .= "' cannot contain begin with a '/' character.";
-            throw new SyntaxException($r);
-        }
-        if (strlen($name) > MAX_OBJECT_NAME_LEN) {
-            throw new SyntaxException("Object name exceeds "
-                . "maximum allowed length.");
-        }
-        $this->container = $container;
-        $this->name = $name;
-        $this->etag = NULL;
-        $this->_etag_override = False;
-        $this->last_modified = NULL;
-        $this->content_type = NULL;
-        $this->content_length = 0;
-        $this->metadata = array();
-        if ($dohead) {
-            if (!$this->_initialize() && $force_exists) {
-                throw new NoSuchObjectException("No such object '".$name."'");
-            }
-        }
-    }
-
-    /**
-     * String representation of Object
-     *
-     * Pretty print the Object's location and name
-     *
-     * @return string Object information
-     */
-    function __toString()
-    {
-        return $this->container->name . "/" . $this->name;
-    }
-
-    /**
-     * Internal check to get the proper mimetype.
-     *
-     * This function would go over the available PHP methods to get
-     * the MIME type.
-     *
-     * By default it will try to use the PHP fileinfo library which is
-     * available from PHP 5.3 or as an PECL extension
-     * (http://pecl.php.net/package/Fileinfo).
-     *
-     * It will get the magic file by default from the system wide file
-     * which is usually available in /usr/share/magic on Unix or try
-     * to use the file specified in the source directory of the API
-     * (share directory).
-     *
-     * if fileinfo is not available it will try to use the internal
-     * mime_content_type function.
-     * 
-     * @param string $handle name of file or buffer to guess the type from
-     * @return boolean <kbd>True</kbd> if successful
-     * @throws BadContentTypeException
-     */
-    function _guess_content_type($handle) {
-        if ($this->content_type)
-            return;
-            
-        if (function_exists("finfo_open")) {
-            $local_magic = dirname(__FILE__) . "/share/magic";
-            $finfo = @finfo_open(FILEINFO_MIME, $local_magic);
-
-            if (!$finfo) 
-                $finfo = @finfo_open(FILEINFO_MIME);
-                
-            if ($finfo) {
-
-                if (is_file((string)$handle))
-                    $ct = @finfo_file($finfo, $handle);
-                else 
-                    $ct = @finfo_buffer($finfo, $handle);
-
-                /* PHP 5.3 fileinfo display extra information like
-                   charset so we remove everything after the ; since
-                   we are not into that stuff */
-                if ($ct) {
-                    $extra_content_type_info = strpos($ct, "; ");
-                    if ($extra_content_type_info)
-                        $ct = substr($ct, 0, $extra_content_type_info);
-                }
-
-                if ($ct && $ct != 'application/octet-stream')
-                    $this->content_type = $ct;
-
-                @finfo_close($finfo);
-            }
-        }
-
-        if (!$this->content_type && (string)is_file($handle) && function_exists("mime_content_type")) {
-            $this->content_type = @mime_content_type($handle);
-        }
-
-        if (!$this->content_type) {
-            throw new BadContentTypeException("Required Content-Type not set");
-        }
-        return True;
-    }
-    
-    /**
-     * String representation of the Object's public URI
-     *
-     * A string representing the Object's public URI assuming that it's
-     * parent Container is CDN-enabled.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * # Print out the Object's CDN URI (if it has one) in an HTML img-tag
-     * #
-     * print "<img src='$pic->public_uri()' />\n";
-     * </code>
-     *
-     * @return string Object's public URI or NULL
-     */
-    function public_uri()
-    {
-        if ($this->container->cdn_enabled) {
-            return $this->container->cdn_uri . "/" . $this->name;
-        }
-        return NULL;
-    }
-
-    /**
-     * Read the remote Object's data
-     *
-     * Returns the Object's data.  This is useful for smaller Objects such
-     * as images or office documents.  Object's with larger content should use
-     * the stream() method below.
-     *
-     * Pass in $hdrs array to set specific custom HTTP headers such as
-     * If-Match, If-None-Match, If-Modified-Since, Range, etc.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     * $data = $doc->read(); # read image content into a string variable
-     * print $data;
-     *
-     * # Or see stream() below for a different example.
-     * #
-     * </code>
-     *
-     * @param array $hdrs user-defined headers (Range, If-Match, etc.)
-     * @return string Object's data
-     * @throws InvalidResponseException unexpected response
-     */
-    function read($hdrs=array())
-    {
-        list($status, $reason, $data) =
-            $this->container->cfs_http->get_object_to_string($this, $hdrs);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->read($hdrs);
-        #}
-        if (($status < 200) || ($status > 299
-                && $status != 412 && $status != 304)) {
-            throw new InvalidResponseException("Invalid response (".$status."): "
-                . $this->container->cfs_http->get_error());
-        }
-        return $data;
-    }
-
-    /**
-     * Streaming read of Object's data
-     *
-     * Given an open PHP resource (see PHP's fopen() method), fetch the Object's
-     * data and write it to the open resource handle.  This is useful for
-     * streaming an Object's content to the browser (videos, images) or for
-     * fetching content to a local file.
-     *
-     * Pass in $hdrs array to set specific custom HTTP headers such as
-     * If-Match, If-None-Match, If-Modified-Since, Range, etc.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * # Assuming this is a web script to display the README to the
-     * # user's browser:
-     * #
-     * <?php
-     * // grab README from storage system
-     * //
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     *
-     * // Hand it back to user's browser with appropriate content-type
-     * //
-     * header("Content-Type: " . $doc->content_type);
-     * $output = fopen("php://output", "w");
-     * $doc->stream($output); # stream object content to PHP's output buffer
-     * fclose($output);
-     * ?>
-     *
-     * # See read() above for a more simple example.
-     * #
-     * </code>
-     *
-     * @param resource $fp open resource for writing data to
-     * @param array $hdrs user-defined headers (Range, If-Match, etc.)
-     * @return string Object's data
-     * @throws InvalidResponseException unexpected response
-     */
-    function stream(&$fp, $hdrs=array())
-    {
-        list($status, $reason) = 
-                $this->container->cfs_http->get_object_to_stream($this,$fp,$hdrs);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->stream($fp, $hdrs);
-        #}
-        if (($status < 200) || ($status > 299
-                && $status != 412 && $status != 304)) {
-            throw new InvalidResponseException("Invalid response (".$status."): "
-                .$reason);
-        }
-        return True;
-    }
-
-    /**
-     * Store new Object metadata
-     *
-     * Write's an Object's metadata to the remote Object.  This will overwrite
-     * an prior Object metadata.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     *
-     * # Define new metadata for the object
-     * #
-     * $doc->metadata = array(
-     *     "Author" => "EJ",
-     *     "Subject" => "How to use the PHP tests",
-     *     "Version" => "1.2.2"
-     * );
-     *
-     * # Push the new metadata up to the storage system
-     * #
-     * $doc->sync_metadata();
-     * </code>
-     *
-     * @return boolean <kbd>True</kbd> if successful, <kbd>False</kbd> otherwise
-     * @throws InvalidResponseException unexpected response
-     */
-    function sync_metadata()
-    {
-        if (!empty($this->metadata)) {
-            $status = $this->container->cfs_http->update_object($this);
-            #if ($status == 401 && $this->_re_auth()) {
-            #    return $this->sync_metadata();
-            #}
-            if ($status != 202) {
-                throw new InvalidResponseException("Invalid response ("
-                    .$status."): ".$this->container->cfs_http->get_error());
-            }
-            return True;
-        }
-        return False;
-    }
-
-    /**
-     * Upload Object's data to Cloud Files
-     *
-     * Write data to the remote Object.  The $data argument can either be a
-     * PHP resource open for reading (see PHP's fopen() method) or an in-memory
-     * variable.  If passing in a PHP resource, you must also include the $bytes
-     * parameter.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     *
-     * # Upload placeholder text in my README
-     * #
-     * $doc->write("This is just placeholder text for now...");
-     * </code>
-     *
-     * @param string|resource $data string or open resource
-     * @param float $bytes amount of data to upload (required for resources)
-     * @param boolean $verify generate, send, and compare MD5 checksums
-     * @return boolean <kbd>True</kbd> when data uploaded successfully
-     * @throws SyntaxException missing required parameters
-     * @throws BadContentTypeException if no Content-Type was/could be set
-     * @throws MisMatchedChecksumException $verify is set and checksums unequal
-     * @throws InvalidResponseException unexpected response
-     */
-    function write($data=NULL, $bytes=0, $verify=True)
-    {
-        if (!$data) {
-            throw new SyntaxException("Missing data source.");
-        }
-        if ($bytes > MAX_OBJECT_SIZE) {
-            throw new SyntaxException("Bytes exceeds maximum object size.");
-        }
-        if ($verify) {
-            if (!$this->_etag_override) {
-                $this->etag = $this->compute_md5sum($data);
-            }
-        } else {
-            $this->etag = NULL;
-        }
-
-        $close_fh = False;
-        if (!is_resource($data)) {
-            # A hack to treat string data as a file handle.  php://memory feels
-            # like a better option, but it seems to break on Windows so use
-            # a temporary file instead.
-            #
-            $fp = fopen("php://temp", "wb+");
-            #$fp = fopen("php://memory", "wb+");
-            fwrite($fp, $data, strlen($data));
-            rewind($fp);
-            $close_fh = True;
-            $this->content_length = (float) strlen($data);
-            if ($this->content_length > MAX_OBJECT_SIZE) {
-                throw new SyntaxException("Data exceeds maximum object size");
-            }
-            $ct_data = substr($data, 0, 64);
-        } else {
-            $this->content_length = $bytes;
-            $fp = $data;
-            $ct_data = fread($data, 64);
-            rewind($data);
-        }
-
-        $this->_guess_content_type($ct_data);
-
-        list($status, $reason, $etag) =
-                $this->container->cfs_http->put_object($this, $fp);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->write($data, $bytes, $verify);
-        #}
-        if ($status == 412) {
-            if ($close_fh) { fclose($fp); }
-            throw new SyntaxException("Missing Content-Type header");
-        }
-        if ($status == 422) {
-            if ($close_fh) { fclose($fp); }
-            throw new MisMatchedChecksumException(
-                "Supplied and computed checksums do not match.");
-        }
-        if ($status != 201) {
-            if ($close_fh) { fclose($fp); }
-            throw new InvalidResponseException("Invalid response (".$status."): "
-                . $this->container->cfs_http->get_error());
-        }
-        if (!$verify) {
-            $this->etag = $etag;
-        }
-        if ($close_fh) { fclose($fp); }
-        return True;
-    }
-
-    /**
-     * Upload Object data from local filename
-     *
-     * This is a convenience function to upload the data from a local file.  A
-     * True value for $verify will cause the method to compute the Object's MD5
-     * checksum prior to uploading.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     *
-     * # Upload my local README's content
-     * #
-     * $doc->load_from_filename("/home/ej/cloudfiles/readme");
-     * </code>
-     *
-     * @param string $filename full path to local file
-     * @param boolean $verify enable local/remote MD5 checksum validation
-     * @return boolean <kbd>True</kbd> if data uploaded successfully
-     * @throws SyntaxException missing required parameters
-     * @throws BadContentTypeException if no Content-Type was/could be set
-     * @throws MisMatchedChecksumException $verify is set and checksums unequal
-     * @throws InvalidResponseException unexpected response
-     * @throws IOException error opening file
-     */
-    function load_from_filename($filename, $verify=True)
-    {
-        $fp = @fopen($filename, "r");
-        if (!$fp) {
-            throw new IOException("Could not open file for reading: ".$filename);
-        }
-
-        clearstatcache();
-        
-        $size = (float) sprintf("%u", filesize($filename));
-        if ($size > MAX_OBJECT_SIZE) {
-            throw new SyntaxException("File size exceeds maximum object size.");
-        }
-
-        $this->_guess_content_type($filename);
-        
-        $this->write($fp, $size, $verify);
-        fclose($fp);
-        return True;
-    }
-
-    /**
-     * Save Object's data to local filename
-     *
-     * Given a local filename, the Object's data will be written to the newly
-     * created file.
-     *
-     * Example:
-     * <code>
-     * # ... authentication/connection/container code excluded
-     * # ... see previous examples
-     *
-     * # Whoops!  I deleted my local README, let me download/save it
-     * #
-     * $my_docs = $conn->get_container("documents");
-     * $doc = $my_docs->get_object("README");
-     *
-     * $doc->save_to_filename("/home/ej/cloudfiles/readme.restored");
-     * </code>
-     *
-     * @param string $filename name of local file to write data to
-     * @return boolean <kbd>True</kbd> if successful
-     * @throws IOException error opening file
-     * @throws InvalidResponseException unexpected response
-     */
-    function save_to_filename($filename)
-    {
-        $fp = @fopen($filename, "wb");
-        if (!$fp) {
-            throw new IOException("Could not open file for writing: ".$filename);
-        }
-        $result = $this->stream($fp);
-        fclose($fp);
-        return $result;
-    }
-
-    /**
-     * Set Object's MD5 checksum
-     *
-     * Manually set the Object's ETag.  Including the ETag is mandatory for
-     * Cloud Files to perform end-to-end verification.  Omitting the ETag forces
-     * the user to handle any data integrity checks.
-     *
-     * @param string $etag MD5 checksum hexidecimal string
-     */
-    function set_etag($etag)
-    {
-        $this->etag = $etag;
-        $this->_etag_override = True;
-    }
-
-    /**
-     * Object's MD5 checksum
-     *
-     * Accessor method for reading Object's private ETag attribute.
-     *
-     * @return string MD5 checksum hexidecimal string
-     */
-    function getETag()
-    {
-        return $this->etag;
-    }
-
-    /**
-     * Compute the MD5 checksum
-     *
-     * Calculate the MD5 checksum on either a PHP resource or data.  The argument
-     * may either be a local filename, open resource for reading, or a string.
-     *
-     * <b>WARNING:</b> if you are uploading a big file over a stream
-     * it could get very slow to compute the md5 you probably want to
-     * set the $verify parameter to False in the write() method and
-     * compute yourself the md5 before if you have it.
-     *
-     * @param filename|obj|string $data filename, open resource, or string
-     * @return string MD5 checksum hexidecimal string
-     */
-    function compute_md5sum(&$data)
-    {
-
-        if (function_exists("hash_init") && is_resource($data)) {
-            $ctx = hash_init('md5');
-            while (!feof($data)) {
-                $buffer = fgets($data, 65536);
-                hash_update($ctx, $buffer);
-            }
-            $md5 = hash_final($ctx, false);
-            rewind($data);
-        } elseif ((string)is_file($data)) {
-            $md5 = md5_file($data);
-        } else {
-            $md5 = md5($data);
-        }
-        return $md5;
-    }
-
-    /**
-     * PRIVATE: fetch information about the remote Object if it exists
-     */
-    private function _initialize()
-    {
-        list($status, $reason, $etag, $last_modified, $content_type,
-            $content_length, $metadata) =
-                $this->container->cfs_http->head_object($this);
-        #if ($status == 401 && $this->_re_auth()) {
-        #    return $this->_initialize();
-        #}
-        if ($status == 404) {
-            return False;
-        }
-        if ($status < 200 || $status > 299) {
-            throw new InvalidResponseException("Invalid response (".$status."): "
-                . $this->container->cfs_http->get_error());
-        }
-        $this->etag = $etag;
-        $this->last_modified = $last_modified;
-        $this->content_type = $content_type;
-        $this->content_length = $content_length;
-        $this->metadata = $metadata;
-        return True;
-    }
-
-    #private function _re_auth()
-    #{
-    #    $new_auth = new CF_Authentication(
-    #        $this->cfs_auth->username,
-    #        $this->cfs_auth->api_key,
-    #        $this->cfs_auth->auth_host,
-    #        $this->cfs_auth->account);
-    #    $new_auth->authenticate();
-    #    $this->container->cfs_auth = $new_auth;
-    #    $this->container->cfs_http->setCFAuth($this->cfs_auth);
-    #    return True;
-    #}
-}
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * c-hanging-comment-ender-p: nil
- * End:
- */
-?>
diff --git a/cloudfiles/cloudfiles_exceptions.php b/cloudfiles/cloudfiles_exceptions.php
deleted file mode 100644
index 5624d6b86342a5b2e8f5292596c87d0ff40624a1..0000000000000000000000000000000000000000
--- a/cloudfiles/cloudfiles_exceptions.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/**
- * Custom Exceptions for the CloudFiles API
- *
- * Requres PHP 5.x (for Exceptions and OO syntax)
- *
- * See COPYING for license information.
- *
- * @author Eric "EJ" Johnson <ej@racklabs.com>
- * @copyright Copyright (c) 2008, Rackspace US, Inc.
- * @package php-cloudfiles-exceptions
- */
-
-/**
- * Custom Exceptions for the CloudFiles API
- * @package php-cloudfiles-exceptions
- */
-class SyntaxException extends Exception { }
-class AuthenticationException extends Exception { }
-class InvalidResponseException extends Exception { }
-class NonEmptyContainerException extends Exception { }
-class NoSuchObjectException extends Exception { }
-class NoSuchContainerException extends Exception { }
-class NoSuchAccountException extends Exception { }
-class MisMatchedChecksumException extends Exception { }
-class IOException extends Exception { }
-class CDNNotEnabledException extends Exception { }
-class BadContentTypeException extends Exception { }
-class InvalidUTF8Exception extends Exception { }
-class ConnectionNotOpenException extends Exception { }
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * c-hanging-comment-ender-p: nil
- * End:
- */
-?>
diff --git a/cloudfiles/cloudfiles_http.php b/cloudfiles/cloudfiles_http.php
deleted file mode 100644
index 5409293b0273b10a8cff74dc0907d3bb0c730cd7..0000000000000000000000000000000000000000
--- a/cloudfiles/cloudfiles_http.php
+++ /dev/null
@@ -1,1338 +0,0 @@
-<?php
-/**
- * This is an HTTP client class for Cloud Files.  It uses PHP's cURL module
- * to handle the actual HTTP request/response.  This is NOT a generic HTTP
- * client class and is only used to abstract out the HTTP communication for
- * the PHP Cloud Files API.
- *
- * This module was designed to re-use existing HTTP(S) connections between
- * subsequent operations.  For example, performing multiple PUT operations
- * will re-use the same connection.
- *
- * This modules also provides support for streaming content into and out
- * of Cloud Files.  The majority (all?) of the PHP HTTP client modules expect
- * to read the server's response into a string variable.  This will not work
- * with large files without killing your server.  Methods like,
- * get_object_to_stream() and put_object() take an open filehandle
- * argument for streaming data out of or into Cloud Files.
- *
- * Requres PHP 5.x (for Exceptions and OO syntax)
- *
- * See COPYING for license information.
- *
- * @author Eric "EJ" Johnson <ej@racklabs.com>
- * @copyright Copyright (c) 2008, Rackspace US, Inc.
- * @package php-cloudfiles-http
- */
-
-/**
- */
-require_once("cloudfiles_exceptions.php");
-
-define("PHP_CF_VERSION", "1.7.4");
-define("USER_AGENT", sprintf("PHP-CloudFiles/%s", PHP_CF_VERSION));
-define("ACCOUNT_CONTAINER_COUNT", "X-Account-Container-Count");
-define("ACCOUNT_BYTES_USED", "X-Account-Bytes-Used");
-define("CONTAINER_OBJ_COUNT", "X-Container-Object-Count");
-define("CONTAINER_BYTES_USED", "X-Container-Bytes-Used");
-define("METADATA_HEADER", "X-Object-Meta-");
-define("CDN_URI", "X-CDN-URI");
-define("CDN_ENABLED", "X-CDN-Enabled");
-define("CDN_LOG_RETENTION", "X-Log-Retention");
-define("CDN_ACL_USER_AGENT", "X-User-Agent-ACL");
-define("CDN_ACL_REFERRER", "X-Referrer-ACL");
-define("CDN_TTL", "X-TTL");
-define("CDNM_URL", "X-CDN-Management-Url");
-define("STORAGE_URL", "X-Storage-Url");
-define("AUTH_TOKEN", "X-Auth-Token");
-define("AUTH_USER_HEADER", "X-Auth-User");
-define("AUTH_KEY_HEADER", "X-Auth-Key");
-define("AUTH_USER_HEADER_LEGACY", "X-Storage-User");
-define("AUTH_KEY_HEADER_LEGACY", "X-Storage-Pass");
-define("AUTH_TOKEN_LEGACY", "X-Storage-Token");
-
-/**
- * HTTP/cURL wrapper for Cloud Files
- *
- * This class should not be used directly.  It's only purpose is to abstract
- * out the HTTP communication from the main API.
- *
- * @package php-cloudfiles-http
- */
-class CF_Http
-{
-    private $error_str;
-    private $dbug;
-    private $cabundle_path;
-    private $api_version;
-
-    # Authentication instance variables
-    #
-    private $storage_url;
-    private $cdnm_url;
-    private $auth_token;
-
-    # Request/response variables
-    #
-    private $response_status;
-    private $response_reason;
-    private $connections;
-
-    # Variables used for content/header callbacks
-    #
-    private $_user_read_progress_callback_func;
-    private $_user_write_progress_callback_func;
-    private $_write_callback_type;
-    private $_text_list;
-    private $_account_container_count;
-    private $_account_bytes_used;
-    private $_container_object_count;
-    private $_container_bytes_used;
-    private $_obj_etag;
-    private $_obj_last_modified;
-    private $_obj_content_type;
-    private $_obj_content_length;
-    private $_obj_metadata;
-    private $_obj_write_resource;
-    private $_obj_write_string;
-    private $_cdn_enabled;
-    private $_cdn_uri;
-    private $_cdn_ttl;
-    private $_cdn_log_retention;
-    private $_cdn_acl_user_agent;
-    private $_cdn_acl_referrer;
-
-    function __construct($api_version)
-    {
-        $this->dbug = False;
-        $this->cabundle_path = NULL;
-        $this->api_version = $api_version;
-        $this->error_str = NULL;
-
-        $this->storage_url = NULL;
-        $this->cdnm_url = NULL;
-        $this->auth_token = NULL;
-
-        $this->response_status = NULL;
-        $this->response_reason = NULL;
-
-        # Curl connections array - since there is no way to "re-set" the
-        # connection paramaters for a cURL handle, we keep an array of
-        # the unique use-cases and funnel all of those same type
-        # requests through the appropriate curl connection.
-        #
-        $this->connections = array(
-            "GET_CALL"  => NULL, # GET objects/containers/lists
-            "PUT_OBJ"   => NULL, # PUT object
-            "HEAD"      => NULL, # HEAD requests
-            "PUT_CONT"  => NULL, # PUT container
-            "DEL_POST"  => NULL, # DELETE containers/objects, POST objects
-        );
-
-        $this->_user_read_progress_callback_func = NULL;
-        $this->_user_write_progress_callback_func = NULL;
-        $this->_write_callback_type = NULL;
-        $this->_text_list = array();
-	$this->_return_list = NULL;
-        $this->_account_container_count = 0;
-        $this->_account_bytes_used = 0;
-        $this->_container_object_count = 0;
-        $this->_container_bytes_used = 0;
-        $this->_obj_write_resource = NULL;
-        $this->_obj_write_string = "";
-        $this->_obj_etag = NULL;
-        $this->_obj_last_modified = NULL;
-        $this->_obj_content_type = NULL;
-        $this->_obj_content_length = NULL;
-        $this->_obj_metadata = array();
-        $this->_cdn_enabled = NULL;
-        $this->_cdn_uri = NULL;
-        $this->_cdn_ttl = NULL;
-        $this->_cdn_log_retention = NULL;
-        $this->_cdn_acl_user_agent = NULL;
-        $this->_cdn_acl_referrer = NULL;
-
-        # The OS list with a PHP without an updated CA File for CURL to
-        # connect to SSL Websites. It is the first 3 letters of the PHP_OS
-        # variable.
-        $OS_CAFILE_NONUPDATED=array(
-            "win","dar"
-        );
-
-        if (in_array((strtolower (substr(PHP_OS, 0,3))), $OS_CAFILE_NONUPDATED))
-            $this->ssl_use_cabundle();
-
-    }
-
-    function ssl_use_cabundle($path=NULL)
-    {
-        if ($path) {
-            $this->cabundle_path = $path;
-        } else {
-            $this->cabundle_path = dirname(__FILE__) . "/share/cacert.pem";
-        }
-        if (!file_exists($this->cabundle_path)) {
-            throw new IOException("Could not use CA bundle: "
-                . $this->cabundle_path);
-        }
-        return;
-    }
-
-    # Uses separate cURL connection to authenticate
-    #
-    function authenticate($user, $pass, $acct=NULL, $host=NULL)
-    {
-        $path = array();
-        if (isset($acct) || isset($host)) {
-            $headers = array(
-                sprintf("%s: %s", AUTH_USER_HEADER_LEGACY, $user),
-                sprintf("%s: %s", AUTH_KEY_HEADER_LEGACY, $pass),
-                );
-            $path[] = $host;
-            $path[] = rawurlencode(sprintf("v%d",$this->api_version));
-            $path[] = rawurlencode($acct);
-        } else {
-            $headers = array(
-                sprintf("%s: %s", AUTH_USER_HEADER, $user),
-                sprintf("%s: %s", AUTH_KEY_HEADER, $pass),
-                );
-	    $path[] = "https://auth.api.rackspacecloud.com";
-        }
-	$path[] = "v1.0";
-        $url = implode("/", $path);
-
-        $curl_ch = curl_init();
-        if (!is_null($this->cabundle_path)) {
-            curl_setopt($curl_ch, CURLOPT_SSL_VERIFYPEER, True);
-            curl_setopt($curl_ch, CURLOPT_CAINFO, $this->cabundle_path);
-        }
-        curl_setopt($curl_ch, CURLOPT_VERBOSE, $this->dbug);
-        curl_setopt($curl_ch, CURLOPT_FOLLOWLOCATION, 1);
-        curl_setopt($curl_ch, CURLOPT_MAXREDIRS, 4);
-        curl_setopt($curl_ch, CURLOPT_HEADER, 0);
-        curl_setopt($curl_ch, CURLOPT_HTTPHEADER, $headers);
-        curl_setopt($curl_ch, CURLOPT_USERAGENT, USER_AGENT);
-        curl_setopt($curl_ch, CURLOPT_RETURNTRANSFER, TRUE);
-        curl_setopt($curl_ch, CURLOPT_HEADERFUNCTION,array(&$this,'_auth_hdr_cb'));
-        curl_setopt($curl_ch, CURLOPT_URL, $url);
-        curl_exec($curl_ch);
-        curl_close($curl_ch);
-
-        return array($this->response_status, $this->response_reason,
-            $this->storage_url, $this->cdnm_url, $this->auth_token);
-    }
-
-    # (CDN) GET /v1/Account
-    #
-    function list_cdn_containers()
-    {
-        $conn_type = "GET_CALL";
-        $url_path = $this->_make_path("CDN", $container_name);
-
-        $this->_write_callback_type = "TEXT_LIST";
-        $return_code = $this->_send_request($conn_type, $url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            array(0,$this->error_str,array());
-        }
-        if ($return_code == 401) {
-            return array($return_code,"Unauthorized",array());
-        }
-        if ($return_code == 404) {
-            return array($return_code,"Account not found.",array());
-        }
-        if ($return_code == 204) {
-            return array($return_code,"Account has no CDN enabled Containers.",
-                array());
-        }
-        if ($return_code == 200) {
-	    $this->create_array();
-            return array($return_code,$this->response_reason,$this->_text_list);
-        }
-        $this->error_str = "Unexpected HTTP response: ".$this->response_reason;
-        return array($return_code,$this->error_str,array());
-    }
-
-    # (CDN) POST /v1/Account/Container
-    #
-    function update_cdn_container($container_name, $ttl=86400, $cdn_log_retention=False,
-                                  $cdn_acl_user_agent="", $cdn_acl_referrer)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $url_path = $this->_make_path("CDN", $container_name);
-        $hdrs = array(
-            CDN_ENABLED => "True",
-            CDN_TTL => $ttl,
-            CDN_LOG_RETENTION => $cdn_log_retention ?  "True" : "False",
-            CDN_ACL_USER_AGENT => $cdn_acl_user_agent,
-            CDN_ACL_REFERRER => $cdn_acl_referrer,
-            );
-        $return_code = $this->_send_request("DEL_POST",$url_path,$hdrs,"POST");
-        if ($return_code == 401) {
-            $this->error_str = "Unauthorized";
-            return array($return_code, $this->error_str, NULL);
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Container not found.";
-            return array($return_code, $this->error_str, NULL);
-        }
-        if ($return_code != 202) {
-            $this->error_str="Unexpected HTTP response: ".$this->response_reason;
-            return array($return_code, $this->error_str, NULL);
-        }
-        return array($return_code, "Accepted", $this->_cdn_uri);
-
-    }
-
-    # (CDN) PUT /v1/Account/Container
-    #
-    function add_cdn_container($container_name, $ttl=86400)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $url_path = $this->_make_path("CDN", $container_name);
-        $hdrs = array(
-            CDN_ENABLED => "True",
-            CDN_TTL => $ttl,
-            );
-        $return_code = $this->_send_request("PUT_CONT", $url_path, $hdrs);
-        if ($return_code == 401) {
-            $this->error_str = "Unauthorized";
-            return array($return_code,$this->response_reason,False);
-        }
-        if (!in_array($return_code, array(201,202))) {
-            $this->error_str="Unexpected HTTP response: ".$this->response_reason;
-            return array($return_code,$this->response_reason,False);
-        }
-        return array($return_code,$this->response_reason,$this->_cdn_uri);
-    }
-
-    # (CDN) POST /v1/Account/Container
-    #
-    function remove_cdn_container($container_name)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $url_path = $this->_make_path("CDN", $container_name);
-        $hdrs = array(CDN_ENABLED => "False");
-        $return_code = $this->_send_request("DEL_POST",$url_path,$hdrs,"POST");
-        if ($return_code == 401) {
-            $this->error_str = "Unauthorized";
-            return array($return_code, $this->error_str);
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Container not found.";
-            return array($return_code, $this->error_str);
-        }
-        if ($return_code != 202) {
-            $this->error_str="Unexpected HTTP response: ".$this->response_reason;
-            return array($return_code, $this->error_str);
-        }
-        return array($return_code, "Accepted");
-    }
-
-    # (CDN) HEAD /v1/Account
-    #
-    function head_cdn_container($container_name)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $conn_type = "HEAD";
-        $url_path = $this->_make_path("CDN", $container_name);
-        $return_code = $this->_send_request($conn_type, $url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,NULL,NULL,NULL,NULL,NULL,NULL);
-        }
-        if ($return_code == 401) {
-            return array($return_code,"Unauthorized",NULL,NULL,NULL,NULL,NULL,NULL);
-        }
-        if ($return_code == 404) {
-            return array($return_code,"Account not found.",NULL,NULL,NULL,NULL,NULL,NULL);
-        }
-        if ($return_code == 204) {
-            return array($return_code,$this->response_reason,
-                $this->_cdn_enabled, $this->_cdn_uri, $this->_cdn_ttl,
-                $this->_cdn_log_retention,
-                $this->_cdn_acl_user_agent,
-                $this->_cdn_acl_referrer
-                );
-        }
-        return array($return_code,$this->response_reason,
-                     NULL,NULL,NULL,
-                     $this->_cdn_log_retention,
-                     $this->_cdn_acl_user_agent,
-                     $this->_cdn_acl_referrer
-            );
-    }
-
-    # GET /v1/Account
-    #
-    function list_containers($limit=0, $marker=NULL)
-    {
-        $conn_type = "GET_CALL";
-        $url_path = $this->_make_path();
-
-        $limit = intval($limit);
-        $params = array();
-        if ($limit > 0) {
-            $params[] = "limit=$limit";
-        }
-        if ($marker) {
-            $params[] = "marker=".rawurlencode($marker);
-        }
-        if (!empty($params)) {
-            $url_path .= "?" . implode("&", $params);
-        }
-
-        $this->_write_callback_type = "TEXT_LIST";
-        $return_code = $this->_send_request($conn_type, $url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,array());
-        }
-        if ($return_code == 204) {
-            return array($return_code, "Account has no containers.", array());
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Invalid account name for authentication token.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 200) {
-	    $this->create_array();
-            return array($return_code, $this->response_reason, $this->_text_list);
-        }
-        $this->error_str = "Unexpected HTTP response: ".$this->response_reason;
-        return array($return_code,$this->error_str,array());
-    }
-
-    # GET /v1/Account?format=json
-    #
-    function list_containers_info($limit=0, $marker=NULL)
-    {
-        $conn_type = "GET_CALL";
-        $url_path = $this->_make_path() . "?format=json";
-
-        $limit = intval($limit);
-        $params = array();
-        if ($limit > 0) {
-            $params[] = "limit=$limit";
-        }
-        if ($marker) {
-            $params[] = "marker=".rawurlencode($marker);
-        }
-        if (!empty($params)) {
-            $url_path .= "&" . implode("&", $params);
-        }
-
-        $this->_write_callback_type = "OBJECT_STRING";
-        $return_code = $this->_send_request($conn_type, $url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,array());
-        }
-        if ($return_code == 204) {
-            return array($return_code, "Account has no containers.", array());
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Invalid account name for authentication token.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 200) {
-            $json_body = json_decode($this->_obj_write_string, True);
-            return array($return_code, $this->response_reason, $json_body);
-        }
-        $this->error_str = "Unexpected HTTP response: ".$this->response_reason;
-        return array($return_code,$this->error_str,array());
-    }
-
-    # HEAD /v1/Account
-    #
-    function head_account()
-    {
-        $conn_type = "HEAD";
-
-        $url_path = $this->_make_path();
-        $return_code = $this->_send_request($conn_type,$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            array(0,$this->error_str,0,0);
-        }
-        if ($return_code == 404) {
-            return array($return_code,"Account not found.",0,0);
-        }
-        if ($return_code == 204) {
-            return array($return_code,$this->response_reason,
-                $this->_account_container_count, $this->_account_bytes_used);
-        }
-        return array($return_code,$this->response_reason,0,0);
-    }
-
-    # PUT /v1/Account/Container
-    #
-    function create_container($container_name)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $url_path = $this->_make_path("STORAGE", $container_name);
-        $return_code = $this->_send_request("PUT_CONT",$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return False;
-        }
-        return $return_code;
-    }
-
-    # DELETE /v1/Account/Container
-    #
-    function delete_container($container_name)
-    {
-        if ($container_name == "")
-            throw new SyntaxException("Container name not set.");
-
-        if ($container_name != "0" and !isset($container_name))
-            throw new SyntaxException("Container name not set.");
-
-        $url_path = $this->_make_path("STORAGE", $container_name);
-        $return_code = $this->_send_request("DEL_POST",$url_path,array(),"DELETE");
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-        }
-        if ($return_code == 409) {
-            $this->error_str = "Container must be empty prior to removing it.";
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Specified container did not exist to delete.";
-        }
-        if ($return_code != 204) {
-            $this->error_str = "Unexpected HTTP return code: $return_code.";
-        }
-        return $return_code;
-    }
-
-    # GET /v1/Account/Container
-    #
-    function list_objects($cname,$limit=0,$marker=NULL,$prefix=NULL,$path=NULL)
-    {
-        if (!$cname) {
-            $this->error_str = "Container name not set.";
-            return array(0, $this->error_str, array());
-        }
-
-        $url_path = $this->_make_path("STORAGE", $cname);
-
-        $limit = intval($limit);
-        $params = array();
-        if ($limit > 0) {
-            $params[] = "limit=$limit";
-        }
-        if ($marker) {
-            $params[] = "marker=".rawurlencode($marker);
-        }
-        if ($prefix) {
-            $params[] = "prefix=".rawurlencode($prefix);
-        }
-        if ($path) {
-            $params[] = "path=".rawurlencode($path);
-        }
-        if (!empty($params)) {
-            $url_path .= "?" . implode("&", $params);
-        }
-
-        $conn_type = "GET_CALL";
-        $this->_write_callback_type = "TEXT_LIST";
-        $return_code = $this->_send_request($conn_type,$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,array());
-        }
-        if ($return_code == 204) {
-            $this->error_str = "Container has no Objects.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Container has no Objects.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 200) {
-	    $this->create_array();
-            return array($return_code,$this->response_reason, $this->_text_list);
-        }
-        $this->error_str = "Unexpected HTTP response code: $return_code";
-        return array(0,$this->error_str,array());
-    }
-
-    # GET /v1/Account/Container?format=json
-    #
-    function get_objects($cname,$limit=0,$marker=NULL,$prefix=NULL,$path=NULL)
-    {
-        if (!$cname) {
-            $this->error_str = "Container name not set.";
-            return array(0, $this->error_str, array());
-        }
-
-        $url_path = $this->_make_path("STORAGE", $cname);
-
-        $limit = intval($limit);
-        $params = array();
-        $params[] = "format=json";
-        if ($limit > 0) {
-            $params[] = "limit=$limit";
-        }
-        if ($marker) {
-            $params[] = "marker=".rawurlencode($marker);
-        }
-        if ($prefix) {
-            $params[] = "prefix=".rawurlencode($prefix);
-        }
-        if ($path) {
-            $params[] = "path=".rawurlencode($path);
-        }
-        if (!empty($params)) {
-            $url_path .= "?" . implode("&", $params);
-        }
-
-        $conn_type = "GET_CALL";
-        $this->_write_callback_type = "OBJECT_STRING";
-        $return_code = $this->_send_request($conn_type,$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,array());
-        }
-        if ($return_code == 204) {
-            $this->error_str = "Container has no Objects.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Container has no Objects.";
-            return array($return_code,$this->error_str,array());
-        }
-        if ($return_code == 200) {
-            $json_body = json_decode($this->_obj_write_string, True);
-            return array($return_code,$this->response_reason, $json_body);
-        }
-        $this->error_str = "Unexpected HTTP response code: $return_code";
-        return array(0,$this->error_str,array());
-    }
-
-
-    # HEAD /v1/Account/Container
-    #
-    function head_container($container_name)
-    {
-
-        if ($container_name == "") {
-            $this->error_str = "Container name not set.";
-            return False;
-        }
-
-        if ($container_name != "0" and !isset($container_name)) {
-            $this->error_str = "Container name not set.";
-            return False;
-        }
-
-        $conn_type = "HEAD";
-
-        $url_path = $this->_make_path("STORAGE", $container_name);
-        $return_code = $this->_send_request($conn_type,$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            array(0,$this->error_str,0,0);
-        }
-        if ($return_code == 404) {
-            return array($return_code,"Container not found.",0,0);
-        }
-        if ($return_code == 204 or 200) {
-            return array($return_code,$this->response_reason,
-                $this->_container_object_count, $this->_container_bytes_used);
-        }
-        return array($return_code,$this->response_reason,0,0);
-    }
-
-    # GET /v1/Account/Container/Object
-    #
-    function get_object_to_string(&$obj, $hdrs=array())
-    {
-        if (!is_object($obj) || get_class($obj) != "CF_Object") {
-            throw new SyntaxException(
-                "Method argument is not a valid CF_Object.");
-        }
-
-        $conn_type = "GET_CALL";
-
-        $url_path = $this->_make_path("STORAGE", $obj->container->name,$obj->name);
-        $this->_write_callback_type = "OBJECT_STRING";
-        $return_code = $this->_send_request($conn_type,$url_path,$hdrs);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array($return_code0,$this->error_str,NULL);
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Object not found.";
-            return array($return_code0,$this->error_str,NULL);
-        }
-        if (($return_code < 200) || ($return_code > 299
-                && $return_code != 412 && $return_code != 304)) {
-            $this->error_str = "Unexpected HTTP return code: $return_code";
-            return array($return_code,$this->error_str,NULL);
-        }
-        return array($return_code,$this->response_reason, $this->_obj_write_string);
-    }
-
-    # GET /v1/Account/Container/Object
-    #
-    function get_object_to_stream(&$obj, &$resource=NULL, $hdrs=array())
-    {
-        if (!is_object($obj) || get_class($obj) != "CF_Object") {
-            throw new SyntaxException(
-                "Method argument is not a valid CF_Object.");
-        }
-        if (!is_resource($resource)) {
-            throw new SyntaxException(
-                "Resource argument not a valid PHP resource.");
-        }
-
-        $conn_type = "GET_CALL";
-
-        $url_path = $this->_make_path("STORAGE", $obj->container->name,$obj->name);
-        $this->_obj_write_resource = $resource;
-        $this->_write_callback_type = "OBJECT_STREAM";
-        $return_code = $this->_send_request($conn_type,$url_path,$hdrs);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array($return_code,$this->error_str);
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Object not found.";
-            return array($return_code,$this->error_str);
-        }
-        if (($return_code < 200) || ($return_code > 299
-                && $return_code != 412 && $return_code != 304)) {
-            $this->error_str = "Unexpected HTTP return code: $return_code";
-            return array($return_code,$this->error_str);
-        }
-        return array($return_code,$this->response_reason);
-    }
-
-    # PUT /v1/Account/Container/Object
-    #
-    function put_object(&$obj, &$fp)
-    {
-        if (!is_object($obj) || get_class($obj) != "CF_Object") {
-            throw new SyntaxException(
-                "Method argument is not a valid CF_Object.");
-        }
-        if (!is_resource($fp)) {
-            throw new SyntaxException(
-                "File pointer argument is not a valid resource.");
-        }
-
-        $conn_type = "PUT_OBJ";
-        $url_path = $this->_make_path("STORAGE", $obj->container->name,$obj->name);
-
-        $hdrs = $this->_metadata_headers($obj);
-
-        $etag = $obj->getETag();
-        if (isset($etag)) {
-            $hdrs[] = "ETag: " . $etag;
-        }
-        if (!$obj->content_type) {
-            $hdrs[] = "Content-Type: application/octet-stream";
-        } else {
-            $hdrs[] = "Content-Type: " . $obj->content_type;
-        }
-
-        $this->_init($conn_type);
-        curl_setopt($this->connections[$conn_type],
-                CURLOPT_INFILE, $fp);
-        if (!$obj->content_length) {
-            # We don''t know the Content-Length, so assumed "chunked" PUT
-            #
-            curl_setopt($this->connections[$conn_type], CURLOPT_UPLOAD, True);
-            $hdrs[] = 'Transfer-Encoding: chunked';
-        } else {
-            # We know the Content-Length, so use regular transfer
-            #
-            curl_setopt($this->connections[$conn_type],
-                    CURLOPT_INFILESIZE, $obj->content_length);
-        }
-        $return_code = $this->_send_request($conn_type,$url_path,$hdrs);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0,$this->error_str,NULL);
-        }
-        if ($return_code == 412) {
-            $this->error_str = "Missing Content-Type header";
-            return array($return_code,$this->error_str,NULL);
-        }
-        if ($return_code == 422) {
-            $this->error_str = "Derived and computed checksums do not match.";
-            return array($return_code,$this->error_str,NULL);
-        }
-        if ($return_code != 201) {
-            $this->error_str = "Unexpected HTTP return code: $return_code";
-            return array($return_code,$this->error_str,NULL);
-        }
-        return array($return_code,$this->response_reason,$this->_obj_etag);
-    }
-
-    # POST /v1/Account/Container/Object
-    #
-    function update_object(&$obj)
-    {
-        if (!is_object($obj) || get_class($obj) != "CF_Object") {
-            throw new SyntaxException(
-                "Method argument is not a valid CF_Object.");
-        }
-
-        if (!is_array($obj->metadata) || empty($obj->metadata)) {
-            $this->error_str = "Metadata array is empty.";
-            return 0;
-        }
-
-        $url_path = $this->_make_path("STORAGE", $obj->container->name,$obj->name);
-
-        $hdrs = $this->_metadata_headers($obj);
-        $return_code = $this->_send_request("DEL_POST",$url_path,$hdrs,"POST");
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return 0;
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Account, Container, or Object not found.";
-        }
-        if ($return_code != 202) {
-            $this->error_str = "Unexpected HTTP return code: $return_code";
-        }
-        return $return_code;
-    }
-
-    # HEAD /v1/Account/Container/Object
-    #
-    function head_object(&$obj)
-    {
-        if (!is_object($obj) || get_class($obj) != "CF_Object") {
-            throw new SyntaxException(
-                "Method argument is not a valid CF_Object.");
-        }
-
-        $conn_type = "HEAD";
-
-        $url_path = $this->_make_path("STORAGE", $obj->container->name,$obj->name);
-        $return_code = $this->_send_request($conn_type,$url_path);
-
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return array(0, $this->error_str." ".$this->response_reason,
-                NULL, NULL, NULL, NULL, array());
-        }
-
-        if ($return_code == 404) {
-            return array($return_code, $this->response_reason,
-                NULL, NULL, NULL, NULL, array());
-        }
-        if ($return_code == 204 or 200) {
-            return array($return_code,$this->response_reason,
-                $this->_obj_etag,
-                $this->_obj_last_modified,
-                $this->_obj_content_type,
-                $this->_obj_content_length,
-                $this->_obj_metadata);
-        }
-        $this->error_str = "Unexpected HTTP return code: $return_code";
-        return array($return_code, $this->error_str." ".$this->response_reason,
-                NULL, NULL, NULL, NULL, array());
-    }
-
-    # DELETE /v1/Account/Container/Object
-    #
-    function delete_object($container_name, $object_name)
-    {
-        if ($container_name == "") {
-            $this->error_str = "Container name not set.";
-            return 0;
-        }
-
-        if ($container_name != "0" and !isset($container_name)) {
-            $this->error_str = "Container name not set.";
-            return 0;
-        }
-
-        if (!$object_name) {
-            $this->error_str = "Object name not set.";
-            return 0;
-        }
-
-        $url_path = $this->_make_path("STORAGE", $container_name,$object_name);
-        $return_code = $this->_send_request("DEL_POST",$url_path,NULL,"DELETE");
-        if (!$return_code) {
-            $this->error_str .= ": Failed to obtain valid HTTP response.";
-            return 0;
-        }
-        if ($return_code == 404) {
-            $this->error_str = "Specified container did not exist to delete.";
-        }
-        if ($return_code != 204) {
-            $this->error_str = "Unexpected HTTP return code: $return_code.";
-        }
-        return $return_code;
-    }
-
-    function get_error()
-    {
-        return $this->error_str;
-    }
-
-    function setDebug($bool)
-    {
-        $this->dbug = $bool;
-        foreach ($this->connections as $k => $v) {
-            if (!is_null($v)) {
-                curl_setopt($this->connections[$k], CURLOPT_VERBOSE, $this->dbug);
-            }
-        }
-    }
-
-    function getCDNMUrl()
-    {
-        return $this->cdnm_url;
-    }
-
-    function getStorageUrl()
-    {
-        return $this->storage_url;
-    }
-
-    function getAuthToken()
-    {
-        return $this->auth_token;
-    }
-
-    function setCFAuth($cfs_auth, $servicenet=False)
-    {
-        if ($servicenet) {
-            $this->storage_url = "https://snet-" . substr($cfs_auth->storage_url, 8);
-        } else {
-            $this->storage_url = $cfs_auth->storage_url;
-        }
-        $this->auth_token = $cfs_auth->auth_token;
-        $this->cdnm_url = $cfs_auth->cdnm_url;
-    }
-
-    function setReadProgressFunc($func_name)
-    {
-        $this->_user_read_progress_callback_func = $func_name;
-    }
-
-    function setWriteProgressFunc($func_name)
-    {
-        $this->_user_write_progress_callback_func = $func_name;
-    }
-
-    private function _header_cb($ch, $header)
-    {
-        preg_match("/^HTTP\/1\.[01] (\d{3}) (.*)/", $header, $matches);
-        if (isset($matches[1])) {
-            $this->response_status = $matches[1];
-        }
-        if (isset($matches[2])) {
-            $this->response_reason = $matches[2];
-        }
-        if (stripos($header, CDN_ENABLED) === 0) {
-            $val = trim(substr($header, strlen(CDN_ENABLED)+1));
-            if (strtolower($val) == "true") {
-                $this->_cdn_enabled = True;
-            } elseif (strtolower($val) == "false") {
-                $this->_cdn_enabled = False;
-            } else {
-                $this->_cdn_enabled = NULL;
-            }
-            return strlen($header);
-        }
-        if (stripos($header, CDN_URI) === 0) {
-            $this->_cdn_uri = trim(substr($header, strlen(CDN_URI)+1));
-            return strlen($header);
-        }
-        if (stripos($header, CDN_TTL) === 0) {
-            $this->_cdn_ttl = trim(substr($header, strlen(CDN_TTL)+1))+0;
-            return strlen($header);
-        }
-        if (stripos($header, CDN_LOG_RETENTION) === 0) {
-            $this->_cdn_log_retention =
-                trim(substr($header, strlen(CDN_LOG_RETENTION)+1)) == "True" ? True : False;
-            return strlen($header);
-        }
-
-        if (stripos($header, CDN_ACL_USER_AGENT) === 0) {
-            $this->_cdn_acl_user_agent =
-                trim(substr($header, strlen(CDN_ACL_USER_AGENT)+1));
-            return strlen($header);
-        }
-
-        if (stripos($header, CDN_ACL_REFERRER) === 0) {
-            $this->_cdn_acl_referrer =
-                trim(substr($header, strlen(CDN_ACL_REFERRER)+1));
-            return strlen($header);
-        }
-
-        if (stripos($header, ACCOUNT_CONTAINER_COUNT) === 0) {
-            $this->_account_container_count = (float) trim(substr($header,
-                    strlen(ACCOUNT_CONTAINER_COUNT)+1))+0;
-            return strlen($header);
-        }
-        if (stripos($header, ACCOUNT_BYTES_USED) === 0) {
-            $this->_account_bytes_used = (float) trim(substr($header,
-                    strlen(ACCOUNT_BYTES_USED)+1))+0;
-            return strlen($header);
-        }
-        if (stripos($header, CONTAINER_OBJ_COUNT) === 0) {
-            $this->_container_object_count = (float) trim(substr($header,
-                    strlen(CONTAINER_OBJ_COUNT)+1))+0;
-            return strlen($header);
-        }
-        if (stripos($header, CONTAINER_BYTES_USED) === 0) {
-            $this->_container_bytes_used = (float) trim(substr($header,
-                    strlen(CONTAINER_BYTES_USED)+1))+0;
-            return strlen($header);
-        }
-        if (stripos($header, METADATA_HEADER) === 0) {
-            # $header => X-Object-Meta-Foo: bar baz
-            $temp = substr($header, strlen(METADATA_HEADER));
-            # $temp => Foo: bar baz
-            $parts = explode(":", $temp);
-            # $parts[0] => Foo
-            $val = substr(strstr($temp, ":"), 1);
-            # $val => bar baz
-            $this->_obj_metadata[$parts[0]] = trim($val);
-            return strlen($header);
-        }
-        if (stripos($header, "ETag:") === 0) {
-            # $header => ETag: abc123def456...
-            $val = substr(strstr($header, ":"), 1);
-            # $val => abc123def456...
-            $this->_obj_etag = trim($val);
-            return strlen($header);
-        }
-        if (stripos($header, "Last-Modified:") === 0) {
-            $val = substr(strstr($header, ":"), 1);
-            $this->_obj_last_modified = trim($val);
-            return strlen($header);
-        }
-        if (stripos($header, "Content-Type:") === 0) {
-            $val = substr(strstr($header, ":"), 1);
-            $this->_obj_content_type = trim($val);
-            return strlen($header);
-        }
-        if (stripos($header, "Content-Length:") === 0) {
-            $val = substr(strstr($header, ":"), 1);
-            $this->_obj_content_length = (float) trim($val)+0;
-            return strlen($header);
-        }
-        return strlen($header);
-    }
-
-    private function _read_cb($ch, $fd, $length)
-    {
-        $data = fread($fd, $length);
-        $len = strlen($data);
-        if (isset($this->_user_write_progress_callback_func)) {
-            call_user_func($this->_user_write_progress_callback_func, $len);
-        }
-        return $data;
-    }
-
-    private function _write_cb($ch, $data)
-    {
-        $dlen = strlen($data);
-        switch ($this->_write_callback_type) {
-        case "TEXT_LIST":
-	     $this->_return_list = $this->_return_list . $data;
-	     //= explode("\n",$data); # keep tab,space
-	     //his->_text_list[] = rtrim($data,"\n\r\x0B"); # keep tab,space
-            break;
-        case "OBJECT_STREAM":
-            fwrite($this->_obj_write_resource, $data, $dlen);
-            break;
-        case "OBJECT_STRING":
-            $this->_obj_write_string .= $data;
-            break;
-        }
-        if (isset($this->_user_read_progress_callback_func)) {
-            call_user_func($this->_user_read_progress_callback_func, $dlen);
-        }
-        return $dlen;
-    }
-
-    private function _auth_hdr_cb($ch, $header)
-    {
-        preg_match("/^HTTP\/1\.[01] (\d{3}) (.*)/", $header, $matches);
-        if (isset($matches[1])) {
-            $this->response_status = $matches[1];
-        }
-        if (isset($matches[2])) {
-            $this->response_reason = $matches[2];
-        }
-        if (stripos($header, STORAGE_URL) === 0) {
-            $this->storage_url = trim(substr($header, strlen(STORAGE_URL)+1));
-        }
-        if (stripos($header, CDNM_URL) === 0) {
-            $this->cdnm_url = trim(substr($header, strlen(CDNM_URL)+1));
-        }
-        if (stripos($header, AUTH_TOKEN) === 0) {
-            $this->auth_token = trim(substr($header, strlen(AUTH_TOKEN)+1));
-        }
-        if (stripos($header, AUTH_TOKEN_LEGACY) === 0) {
-            $this->auth_token = trim(substr($header,strlen(AUTH_TOKEN_LEGACY)+1));
-        }
-        return strlen($header);
-    }
-
-    private function _make_headers($hdrs=NULL)
-    {
-        $new_headers = array();
-        $has_stoken = False;
-        $has_uagent = False;
-        if (is_array($hdrs)) {
-            foreach ($hdrs as $h => $v) {
-                if (is_int($h)) {
-                    $parts = explode(":", $v);
-                    $header = $parts[0];
-                    $value = trim(substr(strstr($v, ":"), 1));
-                } else {
-                    $header = $h;
-                    $value = trim($v);
-                }
-
-                if (stripos($header, AUTH_TOKEN) === 0) {
-                    $has_stoken = True;
-                }
-                if (stripos($header, "user-agent") === 0) {
-                    $has_uagent = True;
-                }
-                $new_headers[] = $header . ": " . $value;
-            }
-        }
-        if (!$has_stoken) {
-            $new_headers[] = AUTH_TOKEN . ": " . $this->auth_token;
-        }
-        if (!$has_uagent) {
-            $new_headers[] = "User-Agent: " . USER_AGENT;
-        }
-        return $new_headers;
-    }
-
-    private function _init($conn_type, $force_new=False)
-    {
-        if (!array_key_exists($conn_type, $this->connections)) {
-            $this->error_str = "Invalid CURL_XXX connection type";
-            return False;
-        }
-
-        if (is_null($this->connections[$conn_type]) || $force_new) {
-            $ch = curl_init();
-        } else {
-            return;
-        }
-
-        if ($this->dbug) { curl_setopt($ch, CURLOPT_VERBOSE, 1); }
-
-        if (!is_null($this->cabundle_path)) {
-            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, True);
-            curl_setopt($ch, CURLOPT_CAINFO, $this->cabundle_path);
-        }
-	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, True);
-        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
-        curl_setopt($ch, CURLOPT_MAXREDIRS, 4);
-        curl_setopt($ch, CURLOPT_HEADER, 0);
-        curl_setopt($ch, CURLOPT_HEADERFUNCTION, array(&$this, '_header_cb'));
-
-        if ($conn_type == "GET_CALL") {
-            curl_setopt($ch, CURLOPT_WRITEFUNCTION, array(&$this, '_write_cb'));
-        }
-
-        if ($conn_type == "PUT_OBJ") {
-            curl_setopt($ch, CURLOPT_PUT, 1);
-            curl_setopt($ch, CURLOPT_READFUNCTION, array(&$this, '_read_cb'));
-	    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-        }
-        if ($conn_type == "HEAD") {
-            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "HEAD");
-            curl_setopt($ch, CURLOPT_NOBODY, 1);
-        }
-        if ($conn_type == "PUT_CONT") {
-            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
-            curl_setopt($ch, CURLOPT_INFILESIZE, 0);
-	    curl_setopt($ch, CURLOPT_NOBODY, 1);
-        }
-        if ($conn_type == "DEL_POST") {
-        	curl_setopt($ch, CURLOPT_NOBODY, 1);
-	}
-        $this->connections[$conn_type] = $ch;
-        return;
-    }
-
-    private function _reset_callback_vars()
-    {
-        $this->_text_list = array();
-	$this->_return_list = NULL;
-        $this->_account_container_count = 0;
-        $this->_account_bytes_used = 0;
-        $this->_container_object_count = 0;
-        $this->_container_bytes_used = 0;
-        $this->_obj_etag = NULL;
-        $this->_obj_last_modified = NULL;
-        $this->_obj_content_type = NULL;
-        $this->_obj_content_length = NULL;
-        $this->_obj_metadata = array();
-        $this->_obj_write_string = "";
-        $this->_cdn_enabled = NULL;
-        $this->_cdn_uri = NULL;
-        $this->_cdn_ttl = NULL;
-        $this->response_status = 0;
-        $this->response_reason = "";
-    }
-
-    private function _make_path($t="STORAGE",$c=NULL,$o=NULL)
-    {
-        $path = array();
-        switch ($t) {
-        case "STORAGE":
-            $path[] = $this->storage_url; break;
-        case "CDN":
-            $path[] = $this->cdnm_url; break;
-        }
-        if ($c == "0")
-            $path[] = rawurlencode($c);
-
-        if ($c) {
-            $path[] = rawurlencode($c);
-        }
-        if ($o) {
-            # mimic Python''s urllib.quote() feature of a "safe" '/' character
-            #
-            $path[] = str_replace("%2F","/",rawurlencode($o));
-        }
-        return implode("/",$path);
-    }
-
-    private function _metadata_headers(&$obj)
-    {
-        $hdrs = array();
-        foreach ($obj->metadata as $k => $v) {
-            if (strpos($k,":") !== False) {
-                throw new SyntaxException(
-                    "Metadata keys cannot contain a ':' character.");
-            }
-            $k = trim($k);
-            $key = sprintf("%s%s", METADATA_HEADER, $k);
-            if (!array_key_exists($key, $hdrs)) {
-                if (strlen($k) > 128 || strlen($v) > 256) {
-                    $this->error_str = "Metadata key or value exceeds ";
-                    $this->error_str .= "maximum length: ($k: $v)";
-                    return 0;
-                }
-                $hdrs[] = sprintf("%s%s: %s", METADATA_HEADER, $k, trim($v));
-            }
-        }
-        return $hdrs;
-    }
-
-    private function _send_request($conn_type, $url_path, $hdrs=NULL, $method="GET")
-    {
-        $this->_init($conn_type);
-        $this->_reset_callback_vars();
-        $headers = $this->_make_headers($hdrs);
-
-        if (gettype($this->connections[$conn_type]) == "unknown type")
-            throw new ConnectionNotOpenException (
-                "Connection is not open."
-                );
-
-        switch ($method) {
-        case "DELETE":
-            curl_setopt($this->connections[$conn_type],
-                CURLOPT_CUSTOMREQUEST, "DELETE");
-            break;
-        case "POST":
-            curl_setopt($this->connections[$conn_type],
-                CURLOPT_CUSTOMREQUEST, "POST");
-        default:
-            break;
-        }
-
-        curl_setopt($this->connections[$conn_type],
-                    CURLOPT_HTTPHEADER, $headers);
-
-        curl_setopt($this->connections[$conn_type],
-            CURLOPT_URL, $url_path);
-
-        if (!curl_exec($this->connections[$conn_type]) && curl_errno($this->connections[$conn_type]) !== 0) {
-            $this->error_str = "(curl error: "
-                . curl_errno($this->connections[$conn_type]) . ") ";
-            $this->error_str .= curl_error($this->connections[$conn_type]);
-            return False;
-        }
-        return curl_getinfo($this->connections[$conn_type], CURLINFO_HTTP_CODE);
-    }
-
-    function close()
-    {
-        foreach ($this->connections as $cnx) {
-            if (isset($cnx)) {
-                curl_close($cnx);
-                $this->connections[$cnx] = NULL;
-            }
-        }
-    }
-    private function create_array()
-    {
-	$this->_text_list = explode("\n",rtrim($this->_return_list,"\n\x0B"));
-	return True;
-    }
-
-}
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * c-hanging-comment-ender-p: nil
- * End:
- */
-?>
diff --git a/cloudfiles/share/cacert.pem b/cloudfiles/share/cacert.pem
deleted file mode 100644
index 10cd6b98b79d5f70ff8c9cdae4352a3658a4a3b9..0000000000000000000000000000000000000000
--- a/cloudfiles/share/cacert.pem
+++ /dev/null
@@ -1,3113 +0,0 @@
-##
-## cacert.pem-foo -- Bundle of CA Root Certificates
-##
-## Converted at: Sat Aug 23 21:39:56 2008 UTC
-##
-## This is a bundle of X.509 certificates of public Certificate Authorities
-## (CA). These were automatically extracted from Mozilla's root certificates
-## file (certdata.txt).  This file can be found in the mozilla source tree:
-## '/mozilla/security/nss/lib/ckfw/builtins/certdata.txt'
-##
-## It contains the certificates in PEM format and therefore
-## can be directly used with curl / libcurl / php_curl, or with
-## an Apache+mod_ssl webserver for SSL client authentication.
-## Just configure this file as the SSLCACertificateFile.
-##
-
-# ***** BEGIN LICENSE BLOCK *****
-# Version: MPL 1.1/GPL 2.0/LGPL 2.1
-#
-# The contents of this file are subject to the Mozilla Public License Version
-# 1.1 (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-# http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-# for the specific language governing rights and limitations under the
-# License.
-#
-# The Original Code is the Netscape security libraries.
-#
-# The Initial Developer of the Original Code is
-# Netscape Communications Corporation.
-# Portions created by the Initial Developer are Copyright (C) 1994-2000
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-#
-# Alternatively, the contents of this file may be used under the terms of
-# either the GNU General Public License Version 2 or later (the "GPL"), or
-# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-# in which case the provisions of the GPL or the LGPL are applicable instead
-# of those above. If you wish to allow use of your version of this file only
-# under the terms of either the GPL or the LGPL, and not to allow others to
-# use your version of this file under the terms of the MPL, indicate your
-# decision by deleting the provisions above and replace them with the notice
-# and other provisions required by the GPL or the LGPL. If you do not delete
-# the provisions above, a recipient may use your version of this file under
-# the terms of any one of the MPL, the GPL or the LGPL.
-#
-# ***** END LICENSE BLOCK *****
-# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.49 $ $Date: 2008/08/14 18:15:56 $
-
-Verisign/RSA Secure Server CA
-=============================
------BEGIN CERTIFICATE-----
-MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
-IDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2VydmVy
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQL
-EyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUA
-A4GJADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII0haGN1Xp
-sSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphIuR2nKRoTLkoRWZweFdVJ
-VCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZIhvcNAQECBQADfgBl3X7hsuyw4jrg7HFG
-mhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2
-qUtN8iD3zV9/ZHuO3ABc1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
------END CERTIFICATE-----
-
-GTE CyberTrust Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg
-Q29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRydXN0IFJvb3QwHhcNOTYwMjIzMjMwMTAw
-WhcNMDYwMjIzMjM1OTAwWjBFMQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9u
-MRwwGgYDVQQDExNHVEUgQ3liZXJUcnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
-gQC45k+625h8cXyvRLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8KDPufpz+iCWaEVh43KRuH
-6X4MypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPwKfWVWgkWYXcKIiXUT0Wqx73llt/51KiOQswk
-wB6RJ0q1bQaAYznEol44AwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABKzdcZfHeFhVYAA1IFLezEP
-I2PnPfMD+fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWlIjeaY8JIILTbcuPI9tl8vrGvU9oUtCG4
-1tWW4/5ODFlitppK+ULdjG+BqXH/9ApybW1EDp3zdHSo1TRJ6V6e6bR64eVaH4QwnNOfpSXY
------END CERTIFICATE-----
-
-GTE CyberTrust Global Root
-==========================
------BEGIN CERTIFICATE-----
-MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg
-Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG
-A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz
-MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL
-Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0
-IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u
-sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql
-HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID
-AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW
-M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF
-NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
------END CERTIFICATE-----
-
-Thawte Personal Basic CA
-========================
------BEGIN CERTIFICATE-----
-MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs
-dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMY
-VGhhd3RlIFBlcnNvbmFsIEJhc2ljIENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNpY0B0
-aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgcsxCzAJBgNVBAYTAlpB
-MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhh
-d3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x
-ITAfBgNVBAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBDQTEoMCYGCSqGSIb3DQEJARYZcGVyc29u
-YWwtYmFzaWNAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLyTU23AUE+C
-FeZIlDWmWr5vQvoPR+53dXLdjUmbllegeNTKP1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJ
-l+A1OFdKwPQIcOk8RHtQfmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7G1sY
-0b8jkyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAt4plrsD16
-iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7c8a914phXAPjLSeoF+CEhULcXpvG
-t7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95B21P9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN
-92NWod8isQ==
------END CERTIFICATE-----
-
-Thawte Personal Premium CA
-==========================
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs
-dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMa
-VGhhd3RlIFBlcnNvbmFsIFByZW1pdW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1p
-dW1AdGhhd3RlLmNvbTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQG
-EwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoT
-EVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlz
-aW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJlbWl1bSBDQTEqMCgGCSqGSIb3DQEJARYb
-cGVyc29uYWwtcHJlbWl1bUB0aGF3dGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJ
-Ztn4B0TPuYwu8KHvE0VsBd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ
-8/JE2dWIEt12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYDZicR
-FTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GB
-AGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIHb4Vnjt4rueIXsDqg8A6iAJrf8xQV
-brvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBhKXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+W
-jS9Q2wfD6h+rM+D1KzGJ
------END CERTIFICATE-----
-
-Thawte Personal Freemail CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs
-dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMb
-VGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVl
-bWFpbEB0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNV
-BAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UE
-ChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
-aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJ
-ARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
-gYEA1GnX1LCUZFtx6UfYDFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6W
-ZBrCFG5ErHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVquzgk
-CGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQF
-AAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjPMPuoSpaKH2JCI4wXD/S6ZJwXrEcp
-352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK
-/qarigd1iwzdUYRr5PjRzneigQ==
------END CERTIFICATE-----
-
-Thawte Server CA
-================
------BEGIN CERTIFICATE-----
-MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
-dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE
-AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j
-b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV
-BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u
-c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG
-A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
-ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl
-/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7
-1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR
-MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J
-GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ
-GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
------END CERTIFICATE-----
-
-Thawte Premium Server CA
-========================
------BEGIN CERTIFICATE-----
-MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
-dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
-AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
-ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
-AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
-VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
-aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
-cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
-aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
-Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
-qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
-SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
-8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
-UCemDaYj+bvLpgcUQg==
------END CERTIFICATE-----
-
-Equifax Secure CA
-=================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
-ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
-MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
-B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
-fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
-8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
-A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
-CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
-A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
-spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
-Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
-zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
-BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
-70+sB3c4
------END CERTIFICATE-----
-
-ABAecom (sub., Am. Bankers Assn.) Root CA
-=========================================
------BEGIN CERTIFICATE-----
-MIIDtTCCAp2gAwIBAgIRANAeQJAAAEZSAAAAAQAAAAQwDQYJKoZIhvcNAQEFBQAwgYkxCzAJBgNV
-BAYTAlVTMQswCQYDVQQIEwJEQzETMBEGA1UEBxMKV2FzaGluZ3RvbjEXMBUGA1UEChMOQUJBLkVD
-T00sIElOQy4xGTAXBgNVBAMTEEFCQS5FQ09NIFJvb3QgQ0ExJDAiBgkqhkiG9w0BCQEWFWFkbWlu
-QGRpZ3NpZ3RydXN0LmNvbTAeFw05OTA3MTIxNzMzNTNaFw0wOTA3MDkxNzMzNTNaMIGJMQswCQYD
-VQQGEwJVUzELMAkGA1UECBMCREMxEzARBgNVBAcTCldhc2hpbmd0b24xFzAVBgNVBAoTDkFCQS5F
-Q09NLCBJTkMuMRkwFwYDVQQDExBBQkEuRUNPTSBSb290IENBMSQwIgYJKoZIhvcNAQkBFhVhZG1p
-bkBkaWdzaWd0cnVzdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx0xHgeVVD
-BwhMywVCAOINg0Y95JO6tgbTDVm9PsHOQ2cBiiGo77zM0KLMsFWWU4RmBQDaREmA2FQKpSWGlO1j
-Vv9wbKOhGdJ4vmgqRF4vz8wYXke8OrFGPR7wuSw0X4x8TAgpnUBV6zx9g9618PeKgw6hTLQ6pbNf
-WiKX7BmbwQVo/ea3qZGULOR4SCQaJRk665WcOQqKz0Ky8BzVX/tr7WhWezkscjiw7pOp03t3POtx
-A6k4ShZsiSrK2jMTecJVjO2cu/LLWxD4LmE1xilMKtAqY9FlWbT4zfn0AIS2V0KFnTKo+SpU+/94
-Qby9cSj0u5C8/5Y0BONFnqFGKECBAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQgwDQYJKoZI
-hvcNAQEFBQADggEBAARvJYbk5pYntNlCwNDJALF/VD6Hsm0kqS8Kfv2kRLD4VAe9G52dyntQJHsR
-W0mjpr8SdNWJt7cvmGQlFLdh6X9ggGvTZOirvRrWUfrAtF13Gn9kCF55xgVM8XrdTX3O5kh7VNJh
-koHWG9YA8A6eKHegTYjHInYZw8eeG6Z3ePhfm1bR8PIXrI6dWeYf/le22V7hXZ9F7GFoGUHhsiAm
-/lowdiT/QHI8eZ98IkirRs3bs4Ysj78FQdPB4xTjQRcm0HyncUwZ6EoPclgxfexgeqMiKL0ZJGA/
-O4dzwGvky663qyVDslUte6sGDnVdNOVdc22esnVApVnJTzFxiNmIf1Q=
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 1
-=======================================
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE
-ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMTAeFw05ODEy
-MTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs
-IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUA
-A4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJE
-NySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2i
-o74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo
-BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0
-dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
-IoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQY
-MBaAFGp5fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAM
-BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB
-ACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lNQseSJqBcNJo4cvj9axY+IO6CizEq
-kzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4
-RbyhkwS7hp86W0N6w4pl
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 3
-=======================================
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE
-ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMjAeFw05ODEy
-MDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs
-IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUA
-A4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGOD
-VvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JS
-xhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo
-BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0
-dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
-IoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQY
-MBaAFB6CTShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAM
-BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB
-AEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHRxdf0CiUPPXiBng+xZ8SQTGPdXqfi
-up/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1
-mPnHfxsb1gYgAlihw6ID
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 2
-=======================================
------BEGIN CERTIFICATE-----
-MIID2DCCAsACEQDQHkCLAAACfAAAAAIAAAABMA0GCSqGSIb3DQEBBQUAMIGpMQswCQYDVQQGEwJ1
-czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0
-YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBS
-b290Q0EgWDExITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODEyMDExODE4
-NTVaFw0wODExMjgxODE4NTVaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UE
-BxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjER
-MA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBSb290Q0EgWDExITAfBgkqhkiG9w0BCQEW
-EmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANLGJrbn
-pT3BxGjVUG9TxW9JEwm4ryxIjRRqoxdfWvnTLnUv2Chi0ZMv/E3Uq4flCMeZ55I/db3rJbQVwZsZ
-PdJEjdd0IG03Ao9pk1uKxBmd9LIO/BZsubEFkoPRhSxglD5FVaDZqwgh5mDoO3TymVBRaNADLbGA
-vqPYUrBEzUNKcI5YhZXhTizWLUFv1oTnyJhEykfbLCSlaSbPa7gnYsP0yXqSI+0TZ4KuRS5F5X5y
-P4WdlGIQ5jyRoa13AOAV7POEgHJ6jm5gl8ckWRA0g1vhpaRptlc1HHhZxtMvOnNn7pTKBBMFYgZw
-I7P0fO5F2WQLW0mqpEPOJsREEmy43XkCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAojeyP2n714Z5
-VEkxlTMr89EJFEliYIalsBHiUMIdBlc+LegzZL6bqq1fG03UmZWii5rJYnK1aerZWKs17RWiQ9a2
-vAd5ZWRzfdd5ynvVWlHG4VMElo04z6MXrDlxawHDi1M8Y+nuecDkvpIyZHqzH5eUYr3qsiAVlfuX
-8ngvYzZAOONGDx3drJXK50uQe7FLqdTF65raqtWjlBRGjS0f8zrWkzr2Pnn86Oawde3uPclwx12q
-gUtGJRzHbBXjlU4PqjI3lAoXJJIThFjSY28r9+ZbYgsTF7ANUkz+/m9c4pFuHf2kYtdo+o56T9II
-2pPc8JIRetDccpMMc5NihWjQ9A==
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 4
-=======================================
------BEGIN CERTIFICATE-----
-MIID2DCCAsACEQDQHkCLAAB3bQAAAAEAAAAEMA0GCSqGSIb3DQEBBQUAMIGpMQswCQYDVQQGEwJ1
-czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0
-YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBS
-b290Q0EgWDIxITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODExMzAyMjQ2
-MTZaFw0wODExMjcyMjQ2MTZaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UE
-BxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjER
-MA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBSb290Q0EgWDIxITAfBgkqhkiG9w0BCQEW
-EmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANx18IzA
-dZaawGIfJvfE4Zrq4FZzW5nNAUSoCLbVp9oaBBg5kkp4o4HC9Xd6ULRw/5qrxsfKboNPQpj7Jgva
-3G3WqZlVUmfpKAOS3OWwBZoPFflrWXJW8vo5/Kpo7g8fEIMv/J36F5bdguPmRX3AS4BEH+0s4IT9
-kVySVGkl5WJp3OXuAFK9MwutdQKFp2RQLcUZGTDAJtvJ0/0uma1ZtQtN1EGuhUhDWdy3qOKi3sOP
-17ihYqZoUFLkzzGnlIXan0YyF1bl8utmPRL/Q9uY73fPy4GNNLHGUEom0eQ+QVCvbK4iNC7Va26D
-unm4dmVI2gkpZGMiuftHdoWMhkTLCdsCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAtTYOXeFhKFoR
-ZcA/gwN5Tb4opgsHAlKFzfiR0BBstWogWxyQ2TA8xkieil5k+aFxd+8EJx8H6+Qm93N0yUQYGmbT
-4EOvkTvRyyzYdFQ6HE3K1GjNI3wdEJ5F6fYAbqbNGf9PLCmPV03Ed5K+4EwJ+11EhmYhqLkyolbV
-6YyDfFk/xPEL553snr2cGA4+wjl5KLcDDQjLxufZATdQEOzMYRZA1K8xdHv8PzGn0EdzMzkbzE5q
-10mDEQb+64JYMzJM8FasHpwvVpp7wUocpf1VNs78lk30sPDst2yC7S8xmUJMqbINuBVd8d+6ybVK
-1GSYsyapMMj9puyrliGtf8J4tg==
------END CERTIFICATE-----
-
-Verisign Class 1 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTla
-MF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3Mg
-MSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEF
-AAOBjQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw
-0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7
-NsljXMXg1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBMP7iLxmjf
-7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZoEWx8QszznC7EBz8UsA9P/5CSdvnivErpj82ggAr3xSnx
-giJduLHdgSOjeyUVRjB5FvjqBUuUfx3CHMjjt/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0A
-NACY89FxlA==
------END CERTIFICATE-----
-
-Verisign Class 2 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAy
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyhYGt+eSz6
-Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7FYCTXOvnzAhsPz6zSvz/
-S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBAIobK/o5wXTX
-XtgZZKJYSi034DNHD6zt96rbHuSLBlxgJ8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUY
-YAS/QoD90KioHgE796Ncr6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2
-lw0Xd8rY
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
-f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
-hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
-TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
-WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
-Tqj/ZA1k
------END CERTIFICATE-----
-
-Verisign Class 1 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgd
-k4xWArzZbxpvUjZudVYKVdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIq
-WpDBucSmFc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0Jh9ZrbWB85a7FkCMM
-XErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2uluIncrKTdcu1OofdPvAbT6shkdHvC
-lUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68DzFc6PLZ
------END CERTIFICATE-----
-
-Verisign Class 2 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h
-cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp
-Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
-c3QgTmV0d29yazAeFw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h
-cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp
-Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
-c3QgTmV0d29yazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjx
-nNuX6Zr8wgQGE75fUsjMHiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRC
-wiNPStjwDqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cCAwEA
-ATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9jinb3/7aHmZuovCfTK
-1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAXrXfMSTWqz9iP0b63GJZHc2pUIjRk
-LbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnInjBJ7xUS0rg==
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO
-FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71
-lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT
-1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD
-Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9
------END CERTIFICATE-----
-
-Verisign Class 4 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4
-xBewRNzjMHPVKmIquNDMHO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDH
-qGKB3FtKqsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwjcSGIL4LcY/oCRaxF
-WdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0ycyfYaT5DdPauxYma51N86Xv2S/PB
-ZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRPT8qAkbYp
------END CERTIFICATE-----
-
-GlobalSign Root CA
-==================
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
-GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
-b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
-BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
-VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
-DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
-THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
-Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
-c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
-gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
-AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
-Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
-j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
-hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
-X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
-
-GlobalSign Root CA - R2
-=======================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
-ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
-s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
-S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
-TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
-ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
-FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
-YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
-BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
-9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
-01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
-9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
-
-ValiCert Class 1 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy
-MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi
-GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm
-DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG
-lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX
-icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP
-Orf1LXLI
------END CERTIFICATE-----
-
-ValiCert Class 2 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
-MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC
-CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf
-ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ
-SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV
-UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8
-W9ViH0Pd
------END CERTIFICATE-----
-
-RSA Root Certificate 1
-======================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
-MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td
-3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H
-BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs
-3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF
-V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r
-on+jjBXu
------END CERTIFICATE-----
-
-Verisign Class 1 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAN2E1Lm0+afY8wR4nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/E
-bRrsC+MO8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjVojYJ
-rKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjbPG7PoBMAGrgnoeS+
-Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP26KbqxzcSXKMpHgLZ2x87tNcPVkeB
-FQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vrn5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-q2aN17O6x5q25lXQBfGfMY1aqtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/N
-y9Sn2WCVhDr4wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3
-ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrspSCAaWihT37h
-a88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4E1Z5T21Q6huwtVexN2ZYI/Pc
-D98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g==
------END CERTIFICATE-----
-
-Verisign Class 2 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y
-azE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ug
-b25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0
-aW9uIEF1dGhvcml0eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
-c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y
-aXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEArwoNwtUs22e5LeWUJ92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6
-tW8UvxDOJxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUYwZF7
-C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9okoqQHgiBVrKtaaNS
-0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjNqWm6o+sdDZykIKbBoMXRRkwXbdKs
-Zj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/ESrg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0
-JhU8wI1NQ0kdvekhktdmnLfexbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf
-0xwLRtxyID+u7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU
-sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RIsH/7NiXaldDx
-JBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTPcjnhsUPgKM+351psE2tJs//j
-GHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
-EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
-cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
-EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
-055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
-j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
-xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
-t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-
-Verisign Class 4 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
-tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
-8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
-Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
-Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
-mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
-RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
-UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
-Entrust.net Secure Server CA
-============================
------BEGIN CERTIFICATE-----
-MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV
-BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg
-cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl
-ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG
-A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi
-eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p
-dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ
-aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5
-gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw
-ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw
-CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l
-dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
-bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
-dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw
-NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow
-HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA
-BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN
-Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9
-n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
------END CERTIFICATE-----
-
-Entrust.net Secure Personal CA
-==============================
------BEGIN CERTIFICATE-----
-MIIE7TCCBFagAwIBAgIEOAOR7jANBgkqhkiG9w0BAQQFADCByTELMAkGA1UEBhMCVVMxFDASBgNV
-BAoTC0VudHJ1c3QubmV0MUgwRgYDVQQLFD93d3cuZW50cnVzdC5uZXQvQ2xpZW50X0NBX0luZm8v
-Q1BTIGluY29ycC4gYnkgcmVmLiBsaW1pdHMgbGlhYi4xJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1
-c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eTAeFw05OTEwMTIxOTI0MzBaFw0xOTEwMTIxOTU0MzBaMIHJMQswCQYDVQQGEwJV
-UzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNVBAsUP3d3dy5lbnRydXN0Lm5ldC9DbGllbnRf
-Q0FfSW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBsaWFiLjElMCMGA1UECxMcKGMpIDE5
-OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2xpZW50IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDIOpleMRffrCdv
-kHvkGf9FozTC28GoT/Bo6oT9n3V5z8GKUZSvx1cDR2SerYIbWtp/N3hHuzeYEpbOxhN979IMMFGp
-OZ5V+Pux5zDeg7K6PvHViTs7hbqqdCz+PzFur5GVbgbUB01LLFZHGARS2g4Qk79jkJvh34zmAqTm
-T173iwIBA6OCAeAwggHcMBEGCWCGSAGG+EIBAQQEAwIABzCCASIGA1UdHwSCARkwggEVMIHkoIHh
-oIHepIHbMIHYMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNVBAsUP3d3
-dy5lbnRydXN0Lm5ldC9DbGllbnRfQ0FfSW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBs
-aWFiLjElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50
-cnVzdC5uZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCyg
-KqAohiZodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NSTC9DbGllbnQxLmNybDArBgNVHRAEJDAigA8x
-OTk5MTAxMjE5MjQzMFqBDzIwMTkxMDEyMTkyNDMwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU
-xPucKXuXzUyW/O5bs8qZdIuV6kwwHQYDVR0OBBYEFMT7nCl7l81MlvzuW7PKmXSLlepMMAwGA1Ud
-EwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEEBQADgYEAP66K
-8ddmAwWePvrqHEa7pFuPeJoSSJn59DXeDDYHAmsQOokUgZwxpnyyQbJq5wcBoUv5nyU7lsqZwz6h
-URzzwy5E97BnRqqS5TvaHBkUODDV4qIxJS7x7EU47fgGWANzYrAQMY9Av2TgXD7FTx/aEkP/TOYG
-JqibGapEPHayXOw=
------END CERTIFICATE-----
-
-Entrust.net Premium 2048 Secure Server CA
-=========================================
------BEGIN CERTIFICATE-----
-MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
-bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
-BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
-NzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
-d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
-MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
-ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
-Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
-hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
-nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
-VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo3QwcjARBglghkgBhvhC
-AQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdER
-gL7YibkIozH5oSQJFrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B
-AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo
-oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQh7A6tcOdBTcS
-o8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z
-2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjX
-OP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ==
------END CERTIFICATE-----
-
-Baltimore CyberTrust Root
-=========================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
-ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
-ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
-SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
-dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
-uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
-UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
-G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
-XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
-l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
-VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
-BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
-cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
-hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
-Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
-RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-
-Equifax Secure Global eBusiness CA
-==================================
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
-bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
-HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
-b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
-PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
-qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
-hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
-BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
-MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
-I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
-NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
-
-Equifax Secure eBusiness CA 1
-=============================
------BEGIN CERTIFICATE-----
-MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB
-LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE
-ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz
-IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ
-1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a
-IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk
-MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW
-Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF
-AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5
-lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+
-KpYrtWKmpj29f5JZzVoqgrI3eQ==
------END CERTIFICATE-----
-
-Equifax Secure eBusiness CA 2
-=============================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEXMBUGA1UE
-ChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y
-MB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT
-DkVxdWlmYXggU2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn
-2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5
-BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAG
-A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUx
-JjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoG
-A1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9e
-uSBIplBqy/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMB
-Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAAyGgq3oThr1
-jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia
-78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUm
-V+GRMOrN
------END CERTIFICATE-----
-
-Visa International Global Root 2
-================================
------BEGIN CERTIFICATE-----
-MIIDgDCCAmigAwIBAgICAx4wDQYJKoZIhvcNAQEFBQAwYTELMAkGA1UEBhMCVVMxDTALBgNVBAoT
-BFZJU0ExLzAtBgNVBAsTJlZpc2EgSW50ZXJuYXRpb25hbCBTZXJ2aWNlIEFzc29jaWF0aW9uMRIw
-EAYDVQQDEwlHUCBSb290IDIwHhcNMDAwODE2MjI1MTAwWhcNMjAwODE1MjM1OTAwWjBhMQswCQYD
-VQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZp
-Y2UgQXNzb2NpYXRpb24xEjAQBgNVBAMTCUdQIFJvb3QgMjCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAKkBcLWqxEDwq2omYXkZAPy/mzdZDK9vZBv42pWUJGkzEXDK41Z0ohdXZFwgBuHW
-73G3O/erwWnQSaSxBNf0V2KJXLB1LRckaeNCYOTudNargFbYiCjh+20i/SN8RnNPflRzHqgsVVh1
-t0zzWkWlAhr62p3DRcMiXvOL8WAp0sdftAw6UYPvMPjU58fy+pmjIlC++QU3o63tmsPm7Igbthkn
-GziLgE3sucfFicv8GjLtI/C1AVj59o/ghalMCXI5Etuz9c9OYmTaxhkVOmMd6RdVoUwiPDQyRvhl
-V7or7zaMavrZ2UT0qt2E1w0cslSsMoW0ZA3eQbuxNMYBhjJk1Z8CAwEAAaNCMEAwHQYDVR0OBBYE
-FJ59SzS/ca3CBfYDdYDOqU8axCRMMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0G
-CSqGSIb3DQEBBQUAA4IBAQAhpXYUVfmtJ3CPPPTVbMjMCqujmAuKBiPFyWHbmQdpNSYx/scuhMKZ
-YdQN6X0uEyt8joW2hcdLzzW2LEc9zikv2G+fiRxkk78IvXbQkIqUs38oW26sTTMs7WXcFsziza6k
-PWKSBpUmv9+55CCmc2rBvveURNZNbyoLaxhNdBA2aGpawWqn3TYpjLgwi08hPwAuVDAHOrqK5MOe
-yti12HvOdUVmB/RtLdh6yumJivIj2C/LbgA2T/vwLwHMD8AiZfSr4k5hLQOCfZEWtTDVFN5ex5D8
-ofyrEK9ca3CnB+8phuiyJccg/ybdd+95RBTEvd07xQObdyPsoOy7Wjm1zK0G
------END CERTIFICATE-----
-
-beTRUSTed Root CA
-=================
------BEGIN CERTIFICATE-----
-MIIFLDCCBBSgAwIBAgIEOU99hzANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJXVzESMBAGA1UE
-ChMJYmVUUlVTVGVkMRswGQYDVQQDExJiZVRSVVNUZWQgUm9vdCBDQXMxGjAYBgNVBAMTEWJlVFJV
-U1RlZCBSb290IENBMB4XDTAwMDYyMDE0MjEwNFoXDTEwMDYyMDEzMjEwNFowWjELMAkGA1UEBhMC
-V1cxEjAQBgNVBAoTCWJlVFJVU1RlZDEbMBkGA1UEAxMSYmVUUlVTVGVkIFJvb3QgQ0FzMRowGAYD
-VQQDExFiZVRSVVNUZWQgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANS0
-c3oTCjhVAb6JVuGUntS+WutKNHUbYSnE4a0IYCF4SP+00PpeQY1hRIfo7clY+vyTmt9P6j41ffgz
-eubx181vSUs9Ty1uDoM6GHh3o8/n9E1z2Jo7Gh2+lVPPIJfCzz4kUmwMjmVZxXH/YgmPqsWPzGCg
-c0rXOD8Vcr+il7dw6K/ifhYGTPWqZCZyByWtNfwYsSbX2P8ZDoMbjNx4RWc0PfSvHI3kbWvtILNn
-mrRhyxdviTX/507AMhLn7uzf/5cwdO2NR47rtMNE5qdMf1ZD6Li8tr76g5fmu/vEtpO+GRg+jIG5
-c4gW9JZDnGdzF5DYCW5jrEq2I8QBoa2k5MUCAwEAAaOCAfgwggH0MA8GA1UdEwEB/wQFMAMBAf8w
-ggFZBgNVHSAEggFQMIIBTDCCAUgGCisGAQQBsT4BAAAwggE4MIIBAQYIKwYBBQUHAgIwgfQagfFS
-ZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFu
-Y2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBv
-ZiB1c2UsIGFuZCBjZXJ0aWZpY2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudCwgd2hpY2ggY2FuIGJl
-IGZvdW5kIGF0IGJlVFJVU1RlZCdzIHdlYiBzaXRlLCBodHRwczovL3d3dy5iZVRSVVNUZWQuY29t
-L3ZhdWx0L3Rlcm1zMDEGCCsGAQUFBwIBFiVodHRwczovL3d3dy5iZVRSVVNUZWQuY29tL3ZhdWx0
-L3Rlcm1zMDQGA1UdHwQtMCswKaAnoCWkIzAhMRIwEAYDVQQKEwliZVRSVVNUZWQxCzAJBgNVBAYT
-AldXMB0GA1UdDgQWBBQquZtpLjub2M3eKjEENGvKBxirZzAfBgNVHSMEGDAWgBQquZtpLjub2M3e
-KjEENGvKBxirZzAOBgNVHQ8BAf8EBAMCAf4wDQYJKoZIhvcNAQEFBQADggEBAHlh26Nebhax6nZR
-+csVm8tpvuaBa58oH2U+3RGFktToQb9+M70j5/Egv6S0phkBxoyNNXxlpE8JpNbYIxUFE6dDea/b
-ow6be3ga8wSGWsb2jCBHOElQBp1yZzrwmAOtlmdE/D8QDYZN5AA7KXvOOzuZhmElQITcE2K3+spZ
-1gMe1lMBzW1MaFVA4e5rxyoAAEiCswoBw2AqDPeCNe5IhpbkdNQ96gFxugR1QKepfzk5mlWXKWWu
-GVUlBXJH0+gY3Ljpr0NzARJ0o+FcXxVdJPP55PS2Z2cS52QiivalQaYctmBjRYoQtLpGEK5BV2Vs
-PyMQPyEQWbfkQN0mDCP2qq4=
------END CERTIFICATE-----
-
-AddTrust Low-Value Services Root
-================================
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
-cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
-CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
-ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
-54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
-oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
-Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
-GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
-HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
-AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
-HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
-ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
-iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
-mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
-ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-
-AddTrust External Root
-======================
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
-VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
-NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
-cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
-Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
-+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
-Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
-aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
-2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
-7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
-VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
-VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
-j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
-e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
-G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-
-AddTrust Public Services Root
-=============================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
-cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
-BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
-dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
-nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
-d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
-Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
-HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
-A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
-A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
-JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
-+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
-Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
-EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-
-AddTrust Qualified Certificates Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
-cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
-CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
-IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
-64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
-KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
-L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
-wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
-MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
-BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
-azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
-GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
-RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
-iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
------END CERTIFICATE-----
-
-Verisign Time Stamping Authority CA
-===================================
------BEGIN CERTIFICATE-----
-MIIDzTCCAzagAwIBAgIQU2GyYK7bcY6nlLMTM/QHCTANBgkqhkiG9w0BAQUFADCBwTELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTwwOgYDVQQLEzNDbGFzcyAzIFB1YmxpYyBQ
-cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIxOjA4BgNVBAsTMShjKSAxOTk4IFZl
-cmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAsTFlZlcmlTaWdu
-IFRydXN0IE5ldHdvcmswHhcNMDAwOTI2MDAwMDAwWhcNMTAwOTI1MjM1OTU5WjCBpTEXMBUGA1UE
-ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNV
-BAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTAwMSww
-KgYDVQQDEyNWZXJpU2lnbiBUaW1lIFN0YW1waW5nIEF1dGhvcml0eSBDQTCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEA0hmdZ8IAIVlizrQJIkRpivglWtvtDbc2fk7gu5Q+kCWHwmFHKdm9VLhj
-zCx9abQzNvQ3B5rB3UBU/OB4naCTuQk9I1F/RMIUdNsKvsvJMDRAmD7Q1yUQgZS9B0+c1lQn3y6o
-v8uQjI11S7zi6ESHzeZBCiVu6PQkAsVSD27smHUCAwEAAaOB3zCB3DAPBgNVHRMECDAGAQH/AgEA
-MEUGA1UdIAQ+MDwwOgYMYIZIAYb4RQEHFwEDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZl
-cmlzaWduLmNvbS9ycGEwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL2NybC52ZXJpc2lnbi5jb20v
-cGNhMy5jcmwwCwYDVR0PBAQDAgEGMEIGCCsGAQUFBwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRw
-Oi8vb2NzcC52ZXJpc2lnbi5jb20vb2NzcC9zdGF0dXMwDQYJKoZIhvcNAQEFBQADgYEAgnBold+2
-DcIBcBlK0lRWHqzyRUyHuPU163hLBanInTsZIS5wNEqi9YngFXVF5yg3ADQnKeg3S/LvRJdrF1Ea
-w1adPBqK9kpGRjeM+sv1ZFo4aC4cw+9wzrhGBha/937ntag+RaypJXUie28/sJyU58dzq6wf7iWb
-wBbtt8pb8BQ=
------END CERTIFICATE-----
-
-Thawte Time Stamping CA
-=======================
------BEGIN CERTIFICATE-----
-MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG
-A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcg
-Q0EwHhcNOTcwMTAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNV
-BAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEd
-MBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBp
-bmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT6jR7UZztsOYuGA7+4F+o
-J9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQaWt9MevPZQx08EHp5JduQ/vBR5zDWQQD9
-nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzAR
-MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCo
-uqoEiYbC9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQpgCe
-d/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZCayJSdM=
------END CERTIFICATE-----
-
-Entrust.net Global Secure Server CA
-===================================
------BEGIN CERTIFICATE-----
-MIIElTCCA/6gAwIBAgIEOJsRPDANBgkqhkiG9w0BAQQFADCBujEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxPzA9BgNVBAsUNnd3dy5lbnRydXN0Lm5ldC9TU0xfQ1BTIGluY29ycC4gYnkgcmVmLiAobGlt
-aXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UE
-AxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0w
-MDAyMDQxNzIwMDBaFw0yMDAyMDQxNzUwMDBaMIG6MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDE/MD0G
-A1UECxQ2d3d3LmVudHJ1c3QubmV0L1NTTF9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlh
-Yi4pMSUwIwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRy
-dXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3
-DQEBAQUAA4GNADCBiQKBgQDHwV9OcfHO8GCGD9JYf9Mzly0XonUwtZZkJi9ow0SrqHXmAGc0V55l
-xyKbc+bT3QgON1WqJUaBbL3+qPZ1V1eMkGxKwz6LS0MKyRFWmponIpnPVZ5h2QLifLZ8OAfc439P
-mrkDQYC2dWcTC5/oVzbIXQA23mYU2m52H083jIITiQIDAQABo4IBpDCCAaAwEQYJYIZIAYb4QgEB
-BAQDAgAHMIHjBgNVHR8EgdswgdgwgdWggdKggc+kgcwwgckxFDASBgNVBAoTC0VudHJ1c3QubmV0
-MT8wPQYDVQQLFDZ3d3cuZW50cnVzdC5uZXQvU1NMX0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0
-cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxOjA4BgNVBAMT
-MUVudHJ1c3QubmV0IFNlY3VyZSBTZXJ2ZXIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNV
-BAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMDAyMDQxNzIwMDBagQ8yMDIwMDIwNDE3NTAwMFowCwYD
-VR0PBAQDAgEGMB8GA1UdIwQYMBaAFMtswGvjuz7L/CKc/vuLkpyw8m4iMB0GA1UdDgQWBBTLbMBr
-47s+y/winP77i5KcsPJuIjAMBgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4w
-AwIEkDANBgkqhkiG9w0BAQQFAAOBgQBi24GRzsiad0Iv7L0no1MPUBvqTpLwqa+poLpIYcvvyQbv
-H9X07t9WLebKahlzqlO+krNQAraFJnJj2HVQYnUUt7NQGj/KEQALhUVpbbalrlHhStyCP2yMNLJ3
-a9kC9n8O6mUE8c1UyrrJzOCE98g+EZfTYAkYvAX/bIkz8OwVDw==
------END CERTIFICATE-----
-
-Entrust.net Global Secure Personal CA
-=====================================
------BEGIN CERTIFICATE-----
-MIIEgzCCA+ygAwIBAgIEOJ725DANBgkqhkiG9w0BAQQFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9HQ0NBX0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxp
-bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
-BAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMDAyMDcx
-NjE2NDBaFw0yMDAyMDcxNjQ2NDBaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
-d3d3LmVudHJ1c3QubmV0L0dDQ0FfQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
-MCMGA1UECxMcKGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
-ZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-iQKBgQCTdLS25MVL1qFof2LV7PdRV7NySpj10InJrWPNTTVRaoTUrcloeW+46xHbh65cJFET8VQl
-hK8pK5/jgOLZy93GRUk0iJBeAZfv6lOm3fzB3ksqJeTpNfpVBQbliXrqpBFXO/x8PTbNZzVtpKkl
-Wb1m9fkn5JVn1j+SgF7yNH0rhQIDAQABo4IBnjCCAZowEQYJYIZIAYb4QgEBBAQDAgAHMIHdBgNV
-HR8EgdUwgdIwgc+ggcyggcmkgcYwgcMxFDASBgNVBAoTC0VudHJ1c3QubmV0MUAwPgYDVQQLFDd3
-d3cuZW50cnVzdC5uZXQvR0NDQV9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUw
-IwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTMwMQYDVQQDEypFbnRydXN0Lm5l
-dCBDbGllbnQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
-IoAPMjAwMDAyMDcxNjE2NDBagQ8yMDIwMDIwNzE2NDY0MFowCwYDVR0PBAQDAgEGMB8GA1UdIwQY
-MBaAFISLdP3FjcD/J20gN0V8/i3OutN9MB0GA1UdDgQWBBSEi3T9xY3A/ydtIDdFfP4tzrrTfTAM
-BgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQQF
-AAOBgQBObzWAO9GK9Q6nIMstZVXQkvTnhLUGJoMShAusO7JE7r3PQNsgDrpuFOow4DtifH+La3xK
-p9U1PL6oXOpLu5OOgGarDyn9TS2/GpsKkMWr2tGzhtQvJFJcem3G8v7lTRowjJDyutdKPkN+1MhQ
-Gof4T4HHdguEOnKdzmVml64mXg==
------END CERTIFICATE-----
-
-Entrust Root Certification Authority
-====================================
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
-BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
-b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
-A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
-MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
-MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
-Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
-dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
-A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
-Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
-j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
-rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
-MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
-hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
-Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
-v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
-W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
-tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
-
-AOL Time Warner Root Certification Authority 1
-==============================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMxHTAbBgNVBAoT
-FEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNhIE9ubGluZSBJbmMuMTcwNQYD
-VQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAy
-MDUyOTA2MDAwMFoXDTM3MTEyMDE1MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wg
-VGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMu
-QU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U0pPlLYnKhHw/EEMbjIt8
-hFj4JHxIzyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItITuLCxFlpMGK2MKKMCxGZYTVtfu/FsRkG
-IBKOQuHfD5YQUqjPnF+VFNivO3ULMSAfRC+iYkGzuxgh28pxPIzstrkNn+9R7017EvILDOGsQI93
-f7DKeHEMXRZxcKLXwjqFzQ6axOAAsNUl6twr5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQI
-fHNlIAqhBC4aMqiaILGcLCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEAAaNj
-MGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jYPXy+XxIwHwYDVR0j
-BBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUA
-A4IBAQCKIBilvrMvtKaEAEAwKfq0FHNMeUWn9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u
-0FIy2VkyvNp5ctZ7CegCgTXTCt8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77Bf
-WgDrvq2g+EQFZ7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oTLW4jYYehY0KswsuX
-n2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCzvhGbRWeDhhmH05i9CBoWH1iCC+GWaQVL
-juyDUTEH1dSf/1l7qG6Fz9NLqUmwX7A5KGgOc90lmt4S
------END CERTIFICATE-----
-
-AOL Time Warner Root Certification Authority 2
-==============================================
------BEGIN CERTIFICATE-----
-MIIF5jCCA86gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMxHTAbBgNVBAoT
-FEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNhIE9ubGluZSBJbmMuMTcwNQYD
-VQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAy
-MDUyOTA2MDAwMFoXDTM3MDkyODIzNDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wg
-VGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMu
-QU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBALQ3WggWmRToVbEbJGv8x4vmh6mJ7ouZzU9AhqS2TcnZsdw8
-TQ2FTBVsRotSeJ/4I/1n9SQ6aF3Q92RhQVSji6UI0ilbm2BPJoPRYxJWSXakFsKlnUWsi4SVqBax
-7J/qJBrvuVdcmiQhLE0OcR+mrF1FdAOYxFSMFkpBd4aVdQxHAWZg/BXxD+r1FHjHDtdugRxev17n
-OirYlxcwfACtCJ0zr7iZYYCLqJV+FNwSbKTQ2O9ASQI2+W6p1h2WVgSysy0WVoaP2SBXgM1nEG2w
-TPDaRrbqJS5Gr42whTg0ixQmgiusrpkLjhTXUr2eacOGAgvqdnUxCc4zGSGFQ+aJLZ8lN2fxI2rS
-AG2X+Z/nKcrdH9cG6rjJuQkhn8g/BsXS6RJGAE57COtCPStIbp1n3UsC5ETzkxmlJ85per5n0/xQ
-pCyrw2u544BMzwVhSyvcG7mm0tCq9Stz+86QNZ8MUhy/XCFhEVsVS6kkUfykXPcXnbDS+gfpj1bk
-GoxoigTTfFrjnqKhynFbotSg5ymFXQNoKk/SBtc9+cMDLz9l+WceR0DTYw/j1Y75hauXTLPXJuuW
-CpTehTacyH+BCQJJKg71ZDIMgtG6aoIbs0t0EfOMd9afv9w3pKdVBC/UMejTRrkDfNoSTllkt1Ex
-MVCgyhwn2RAurda9EGYrw7AiShJbAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FE9pbQN+nZ8HGEO8txBO1b+pxCAoMB8GA1UdIwQYMBaAFE9pbQN+nZ8HGEO8txBO1b+pxCAoMA4G
-A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAO/Ouyuguh4X7ZVnnrREUpVe8WJ8kEle7
-+z802u6teio0cnAxa8cZmIDJgt43d15Ui47y6mdPyXSEkVYJ1eV6moG2gcKtNuTxVBFT8zRFASbI
-5Rq8NEQh3q0l/HYWdyGQgJhXnU7q7C+qPBR7V8F+GBRn7iTGvboVsNIYvbdVgaxTwOjdaRITQrcC
-tQVBynlQboIOcXKTRuidDV29rs4prWPVVRaAMCf/drr3uNZK49m1+VLQTkCpx+XCMseqdiThawVQ
-68W/ClTluUI8JPu3B5wwn3la5uBAUhX0/Kr0VvlEl4ftDmVyXr4m+02kLQgH3thcoNyBM5kYJRF3
-p+v9WAksmWsbivNSPxpNSGDxoPYzAlOL7SUJuA0t7Zdz7NeWH45gDtoQmy8YJPamTQr5O8t1wswv
-ziRpyQoijlmn94IM19drNZxDAGrElWe6nEXLuA4399xOAU++CrYD062KRffaJ00psUjf5BHklka9
-bAI+1lHIlRcBFanyqqryvy9lG2/QuRqT9Y41xICHPpQvZuTpqP9BnHAqTyo5GJUefvthATxRCC4o
-GKQWDzH9OmwjkyB24f0HhdFbP9IcczLd+rn4jM8Ch3qaluTtT4mNU0OrDhPAARW0eTjb/G49nlG2
-uBOLZ8/5fNkiHfZdxRwBL5joeiQYvITX+txyW/fBOmg=
------END CERTIFICATE-----
-
-beTRUSTed Root CA-Baltimore Implementation
-==========================================
------BEGIN CERTIFICATE-----
-MIIFajCCBFKgAwIBAgIEPLU9RjANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwliZVRSVVNUZWQx
-GzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0Et
-QmFsdGltb3JlIEltcGxlbWVudGF0aW9uMB4XDTAyMDQxMTA3Mzg1MVoXDTIyMDQxMTA3Mzg1MVow
-ZjESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNV
-BAMTKmJlVFJVU1RlZCBSb290IENBLUJhbHRpbW9yZSBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBALx+xDmcjOPWHIb/ymKt4H8wRXqOGrO4x/nRNv8i805qX4QQ
-+2aBw5R5MdKR4XeOGCrDFN5R9U+jK7wYFuK13XneIviCfsuBH/0nLI/6l2Qijvj/YaOcGx6Sj8Co
-Cd8JEey3fTGaGuqDIQY8n7pc/5TqarjDa1U0Tz0yH92BFODEPM2dMPgwqZfT7syj0B9fHBOB1Bir
-lNFjw55/NZKeX0Tq7PQiXLfoPX2k+YmpkbIq2eszh+6l/ePazIjmiSZuxyuC0F6dWdsU7JGDBcNe
-DsYq0ATdcT0gTlgn/FP7eHgZFLL8kFKJOGJgB7Sg7KxrUNb9uShr71ItOrL/8QFArDcCAwEAAaOC
-Ah4wggIaMA8GA1UdEwEB/wQFMAMBAf8wggG1BgNVHSAEggGsMIIBqDCCAaQGDysGAQQBsT4AAAEJ
-KIORMTCCAY8wggFIBggrBgEFBQcCAjCCAToaggE2UmVsaWFuY2Ugb24gb3IgdXNlIG9mIHRoaXMg
-Q2VydGlmaWNhdGUgY3JlYXRlcyBhbiBhY2tub3dsZWRnbWVudCBhbmQgYWNjZXB0YW5jZSBvZiB0
-aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwg
-dGhlIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IGFuZCB0aGUgUmVseWluZyBQYXJ0
-eSBBZ3JlZW1lbnQsIHdoaWNoIGNhbiBiZSBmb3VuZCBhdCB0aGUgYmVUUlVTVGVkIHdlYiBzaXRl
-LCBodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVjdHNfc2VydmljZXMvaW5kZXguaHRtbDBB
-BggrBgEFBQcCARY1aHR0cDovL3d3dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2lu
-ZGV4Lmh0bWwwHQYDVR0OBBYEFEU9w6nR3D8kVpgccxiIav+DR+22MB8GA1UdIwQYMBaAFEU9w6nR
-3D8kVpgccxiIav+DR+22MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEASZK8o+6s
-vfoNyYt5hhwjdrCAWXf82n+0S9/DZEtqTg6t8n1ZdwWtColzsPq8y9yNAIiPpqCy6qxSJ7+hSHyX
-EHu67RMdmgduyzFiEuhjA6p9beP4G3YheBufS0OM00mG9htc9i5gFdPp43t1P9ACg9AYgkHNZTfq
-jjJ+vWuZXTARyNtIVBw74acT02pIk/c9jH8F6M7ziCpjBLjqflh8AXtb4cV97yHgjQ5dUX2xZ/2j
-vTg2xvI4hocalmhgRvsoFEdV4aeADGvi6t9NfJBIoDa9CReJf8Py05yc493EG931t3GzUwWJBtDL
-SoDByFOQtTwxiBdQn8nEDovYqAJjDQ==
------END CERTIFICATE-----
-
-beTRUSTed Root CA - Entrust Implementation
-==========================================
------BEGIN CERTIFICATE-----
-MIIGUTCCBTmgAwIBAgIEPLVPQDANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwliZVRSVVNUZWQx
-GzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0Eg
-LSBFbnRydXN0IEltcGxlbWVudGF0aW9uMB4XDTAyMDQxMTA4MjQyN1oXDTIyMDQxMTA4NTQyN1ow
-ZjESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNV
-BAMTKmJlVFJVU1RlZCBSb290IENBIC0gRW50cnVzdCBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBALr0RAOqEmq1Q+xVkrYwfTVXDNvzDSduTPdQqJtOK2/b9a0c
-S12zqcH+e0TrW6MFDR/FNCswACnxeECypP869AGIF37m1CbTukzqMvtDd5eHI8XbQ6P1KqNRXuE7
-0mVpflUVm3rnafdE4Fe1FehmYA8NA/uCjqPoEXtsvsdjDheT389Lrm5zdeDzqrmkwAkbhepxKYhB
-MvnwKg5sCfJ0a2ZsUhMfGLzUPvfYbiCeyv78IZTuEyhL11xeDGbu6bsPwTSxfwh28z0mcMmLJR1i
-JAzqHHVOwBLkuhMdMCktVjMFu5dZfsZJT4nXLySotohAtWSSU1Yk5KKghbNekLQSM80CAwEAAaOC
-AwUwggMBMIIBtwYDVR0gBIIBrjCCAaowggGmBg8rBgEEAbE+AAACCSiDkTEwggGRMIIBSQYIKwYB
-BQUHAgIwggE7GoIBN1JlbGlhbmNlIG9uIG9yIHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNyZWF0
-ZXMgYW4gYWNrbm93bGVkZ21lbnQgYW5kIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
-ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIHRoZSBDZXJ0aWZpY2F0aW9u
-IFByYWN0aWNlIFN0YXRlbWVudCBhbmQgdGhlIFJlbHlpbmcgUGFydHkgQWdyZWVtZW50LCB3aGlj
-aCBjYW4gYmUgZm91bmQgYXQgdGhlIGJlVFJVU1RlZCB3ZWIgc2l0ZSwgaHR0cHM6Ly93d3cuYmV0
-cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9pbmRleC5odG1sMEIGCCsGAQUFBwIBFjZodHRw
-czovL3d3dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2luZGV4Lmh0bWwwEQYJYIZI
-AYb4QgEBBAQDAgAHMIGJBgNVHR8EgYEwfzB9oHugeaR3MHUxEjAQBgNVBAoTCWJlVFJVU1RlZDEb
-MBkGA1UECxMSYmVUUlVTVGVkIFJvb3QgQ0FzMTMwMQYDVQQDEypiZVRSVVNUZWQgUm9vdCBDQSAt
-IEVudHJ1c3QgSW1wbGVtZW50YXRpb24xDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMjA0
-MTEwODI0MjdagQ8yMDIyMDQxMTA4NTQyN1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFH1w5a44
-iwY/qhwaj/nPJDCqhIQWMB0GA1UdDgQWBBR9cOWuOIsGP6ocGo/5zyQwqoSEFjAMBgNVHRMEBTAD
-AQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEAKrgX
-zh8QlOu4mre5X+za95IkrNySO8cgjfKZ5V04ocI07cUTWVwFtStPYZuR+0H8/NU8TZh2BvWBfevd
-kObRVlTa4y0MnxEylCIBevZsLHRnBMylj44ss0O1lKLQfelifwa+JwGDnjr9iu6YQ0pr17WXOzq/
-T220Y/ozADQuLW2WyXvKmWO6vvT2MKAtmJbpVkQFqUSjYRDrgqFnXbxdJ3Wqiig2KjiS2d2kXgCl
-zMx8KSreKJCrt+G2/30lC0DYqjSjLd4H61/OCt3Kfjp9JsFiaDrmLzfzgYYhxKlkqu9FNtEaZnz4
-6TfW1mG+oq1I59/mdP7TbX3SJdysYlep9w==
------END CERTIFICATE-----
-
-beTRUSTed Root CA - RSA Implementation
-======================================
------BEGIN CERTIFICATE-----
-MIIFaDCCBFCgAwIBAgIQO1nHe81bV569N1KsdrSqGjANBgkqhkiG9w0BAQUFADBiMRIwEAYDVQQK
-EwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEvMC0GA1UEAxMmYmVUUlVT
-VGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRpb24wHhcNMDIwNDExMTExODEzWhcNMjIwNDEy
-MTEwNzI1WjBiMRIwEAYDVQQKEwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENB
-czEvMC0GA1UEAxMmYmVUUlVTVGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRpb24wggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkujQwCY5X0LkGLG9uJIAiv11DpvpPrILnHGhwhRuj
-brWqeNluB0s/6d/16uhUoWGKDi9pdRi3DOUUjXFumLhV/AyV0Jtu4S2I1DpAa5LxmZZk3tv/ePTu
-lh1HiXzUvrmIdyM6CeYEnm2qXtLIvZpOGd+J6lsOfsPktPDgaTuID0GQ+NRxQyTBjyZLO1bp/4xs
-N+lFrYWMU8NghpBKlsmzVLC7F/AcRdnUGxlkVgoZ98zh/4avflherHqQH8koOUV7orbHnB/ahdQh
-hlkwk75TMzf270HPM8ercmsl9fNTGwxMLvF1S++gh/f+ihXQbNXL+WhTuXAVE8L1LvtDNXUtAgMB
-AAGjggIYMIICFDAMBgNVHRMEBTADAQH/MIIBtQYDVR0gBIIBrDCCAagwggGkBg8rBgEEAbE+AAAD
-CSiDkTEwggGPMEEGCCsGAQUFBwIBFjVodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVjdHNf
-c2VydmljZXMvaW5kZXguaHRtbDCCAUgGCCsGAQUFBwICMIIBOhqCATZSZWxpYW5jZSBvbiBvciB1
-c2Ugb2YgdGhpcyBDZXJ0aWZpY2F0ZSBjcmVhdGVzIGFuIGFja25vd2xlZGdtZW50IGFuZCBhY2Nl
-cHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlv
-bnMgb2YgdXNlLCB0aGUgQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1lbnQgYW5kIHRoZSBS
-ZWx5aW5nIFBhcnR5IEFncmVlbWVudCwgd2hpY2ggY2FuIGJlIGZvdW5kIGF0IHRoZSBiZVRSVVNU
-ZWQgd2ViIHNpdGUsIGh0dHA6Ly93d3cuYmV0cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9p
-bmRleC5odG1sMAsGA1UdDwQEAwIBBjAfBgNVHSMEGDAWgBSp7BR++dlDzFMrFK3P9/BZiUHNGTAd
-BgNVHQ4EFgQUqewUfvnZQ8xTKxStz/fwWYlBzRkwDQYJKoZIhvcNAQEFBQADggEBANuXsHXqDMTB
-mMpWBcCorSZIry0g6IHHtt9DwSwddUvUQo3neqh03GZCWYez9Wlt2ames30cMcH1VOJZJEnl7r05
-pmuKmET7m9cqg5c0Lcd9NUwtNLg+DcTsiCevnpL9UGGCqGAHFFPMZRPB9kdEadIxyKbdLrML3kqN
-Wz2rDcI1UqJWN8wyiyiFQpyRQHpwKzg21eFzGh/l+n5f3NacOzDq28BbJ1zTcwfBwvNMm2+fG8oe
-qqg4MwlYsq78B+g23FW6L09A/nq9BqaBwZMifIYRCgZ3SK41ty8ymmFei74pnykkiFY5LKjSq5YD
-WtRIn7lAhAuYaPsBQ9Yb4gmxlxw=
------END CERTIFICATE-----
-
-RSA Security 2048 v3
-====================
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
-ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
-MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
-BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
-Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
-WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
-KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
-+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
-MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
-FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
-v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
-0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
-VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
-nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
-pKnXwiJPZ9d37CAFYd4=
------END CERTIFICATE-----
-
-RSA Security 1024 v3
-====================
------BEGIN CERTIFICATE-----
-MIICXDCCAcWgAwIBAgIQCgEBAQAAAnwAAAALAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
-ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMTAyNCBWMzAeFw0wMTAy
-MjIyMTAxNDlaFw0yNjAyMjIyMDAxNDlaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
-BgNVBAsTFFJTQSBTZWN1cml0eSAxMDI0IFYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDV
-3f5mCc8kPD6ugU5OisRpgFtZO9+5TUzKtS3DJy08rwBCbbwoppbPf9dYrIMKo1W1exeQFYRMiu4m
-mdxY78c4pqqv0I5CyGLXq6yp+0p9v+r+Ek3d/yYtbzZUaMjShFbuklNhCbM/OZuoyZu9zp9+1Blq
-FikYvtc6adwlWzMaUQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAf
-BgNVHSMEGDAWgBTEwBykB5T9zU0B1FTapQxf3q4FWjAdBgNVHQ4EFgQUxMAcpAeU/c1NAdRU2qUM
-X96uBVowDQYJKoZIhvcNAQEFBQADgYEAPy1q4yZDlX2Jl2X7deRyHUZXxGFraZ8SmyzVWujAovBD
-leMf6XbN3Ou8k6BlCsdNT1+nr6JGFLkM88y9am63nd4lQtBU/55oc2PcJOsiv6hy8l4A4Q1OOkNu
-mU4/iXgDmMrzVcydro7BqkWY+o8aoI2II/EVQQ2lRj6RP4vr93E=
------END CERTIFICATE-----
-
-GeoTrust Global CA
-==================
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
-MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
-BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
-8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
-T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
-vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
-AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
-DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
-zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
-d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
-mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
-XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
-Mw==
------END CERTIFICATE-----
-
-GeoTrust Global CA 2
-====================
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
-MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
-NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
-LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
-Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
-HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
-K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
-srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
-ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
-OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
-x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
-H4z1Ir+rzoPz4iIprn2DQKi6bA==
------END CERTIFICATE-----
-
-GeoTrust Universal CA
-=====================
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
-MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
-Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
-JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
-RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
-7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
-8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
-qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
-Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
-Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
-KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
-ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
-XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
-hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
-qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
-oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
-xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
-KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
-DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
-xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
-p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
-P/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
-
-GeoTrust Universal CA 2
-=======================
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
-MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
-SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
-DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
-j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
-JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
-QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
-WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
-20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
-ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
-SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
-8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
-+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
-BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
-4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
-mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
-A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
-Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
-pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
-FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
-gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
-X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
-
-UTN-USER First-Network Applications
-===================================
------BEGIN CERTIFICATE-----
-MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUFADCBozELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzAp
-BgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0ODM5
-WhcNMTkwNzA5MTg1NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5T
-YWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBB
-cHBsaWNhdGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+5Gh5DZVhawGNFug
-mliy+LUPBXeDrjKxdpJo7CNKyXY/45y2N3kDuatpjQclthln5LAbGHNhSuh+zdMvZOOmfAz6F4Cj
-DUeJT1FxL+78P/m4FoCHiZMlIJpDgmkkdihZNaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXu
-Ozr0hAReYFmnjDRy7rh4xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1axwi
-P8vv/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6gyN7igEL66S/ozjIE
-j3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8w
-HQYDVR0OBBYEFPqGydvguul49Uuo1hXf8NPhahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9j
-cmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0G
-CSqGSIb3DQEBBQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXhi6r/fWRRzwr/vH3Y
-IWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUqf9FuVSTiuwL7MT++6LzsQCv4AdRWOOTK
-RIK1YSAhZ2X28AvnNPilwpyjXEAfhZOVBt5P1CeptqX8Fs1zMT+4ZSfP1FMa8Kxun08FDAOBp4Qp
-xFq9ZFdyrTvPNximmMatBrTcCKME1SmklpoSZ0qMYEWd8SOasACcaLWYUNPvji6SZbFIPiG+FTAq
-DbUMo2s/rn9X9R+WfN9v3YIwLGUbQErNaLly7HF27FSOH4UMAWr6pjisH8SE
------END CERTIFICATE-----
-
-America Online Root Certification Authority 1
-=============================================
------BEGIN CERTIFICATE-----
-MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG
-A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
-T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG
-v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z
-DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh
-sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP
-8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T
-AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z
-o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf
-GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF
-VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft
-3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g
-Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
-sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
------END CERTIFICATE-----
-
-America Online Root Certification Authority 2
-=============================================
------BEGIN CERTIFICATE-----
-MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG
-A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
-T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en
-fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8
-f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO
-qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN
-RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0
-gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn
-6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid
-FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6
-Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj
-B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op
-aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
-AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY
-T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p
-+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg
-JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy
-zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO
-ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh
-1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf
-GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff
-Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP
-cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk=
------END CERTIFICATE-----
-
-Visa eCommerce Root
-===================
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
-EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
-QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
-WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
-VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
-F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
-RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
-TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
-/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
-GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
-MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
-CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
-YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
-zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
-YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-
-TC TrustCenter, Germany, Class 2 CA
-===================================
------BEGIN CERTIFICATE-----
-MIIDXDCCAsWgAwIBAgICA+owDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRFMRAwDgYDVQQI
-EwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFUQyBUcnVzdENlbnRlciBmb3Ig
-U2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBD
-bGFzcyAyIENBMSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05
-ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFt
-YnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3Vy
-aXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3Mg
-MiBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZI
-hvcNAQEBBQADgY0AMIGJAoGBANo46O0yAClxgwENv4wB3NrGrTmkqYov1YtcaF9QxmL1Zr3KkSLs
-qh1R1z2zUbKDTl3LSbDwTFXlay3HhQswHJJOgtTKAu33b77c4OMUuAVT8pr0VotanoWT0bSCVq5N
-u6hLVxa8/vhYnvgpjbB7zXjJT6yLZwzxnPv8V5tXXE8NAgMBAAGjazBpMA8GA1UdEwEB/wQFMAMB
-Af8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRydXN0Y2VudGVy
-LmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3DQEBBAUAA4GBAIRS+yjf
-/x91AbwBvgRWl2p0QiQxg/lGsQaKic+WLDO/jLVfenKhhQbOhvgFjuj5Jcrag4wGrOs2bYWRNAQ2
-9ELw+HkuCkhcq8xRT3h2oNmsGb0q0WkEKJHKNhAngFdb0lz1wlurZIFjdFH0l7/NEij3TWZ/p/Ac
-ASZ4smZHcFFk
------END CERTIFICATE-----
-
-TC TrustCenter, Germany, Class 3 CA
-===================================
------BEGIN CERTIFICATE-----
-MIIDXDCCAsWgAwIBAgICA+swDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRFMRAwDgYDVQQI
-EwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFUQyBUcnVzdENlbnRlciBmb3Ig
-U2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBD
-bGFzcyAzIENBMSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05
-ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFt
-YnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3Vy
-aXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3Mg
-MyBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZI
-hvcNAQEBBQADgY0AMIGJAoGBALa0wTUFLg2N7KBAahwOJ6ZQkmtQGwfeLud2zODa/ISoXoxjaitN
-2U4CdhHBC/KNecoAtvGwDtf7pBc9r6tpepYnv68zoZoqWarEtTcI8hKlMbZD9TKWcSgoq40oht+7
-7uMMfTDWw1Krj10nnGvAo+cFa1dJRLNu6mTP0o56UHd3AgMBAAGjazBpMA8GA1UdEwEB/wQFMAMB
-Af8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRydXN0Y2VudGVy
-LmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3DQEBBAUAA4GBABY9xs3B
-u4VxhUafPiCPUSiZ7C1FIWMjWwS7TJC4iJIETb19AaM/9uzO8d7+feXhPrvGq14L3T2WxMup1Pkm
-5gZOngylerpuw3yCGdHHsbHD2w2Om0B8NwvxXej9H5CIpQ5ON2QhqE6NtJ/x3kit1VYYUimLRzQS
-CdS7kjXvD9s0
------END CERTIFICATE-----
-
-Certum Root CA
-==============
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
-ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
-Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
-by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
-wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
-kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
-89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
-Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
-NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
-hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
-GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
-GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
-0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
-qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
-
-Comodo AAA Services root
-========================
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
-MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
-c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
-BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
-C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
-i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
-Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
-Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
-Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
-BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
-cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
-LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
-7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
-8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
-12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-
-Comodo Secure Services root
-===========================
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
-MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
-Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
-BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
-9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
-rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
-oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
-p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
-FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
-gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
-YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
-aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
-4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
-DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
-pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
-RR3B7Hzs/Sk=
------END CERTIFICATE-----
-
-Comodo Trusted Services root
-============================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
-MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
-bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
-IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
-3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
-/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
-juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
-ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
-DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
-ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
-cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
-uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
-BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
-R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
-9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
-
-IPS Chained CAs root
-====================
------BEGIN CERTIFICATE-----
-MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARwxCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjEzMDEGA1UECxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MTMwMQYDVQQDEypJUFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczAeFw0wMTEyMjkwMDUzNThaFw0yNTEy
-MjcwMDUzNThaMIIBHDELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJ
-QmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwu
-MSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMTMwMQYDVQQLEypJ
-UFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMzAxBgNVBAMTKklQUyBD
-QSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBz
-QG1haWwuaXBzLmVzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcVpJJspQgvJhPUOtopKdJ
-C7/SMejHT8KGC/po/UNaivNgkjWZOLtNA1IhW/A3mTXhQSCBhYEFcYGdtJUZqV92NC5jNzVXjrQf
-Qj8VXOF6wV8TGDIxya2+o8eDZh65nAQTy2nBBt4wBrszo7Uf8I9vzv+W6FS+ZoCua9tBhDaiPQID
-AQABo4IEQzCCBD8wHQYDVR0OBBYEFKGtMbH5PuEXpsirNPxShwkeYlJBMIIBTgYDVR0jBIIBRTCC
-AUGAFKGtMbH5PuEXpsirNPxShwkeYlJBoYIBJKSCASAwggEcMQswCQYDVQQGEwJFUzESMBAGA1UE
-CBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBw
-dWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4g
-IEItNjA5Mjk0NTIxMzAxBgNVBAsTKklQUyBDQSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTEzMDEGA1UEAxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNV
-HQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUF
-BwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGC
-NwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1Ud
-EgQTMBGBD2lwc0BtYWlsLmlwcy5lczBCBglghkgBhvhCAQ0ENRYzQ2hhaW5lZCBDQSBDZXJ0aWZp
-Y2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8v
-d3d3Lmlwcy5lcy9pcHMyMDAyLzA3BglghkgBhvhCAQQEKhYoaHR0cDovL3d3dy5pcHMuZXMvaXBz
-MjAwMi9pcHMyMDAyQ0FDLmNybDA8BglghkgBhvhCAQMELxYtaHR0cDovL3d3dy5pcHMuZXMvaXBz
-MjAwMi9yZXZvY2F0aW9uQ0FDLmh0bWw/MDkGCWCGSAGG+EIBBwQsFipodHRwOi8vd3d3Lmlwcy5l
-cy9pcHMyMDAyL3JlbmV3YWxDQUMuaHRtbD8wNwYJYIZIAYb4QgEIBCoWKGh0dHA6Ly93d3cuaXBz
-LmVzL2lwczIwMDIvcG9saWN5Q0FDLmh0bWwwbQYDVR0fBGYwZDAuoCygKoYoaHR0cDovL3d3dy5p
-cHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0FDLmNybDAyoDCgLoYsaHR0cDovL3d3d2JhY2suaXBzLmVz
-L2lwczIwMDIvaXBzMjAwMkNBQy5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw
-Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAERyMJ1WWKJBGyi3leGmGpVfp3hAK+/b
-lkr8THFj2XOVvQLiogbHvpcqk4A0hgP63Ng9HgfNHnNDJGD1HWHc3JagvPsd4+cSACczAsDAK1M9
-2GsDgaPb1pOVIO/Tln4mkImcJpvNb2ar7QMiRDjMWb2f2/YHogF/JsRj9SVCXmK9
------END CERTIFICATE-----
-
-IPS CLASE1 root
-===============
------BEGIN CERTIFICATE-----
-MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqG
-SIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAwNTkzOFoXDTI1MTIyNzAwNTkzOFow
-ggESMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx
-LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoU
-Imlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAsBgNVBAsTJUlQUyBDQSBDTEFT
-RTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLjAsBgNVBAMTJUlQUyBDQSBDTEFTRTEgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkq
-hkiG9w0BAQEFAAOBjQAwgYkCgYEA4FEnpwvdr9G5Q1uCN0VWcu+atsIS7ywSzHb5BlmvXSHU0lq4
-oNTzav3KaY1mSPd05u42veiWkXWmcSjK5yISMmmwPh5r9FBSYmL9Yzt9fuzuOOpi9GyocY3h6YvJ
-P8a1zZRCb92CRTzo3wno7wpVqVZHYUxJZHMQKD/Kvwn/xi8CAwEAAaOCBEowggRGMB0GA1UdDgQW
-BBTrsxl588GlHKzcuh9morKbadB4CDCCAUQGA1UdIwSCATswggE3gBTrsxl588GlHKzcuh9morKb
-adB4CKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UE
-BxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBz
-LmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQL
-EyVJUFMgQ0EgQ0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMgQ0Eg
-Q0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p
-cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMB
-BggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB
-BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0R
-BBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBBBglghkgB
-hvhCAQ0ENBYyQ0xBU0UxIENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5l
-cy8wKQYJYIZIAYb4QgECBBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIB
-BAQtFitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTEuY3JsMD8GCWCGSAGG
-+EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25DTEFTRTEuaHRtbD8w
-PAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMS5o
-dG1sPzA6BglghkgBhvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT
-RTEuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIw
-MDJDTEFTRTEuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAy
-Q0xBU0UxLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5l
-cy8wDQYJKoZIhvcNAQEFBQADgYEAK9Dr/drIyllq2tPMMi7JVBuKYn4VLenZMdMu9Ccj/1urxUq2
-ckCuU3T0vAW0xtnIyXf7t/k0f3gA+Nak5FI/LEpjV4F1Wo7ojPsCwJTGKbqz3Bzosq/SLmJbGqmO
-DszFV0VRFOlOHIilkfSj945RyKm+hjM+5i9Ibq9UkE6tsSU=
------END CERTIFICATE-----
-
-IPS CLASE3 root
-===============
------BEGIN CERTIFICATE-----
-MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqG
-SIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAxMDE0NFoXDTI1MTIyNzAxMDE0NFow
-ggESMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx
-LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoU
-Imlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAsBgNVBAsTJUlQUyBDQSBDTEFT
-RTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLjAsBgNVBAMTJUlQUyBDQSBDTEFTRTMgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkq
-hkiG9w0BAQEFAAOBjQAwgYkCgYEAqxf+DrDGaBtT8FK+n/ra+osTBLsBjzLZH49NzjaY2uQARIwo
-2BNEKqRrThckQpzTiKRBgtYj+4vJhuW5qYIF3PHeH+AMmVWY8jjsbJ0gA8DvqqPGZARRLXgNo9Ko
-OtYkTOmWehisEyMiG3zoMRGzXwmqMHBxRiVrSXGAK5UBsh8CAwEAAaOCBEowggRGMB0GA1UdDgQW
-BBS4k/8uy9wsjqLnev42USGjmFsMNDCCAUQGA1UdIwSCATswggE3gBS4k/8uy9wsjqLnev42USGj
-mFsMNKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UE
-BxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBz
-LmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQL
-EyVJUFMgQ0EgQ0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMgQ0Eg
-Q0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p
-cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMB
-BggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB
-BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0R
-BBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBBBglghkgB
-hvhCAQ0ENBYyQ0xBU0UzIENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5l
-cy8wKQYJYIZIAYb4QgECBBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIB
-BAQtFitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTMuY3JsMD8GCWCGSAGG
-+EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25DTEFTRTMuaHRtbD8w
-PAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMy5o
-dG1sPzA6BglghkgBhvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT
-RTMuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIw
-MDJDTEFTRTMuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAy
-Q0xBU0UzLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5l
-cy8wDQYJKoZIhvcNAQEFBQADgYEAF2VcmZVDAyevJuXr0LMXI/dDqsfwfewPxqmurpYPdikc4gYt
-fibFPPqhwYHOU7BC0ZdXGhd+pFFhxu7pXu8Fuuu9D6eSb9ijBmgpjnn1/7/5p6/ksc7C0YBCJwUE
-NPjDfxZ4IwwHJPJGR607VNCv1TGyr33I6unUVtkOE7LFRVA=
------END CERTIFICATE-----
-
-IPS CLASEA1 root
-================
------BEGIN CERTIFICATE-----
-MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ
-KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcNMDExMjI5MDEwNTMyWhcNMjUxMjI3MDEwNTMy
-WjCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9u
-YTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UE
-ChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENM
-QVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8w
-DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALsw19zQVL01Tp/FTILq0VA8R5j8m2mdd81u4D/u6zJf
-X5/S0HnllXNEITLgCtud186Nq1KLK3jgm1t99P1tCeWu4WwdByOgF9H5fahGRpEiqLJpxq339fWU
-oTCUvQDMRH/uxJ7JweaPCjbB/SQ9AaD1e+J8eGZDi09Z8pvZ+kmzAgMBAAGjggRTMIIETzAdBgNV
-HQ4EFgQUZyaW56G/2LUDnf473P7yiuYV3TAwggFGBgNVHSMEggE9MIIBOYAUZyaW56G/2LUDnf47
-3P7yiuYV3TChggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQ
-BgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2Vydmlj
-ZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0G
-A1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQ
-UyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA
-bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsG
-AQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIB
-FQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw
-GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBC
-BglghkgBhvhCAQ0ENRYzQ0xBU0VBMSBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3
-dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7Bglg
-hkgBhvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMS5jcmww
-QAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmV2b2NhdGlvbkNMQVNF
-QTEuaHRtbD8wPQYJYIZIAYb4QgEHBDAWLmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdh
-bENMQVNFQTEuaHRtbD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv
-cG9saWN5Q0xBU0VBMS5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93d3cuaXBzLmVzL2lw
-czIwMDIvaXBzMjAwMkNMQVNFQTEuY3JsMDagNKAyhjBodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBz
-MjAwMi9pcHMyMDAyQ0xBU0VBMS5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw
-Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAH66iqyAAIQVCtWYUQxkxZwCWINmyq0e
-B81+atqAB98DNEock8RLWCA1NnHtogo1EqWmZaeFaQoO42Hu6r4okzPV7Oi+xNtff6j5YzHIa5bi
-KcJboOeXNp13XjFr/tOn2yrb25aLH2betgPAK7N41lUH5Y85UN4HI3LmvSAUS7SG
------END CERTIFICATE-----
-
-IPS CLASEA3 root
-================
------BEGIN CERTIFICATE-----
-MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ
-KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcNMDExMjI5MDEwNzUwWhcNMjUxMjI3MDEwNzUw
-WjCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9u
-YTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UE
-ChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENM
-QVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8w
-DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAO6AAPYaZC6tasiDsYun7o/ZttvNG7uGBiJ2MwwSbUhW
-YdLcgiViL5/SaTBlA0IjWLxH3GvWdV0XPOH/8lhneaDBgbHUVqLyjRGZ/fZ98cfEXgIqmuJKtROK
-AP2Md4bm15T1IHUuDky/dMQ/gT6DtKM4Ninn6Cr1jIhBqoCm42zvAgMBAAGjggRTMIIETzAdBgNV
-HQ4EFgQUHp9XUEe2YZM50yz82l09BXW3mQIwggFGBgNVHSMEggE9MIIBOYAUHp9XUEe2YZM50yz8
-2l09BXW3mQKhggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQ
-BgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2Vydmlj
-ZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0G
-A1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQ
-UyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA
-bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsG
-AQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIB
-FQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw
-GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBC
-BglghkgBhvhCAQ0ENRYzQ0xBU0VBMyBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3
-dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7Bglg
-hkgBhvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMy5jcmww
-QAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmV2b2NhdGlvbkNMQVNF
-QTMuaHRtbD8wPQYJYIZIAYb4QgEHBDAWLmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdh
-bENMQVNFQTMuaHRtbD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv
-cG9saWN5Q0xBU0VBMy5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93d3cuaXBzLmVzL2lw
-czIwMDIvaXBzMjAwMkNMQVNFQTMuY3JsMDagNKAyhjBodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBz
-MjAwMi9pcHMyMDAyQ0xBU0VBMy5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw
-Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAEo9IEca2on0eisxeewBwMwB9dbB/MjD
-81ACUZBYKp/nNQlbMAqBACVHr9QPDp5gJqiVp4MI3y2s6Q73nMify5NF8bpqxmdRSmlPa/59Cy9S
-KcJQrSRE7SOzSMtEQMEDlQwKeAYSAfWRMS1Jjbs/RU4s4OjNtckUFQzjB4ObJnXv
------END CERTIFICATE-----
-
-IPS Servidores root
-===================
------BEGIN CERTIFICATE-----
-MIICtzCCAiACAQAwDQYJKoZIhvcNAQEEBQAwgaMxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJD
-RUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcGA1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYG
-A1UECxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQDEw5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3
-DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTk4MDEwMTIzMjEwN1oXDTA5MTIyOTIzMjEwN1owgaMx
-CzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJDRUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcG
-A1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYGA1UECxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQD
-Ew5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMIGfMA0GCSqG
-SIb3DQEBAQUAA4GNADCBiQKBgQCsT1J0nznqjtwlxLyYXZhkJAk8IbPMGbWOlI6H0fg3PqHILVik
-gDVboXVsHUUMH2Fjal5vmwpMwci4YSM1gf/+rHhwLWjhOgeYlQJU3c0jt4BT18g3RXIGJBK6E2Eh
-im51KODFDzT9NthFf+G4Nu+z4cYgjui0OLzhPvYR3oydAQIDAQABMA0GCSqGSIb3DQEBBAUAA4GB
-ACzzw3lYJN7GO9HgQmm47mSzPWIBubOE3yN93ZjPEKn+ANgilgUTB1RXxafey9m4iEL2mdsUdx+2
-/iU94aI+A6mB0i1sR/WWRowiq8jMDQ6XXotBtDvECgZAHd1G9AHduoIuPD14cJ58GNCr+Lh3B0Zx
-8coLY1xq+XKU1QFPoNtC
------END CERTIFICATE-----
-
-IPS Timestamping root
-=====================
------BEGIN CERTIFICATE-----
-MIIIODCCB6GgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCAR4xCzAJBgNVBAYTAkVTMRIwEAYDVQQI
-EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1
-Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg
-Qi02MDkyOTQ1MjE0MDIGA1UECxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTE0MDIGA1UEAxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAxMTAxOFoXDTI1
-MTIyNzAxMTAxOFowggEeMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQH
-EwlCYXJjZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMu
-bC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxNDAyBgNVBAsT
-K0lQUyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxNDAyBgNVBAMTK0lQ
-UyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEW
-D2lwc0BtYWlsLmlwcy5lczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLjuVqWajOY2ycJi
-oGaBjRrVetJznw6EZLqVtJCneK/K/lRhW86yIFcBrkSSQxA4Efdo/BdApWgnMjvEp+ZCccWZ73b/
-K5Uk9UmSGGjKALWkWi9uy9YbLA1UZ2t6KaFYq6JaANZbuxjC3/YeE1Z2m6Vo4pjOxgOKNNtMg0Gm
-qaMCAwEAAaOCBIAwggR8MB0GA1UdDgQWBBSL0BBQCYHynQnVDmB4AyKiP8jKZjCCAVAGA1UdIwSC
-AUcwggFDgBSL0BBQCYHynQnVDmB4AyKiP8jKZqGCASakggEiMIIBHjELMAkGA1UEBhMCRVMxEjAQ
-BgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJu
-ZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5J
-LkYuICBCLTYwOTI5NDUyMTQwMgYDVQQLEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmljYXRp
-b24gQXV0aG9yaXR5MTQwMgYDVQQDEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB
-/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMG
-CCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK
-KwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVz
-MBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBHBglghkgBhvhCAQ0EOhY4VGltZXN0YW1waW5n
-IENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgEC
-BBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMEAGCWCGSAGG+EIBBAQzFjFodHRwOi8vd3d3
-Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJUaW1lc3RhbXBpbmcuY3JsMEUGCWCGSAGG+EIBAwQ4FjZo
-dHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25UaW1lc3RhbXBpbmcuaHRtbD8wQgYJ
-YIZIAYb4QgEHBDUWM2h0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbFRpbWVzdGFtcGlu
-Zy5odG1sPzBABglghkgBhvhCAQgEMxYxaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lU
-aW1lc3RhbXBpbmcuaHRtbDB/BgNVHR8EeDB2MDegNaAzhjFodHRwOi8vd3d3Lmlwcy5lcy9pcHMy
-MDAyL2lwczIwMDJUaW1lc3RhbXBpbmcuY3JsMDugOaA3hjVodHRwOi8vd3d3YmFjay5pcHMuZXMv
-aXBzMjAwMi9pcHMyMDAyVGltZXN0YW1waW5nLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUH
-MAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZIhvcNAQEFBQADgYEAZbrBzAAalZHK6Ww6vzoe
-FAh8+4Pua2JR0zORtWB5fgTYXXk36MNbsMRnLWhasl8OCvrNPzpFoeo2zyYepxEoxZSPhExTCMWT
-s/zif/WN87GphV+I3pGW7hdbrqXqcGV4LCFkAZXOzkw+UPS2Wctjjba9GNSHSl/c7+lW8AoM6HU=
------END CERTIFICATE-----
-
-QuoVadis Root CA
-================
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
-ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
-MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
-cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
-EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
-J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
-F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
-YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
-AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
-PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
-ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
-MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
-YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
-ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
-Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
-BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
-FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
-tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
-fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
-LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
-gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
-5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
-5nrQNiOKSnQ2+Q==
------END CERTIFICATE-----
-
-QuoVadis Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
-ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
-XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
-lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
-lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
-lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
-66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
-wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
-D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
-BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
-J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
-DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
-a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
-ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
-Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
-UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
-VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
-+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
-IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
-WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
-f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
-4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
-VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
------END CERTIFICATE-----
-
-QuoVadis Root CA 3
-==================
------BEGIN CERTIFICATE-----
-MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
-OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
-DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
-KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
-DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
-BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
-p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
-nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
-MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
-Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
-uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
-BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
-YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
-aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
-BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
-VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
-ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
-AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
-qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
-hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
-POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
-Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
-8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
-bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
-g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
-vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
-qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
------END CERTIFICATE-----
-
-Security Communication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
-8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
-DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
-5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
-DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
-JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
-0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
-mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
-s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
-6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
-FL39vmwLAw==
------END CERTIFICATE-----
-
-Sonera Class 1 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
-U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAxMDQwNjEwNDkxM1oXDTIxMDQw
-NjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
-IENsYXNzMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H88
-7dF+2rDNbS82rDTG29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9
-EJUkoVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk3w0LBUXl
-0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBLqdReLjVQCfOAl/QMF645
-2F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIINnvmLVz5MxxftLItyM19yejhW1ebZrgUa
-HXVFsculJRwSVzb9IjcCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZT
-iFIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE9
-28Jj2VuXZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0HDjxV
-yhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VOTzF2nBBhjrZTOqMR
-vq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2UvkVrCqIexVmiUefkl98HVrhq4uz2P
-qYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4wzMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9Z
-IRlXvVWa
------END CERTIFICATE-----
-
-Sonera Class 2 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
-U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
-NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
-IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
-/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
-dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
-f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
-tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
-nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
-XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
-0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
-cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
-Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
-EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
-llpwrN9M
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA
-=============================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
-ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
-HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
-bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
-vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
-jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
-C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
-vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
-22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
-HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
-dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
-BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
-EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
-MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
-nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
-
-TDC Internet Root CA
-====================
------BEGIN CERTIFICATE-----
-MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE
-ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx
-NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu
-ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j
-xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL
-znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc
-5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6
-otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI
-AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM
-VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM
-MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC
-AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe
-UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G
-CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m
-gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+
-2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb
-O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU
-Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l
------END CERTIFICATE-----
-
-TDC OCES Root CA
-================
------BEGIN CERTIFICATE-----
-MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQGEwJESzEMMAoGA1UE
-ChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0wMzAyMTEwODM5MzBaFw0zNzAyMTEwOTA5
-MzBaMDExCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSjhFuH
-nEz9pPPEXyG9VhDr2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8z3sM8W9Hpg1DTeLpHTk0
-zY0s2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJHhNlktxmW/OwZ5LKXJk5KTMuPJItUGBxIYXvV
-iGjaXbXqzRowwYCDdlCqT9HU3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKjdGqPqcNiKXEx5TukYBde
-dObaE+3pHx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+rTpPGWOmlgtt3xDqZsXKVSQTwtyv6e1mO
-3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgewGA1UdIASB
-5DCB4TCB3gYIKoFQgSkBAQEwgdEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5k
-ay9yZXBvc2l0b3J5MIGdBggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRlciBm
-cmEgZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4xLiBDZXJ0aWZp
-Y2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4x
-LjARBglghkgBhvhCAQEEBAMCAAcwgYEGA1UdHwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEM
-MAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYm
-aHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0QBCQwIoAPMjAwMzAy
-MTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0jBBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647
-+RIwHQYDVR0OBBYEFGC1hexWZH4SGSdnHVAVS3OuO/kSMB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6
-NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEACromJkbTc6gJ82sLMJn9iuFXehHTuJTXCRBuo7E4
-A9G28kNBKWKnctj7fAXmMXAnVBhOinxO5dHKjHiIzxvTkIvmI/gLDjNDfZziChmPyQE+dF10yYsc
-A+UYyAFMP8uXBV2YcaaYb7Z8vTd/vuGTJW1v8AqtFxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9
-AOoBmbgGglGBTvH1tJFUuSN6AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQYqbsFbS1
-AoLbrIyigfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9BKNDLdr8C2LqL19iUw==
------END CERTIFICATE-----
-
-UTN DATACorp SGC Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
-BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
-MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
-HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
-dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
-raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
-wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
-9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
-33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
-DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
-BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
-LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
-DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
-I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
-EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
-DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
-UTN USERFirst Email Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0
-BgNVBAMTLVVUTi1VU0VSRmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05
-OTA3MDkxNzI4NTBaFw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQx
-FzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsx
-ITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJz
-dC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIx
-B8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8
-om+rWV6lL8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHG
-TPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZUOt4KpLoDd7Nl
-yP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws6wIDAQABo4G5MIG2MAsGA1UdDwQE
-AwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNV
-HR8EUTBPME2gS6BJhkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGll
-bnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH
-AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u7mFVbwQ+zzne
-xRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0xtcgBEXkzYABurorbs6q15L+
-5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQrfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarV
-NZ1yQAOJujEdxRBoUp7fooXFXAimeOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZ
-w7JHpsIyYdfHb0gkUSeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ=
------END CERTIFICATE-----
-
-UTN USERFirst Hardware Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
-BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
-OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
-eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
-ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
-wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
-tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
-i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
-Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
-gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
-lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
-UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
-BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
-XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
-lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
-iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
-nfhmqA==
------END CERTIFICATE-----
-
-UTN USERFirst Object Root CA
-============================
------BEGIN CERTIFICATE-----
-MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAb
-BgNVBAMTFFVUTi1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4NDAz
-NlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkx
-HjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2Vy
-dHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r5596Uj71VR
-loTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX65OeQ
-w5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vu
-lBe3/IW+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehbkkj7
-RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEAAaOBrzCBrDAL
-BgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU2u1kdBScFDyr3ZmpvVsoTYs8
-ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmly
-c3QtT2JqZWN0LmNybDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQw
-DQYJKoZIhvcNAQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXFwfNfLEzIR1pp6ujw
-NTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T7/yxSPlrJSUtUbYsbUXBmMiKVl0+7kNO
-PmsnjtA6S4ULX9Ptaqd1y9Fahy85dRNacrACgZ++8A+EVCBibGnU4U3GDZlDAQ0Slox4nb9QorFE
-qmrPF3rPbw/U+CRVX/A0FklmPlBGyWNxODFiuGK581OtbLUrohKqGU8J2l7nk8aOFAj+8DCAGKCG
-hU3IfdeLA/5u1fedFqySLKAj5ZyRUh+U3xeUc8OzwcFxBSAAeL0TUh2oPs0AH8g=
------END CERTIFICATE-----
-
-Camerfirma Chambers of Commerce Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
-NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
-cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
-MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
-AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
-xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
-NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
-DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
-d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
-EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
-cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
-AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
-bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
-VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
-fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
-L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
-UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
-ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
-erfutGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
-
-Camerfirma Global Chambersign Root
-==================================
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
-NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
-YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
-MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
-ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
-1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
-by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
-6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
-8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
-BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
-aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
-Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
-aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
-ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
-PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
-gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
-PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
-IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
-t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
-
-NetLock Qualified (Class QA) Root
-=================================
------BEGIN CERTIFICATE-----
-MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQDEzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVn
-eXpvaSAoQ2xhc3MgUUEpIFRhbnVzaXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0
-bG9jay5odTAeFw0wMzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTER
-MA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNhZ2kgS2Z0
-LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5ldExvY2sgTWlub3NpdGV0
-dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZhbnlraWFkbzEeMBwGCSqGSIb3DQEJARYP
-aW5mb0BuZXRsb2NrLmh1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRV
-CacbvWy5FPSKAtt2/GoqeKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e
-8ia6AFQer7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO53Lhb
-m+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWdvLrqOU+L73Sa58XQ
-0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0lmT+1fMptsK6ZmfoIYOcZwvK9UdPM
-0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4ICwDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
-HQ8BAf8EBAMCAQYwggJ1BglghkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2
-YW55IGEgTmV0TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh
-biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQgZWxla3Ryb25p
-a3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywgdmFsYW1pbnQgZWxmb2dhZGFz
-YW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwg
-YXogQWx0YWxhbm9zIFN6ZXJ6b2Rlc2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kg
-ZWxqYXJhcyBtZWd0ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczov
-L3d3dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0BuZXRsb2Nr
-Lm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0
-aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMg
-YXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0
-IGluZm9AbmV0bG9jay5uZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3
-DQEBBQUAA4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQMznN
-wNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+NFAwLvt/MpqNPfMg
-W/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCRVCHnpgu0mfVRQdzNo0ci2ccBgcTc
-R08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR
-5qq5aKrN9p2QdRLqOBrKROi3macqaJVmlaut74nLYKkGEsaUR+ko
------END CERTIFICATE-----
-
-NetLock Notary (Class A) Root
-=============================
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
-EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
-ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
-DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
-EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
-VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
-cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
-D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
-z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
-/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
-tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
-4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
-A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
-Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
-bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
-LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
-ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
-IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
-IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
-b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
-bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
-Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
-bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
-ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
-ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
-CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
-KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
-8CgHrTwXZoi1/baI
------END CERTIFICATE-----
-
-NetLock Business (Class B) Root
-===============================
------BEGIN CERTIFICATE-----
-MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg
-VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD
-VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv
-bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg
-VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S
-o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr
-1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
-HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ
-RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh
-dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0
-ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv
-c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg
-YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh
-c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz
-Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA
-bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl
-IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2
-YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj
-cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM
-43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR
-stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI
------END CERTIFICATE-----
-
-NetLock Express (Class C) Root
-==============================
------BEGIN CERTIFICATE-----
-MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD
-KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ
-BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j
-ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB
-jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z
-W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63
-euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw
-DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN
-RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn
-YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB
-IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i
-aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0
-ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs
-ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo
-dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y
-emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k
-IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ
-UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg
-YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2
-xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW
-gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A==
------END CERTIFICATE-----
-
-XRamp Global CA Root
-====================
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
-BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
-dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
-HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
-U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
-IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
-foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
-zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
-AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
-xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
-oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
-AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
-/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
-nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
-8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
-
-Go Daddy Class 2 CA
-===================
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
-VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
-A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
-RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
-ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
-2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
-qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
-YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
-vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
-BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
-atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
-MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
-PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
-I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
-Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
-vZ8=
------END CERTIFICATE-----
-
-Starfield Class 2 CA
-====================
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
-U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
-MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
-A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
-SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
-bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
-JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
-epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
-F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
-MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
-hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
-bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
-afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
-PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
-KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
-QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
-
-StartCom Ltd.
-=============
------BEGIN CERTIFICATE-----
-MIIFFjCCBH+gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBsDELMAkGA1UEBhMCSUwxDzANBgNVBAgT
-BklzcmFlbDEOMAwGA1UEBxMFRWlsYXQxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xGjAYBgNVBAsT
-EUNBIEF1dGhvcml0eSBEZXAuMSkwJwYDVQQDEyBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTEhMB8GCSqGSIb3DQEJARYSYWRtaW5Ac3RhcnRjb20ub3JnMB4XDTA1MDMxNzE3Mzc0OFoX
-DTM1MDMxMDE3Mzc0OFowgbAxCzAJBgNVBAYTAklMMQ8wDQYDVQQIEwZJc3JhZWwxDjAMBgNVBAcT
-BUVpbGF0MRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMRowGAYDVQQLExFDQSBBdXRob3JpdHkgRGVw
-LjEpMCcGA1UEAxMgRnJlZSBTU0wgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxITAfBgkqhkiG9w0B
-CQEWEmFkbWluQHN0YXJ0Y29tLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7YRgACOe
-yEpRKSfeOqE5tWmrCbIvNP1h3D3TsM+x18LEwrHkllbEvqoUDufMOlDIOmKdw6OsWXuO7lUaHEe+
-o5c5s7XvIywI6Nivcy+5yYPo7QAPyHWlLzRMGOh2iCNJitu27Wjaw7ViKUylS7eYtAkUEKD4/mJ2
-IhULpNYILzUCAwEAAaOCAjwwggI4MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgHmMB0GA1Ud
-DgQWBBQcicOWzL3+MtUNjIExtpidjShkjTCB3QYDVR0jBIHVMIHSgBQcicOWzL3+MtUNjIExtpid
-jShkjaGBtqSBszCBsDELMAkGA1UEBhMCSUwxDzANBgNVBAgTBklzcmFlbDEOMAwGA1UEBxMFRWls
-YXQxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xGjAYBgNVBAsTEUNBIEF1dGhvcml0eSBEZXAuMSkw
-JwYDVQQDEyBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYS
-YWRtaW5Ac3RhcnRjb20ub3JnggEAMB0GA1UdEQQWMBSBEmFkbWluQHN0YXJ0Y29tLm9yZzAdBgNV
-HRIEFjAUgRJhZG1pbkBzdGFydGNvbS5vcmcwEQYJYIZIAYb4QgEBBAQDAgAHMC8GCWCGSAGG+EIB
-DQQiFiBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAyBglghkgBhvhCAQQEJRYjaHR0
-cDovL2NlcnQuc3RhcnRjb20ub3JnL2NhLWNybC5jcmwwKAYJYIZIAYb4QgECBBsWGWh0dHA6Ly9j
-ZXJ0LnN0YXJ0Y29tLm9yZy8wOQYJYIZIAYb4QgEIBCwWKmh0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9y
-Zy9pbmRleC5waHA/YXBwPTExMTANBgkqhkiG9w0BAQQFAAOBgQBscSXhnjSRIe/bbL0BCFaPiNhB
-OlP1ct8nV0t2hPdopP7rPwl+KLhX6h/BquL/lp9JmeaylXOWxkjHXo0Hclb4g4+fd68p00UOpO6w
-NnQt8M2YI3s3S9r+UZjEHjQ8iP2ZO1CnwYszx8JSFhKVU2Ui77qLzmLbcCOxgN8aIDjnfg==
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
-YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
-AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
-Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
-U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
-LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
-cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
-dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
-AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
-3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
-vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
-fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
-fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
-EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
-1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
-lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
-g14=
------END CERTIFICATE-----
-
-Taiwan GRCA
-===========
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
-EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
-DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
-dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
-w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
-BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
-1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
-htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
-J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
-Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
-B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
-O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
-lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
-HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
-09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
-Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
-Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
-D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
-DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
-Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
-7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
-CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
-+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
------END CERTIFICATE-----
-
-Firmaprofesional Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT
-GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp
-Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA
-ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL
-MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT
-OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2
-ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V
-j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH
-lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf
-3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8
-NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww
-KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG
-AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud
-DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD
-ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq
-u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf
-wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm
-7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG
-VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA=
------END CERTIFICATE-----
-
-Wells Fargo Root CA
-===================
------BEGIN CERTIFICATE-----
-MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMCVVMxFDASBgNV
-BAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
-MDAxMDExMTY0MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dl
-bGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEv
-MC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mX
-x3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93OvRw6esP3
-E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5
-OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4j
-sNtlAHCEAQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGj
-YTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAyMDAGCCsGAQUF
-BwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRwb2xpY3kwDQYJKoZIhvcNAQEFBQAD
-ggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrv
-m+0fazbuSCUlFLZWohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R
-OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx
-x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ33ZwmVxwQ023
-tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s=
------END CERTIFICATE-----
-
-Swisscom Root CA 1
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
-MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
-MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
-NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
-AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
-b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
-7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
-cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
-WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
-haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
-MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
-BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
-MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
-jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
-MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
-VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
-vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
-OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
-1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
-nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
-x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
-NY6E0F/6MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
-MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
-9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
-UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
-/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
-oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
-GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
-66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
-hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
-EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
-SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
-8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-
-DigiCert Global Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
-MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
-TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
-BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
-4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
-7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
-o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
-8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
-BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
-EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
-tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
-UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
-
-DigiCert High Assurance EV Root CA
-==================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
-KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
-MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
-MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
-Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
-Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
-OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
-MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
-NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
-h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
-Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
-JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
-V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
-myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
-mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
------END CERTIFICATE-----
-
-Certplus Class 2 Primary CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
-BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
-OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
-dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
-5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
-Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
-YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
-e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
-CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
-YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
-L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
-P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
-TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
-7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
-//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
-
-DST Root CA X3
-==============
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
-ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
-DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
-cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
-rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
-UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
-xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
-utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
-MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
-dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
-GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
-RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
-fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
-DST ACES CA X6
-==============
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
-MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
-MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
-CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
-DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
-pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
-GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
-MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
-Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
-dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
-CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
-5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
-Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
-vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
-oKfN5XozNmr6mis=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 1
-==============================================
------BEGIN CERTIFICATE-----
-MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
-MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
-acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
-MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
-U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
-TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
-aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
-yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
-Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
-8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
-W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
-BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
-sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
-q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
-B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
-nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2
-==============================================
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
-MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
-dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
-A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
-acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
-LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
-x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
-QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
-5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
-AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
-Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
-hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
-9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
-UrbnBEI=
------END CERTIFICATE-----
-
-SwissSign Platinum CA - G2
-==========================
------BEGIN CERTIFICATE-----
-MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCQ0gxFTAT
-BgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWduIFBsYXRpbnVtIENBIC0gRzIw
-HhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAwWjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMM
-U3dpc3NTaWduIEFHMSMwIQYDVQQDExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJ
-KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu
-669yIIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2HtnIuJpX+UF
-eNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+6ixuEFGSzH7VozPY1kne
-WCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5objM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIo
-j5+saCB9bzuohTEJfwvH6GXp43gOCWcwizSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/6
-8++QHkwFix7qepF6w9fl+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34T
-aNhxKFrYzt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaPpZjy
-domyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtFKwH3HBqi7Ri6Cr2D
-+m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuWae5ogObnmLo2t/5u7Su9IPhlGdpV
-CX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMBAAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCv
-zAeHFUdvOMW0ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW
-IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUAA4ICAQAIhab1
-Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0uMoI3LQwnkAHFmtllXcBrqS3
-NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4
-U99REJNi54Av4tHgvI42Rncz7Lj7jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8
-KV2LwUvJ4ooTHbG/u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl
-9x8DYSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1puEa+S1B
-aYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXaicYwu+uPyyIIoK6q8QNs
-OktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbGDI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSY
-Mdp08YSTcU1f+2BY0fvEwW2JorsgH51xkcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAci
-IfNAChs0B0QTwoRqjt8ZWr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g==
------END CERTIFICATE-----
-
-SwissSign Gold CA - G2
-======================
------BEGIN CERTIFICATE-----
-MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
-EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
-MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
-c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
-t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
-jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
-vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
-ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
-AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
-jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
-peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
-7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
-GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
-OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
-L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
-5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
-44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
-Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
-Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
-mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
-vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
-KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
-NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
-viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
------END CERTIFICATE-----
-
-SwissSign Silver CA - G2
-========================
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
-BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
-DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
-aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
-9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
-N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
-+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
-6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
-MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
-qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
-FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
-ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
-celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
-CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
-tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
-4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
-kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
-3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
-/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
-DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
-e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
-WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
-DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
-DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority
-========================================
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
-CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
-cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
-b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
-nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
-RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
-tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
-hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
-Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
-NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
-Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
-1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
-
-thawte Primary Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
-MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
-SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
-KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
-FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
-oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
-1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
-q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
-aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
-afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
-AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
-uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
-jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
-z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G5
-============================================================
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
-biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
-dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
-j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
-Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
-Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
-fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
-BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
-Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
-SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
-X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
-KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
-Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
-ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
-
-SecureTrust CA
-==============
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
-dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
-BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
-OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
-DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
-GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
-01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
-ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
-aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
-SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
-mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
-nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
-
-Secure Global CA
-================
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
-bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
-MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
-Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
-YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
-bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
-8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
-HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
-0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
-oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
-MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
-OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
-CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
-3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
-
-COMODO Certification Authority
-==============================
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
-BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
-A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
-MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
-T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
-+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
-xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
-4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
-1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
-rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
-b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
-AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
-OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
-IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
-+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
------END CERTIFICATE-----
-
-DigiNotar Root CA
-=================
------BEGIN CERTIFICATE-----
-MIIFijCCA3KgAwIBAgIQDHbanJEMTiye/hXQWJM8TDANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQG
-EwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90YXIgUm9vdCBDQTEgMB4G
-CSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwHhcNMDcwNTE2MTcxOTM2WhcNMjUwMzMxMTgx
-OTIxWjBfMQswCQYDVQQGEwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90
-YXIgUm9vdCBDQTEgMB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwggIiMA0GCSqGSIb3
-DQEBAQUAA4ICDwAwggIKAoICAQCssFjBAL3YIQgLK5r+blYwBZ8bd5AQQVzDDYcRd46B8cp86Yxq
-7Th0Nbva3/m7wAk3tJZzgX0zGpg595NvlX89ubF1h7pRSOiLcD6VBMXYtsMW2YiwsYcdcNqGtA8U
-i3rPENF0NqISe3eGSnnme98CEWilToauNFibJBN4ViIlHgGLS1Fx+4LMWZZpiFpoU8W5DQI3y0u8
-ZkqQfioLBQftFl9VkHXYRskbg+IIvvEjzJkd1ioPgyAVWCeCLvriIsJJsbkBgWqdbZ1Ad2h2TiEq
-bYRAhU52mXyC8/O3AlnUJgEbjt+tUwbRrhjd4rI6y9eIOI6sWym5GdOY+RgDz0iChmYLG2kPyes4
-iHomGgVMktck1JbyrFIto0fVUvY//s6EBnCmqj6i8rZWNBhXouSBbefK8GrTx5FrAoNBfBXva5pk
-XuPQPOWx63tdhvvL5ndJzaNl3Pe5nLjkC1+Tz8wwGjIczhxjlaX56uF0i57pK6kwe6AYHw4YC+Vb
-qdPRbB4HZ4+RS6mKvNJmqpMBiLKR+jFc1abBUggJzQpjotMipuih2TkGl/VujQKQjBR7P4DNG5y6
-xFhyI6+2Vp/GekIzKQc/gsnmHwUNzUwoNovTyD4cxojvXu6JZOkd69qJfjKmadHdzIif0dDJZiHc
-BmfFlHqabWJMfczgZICynkeOowIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
-AwIBBjAdBgNVHQ4EFgQUiGi/4I41xDs4a2L3KDuEgcgM100wDQYJKoZIhvcNAQEFBQADggIBADsC
-jcs8MOhuoK3yc7NfniUTBAXT9uOLuwt5zlPe5JbF0a9zvNXD0EBVfEB/zRtfCdXyfJ9oHbtdzno5
-wozWmHvFg1Wo1X1AyuAe94leY12hE8JdiraKfADzI8PthV9xdvBoY6pFITlIYXg23PFDk9Qlx/KA
-ZeFTAnVR/Ho67zerhChXDNjU1JlWbOOi/lmEtDHoM/hklJRRl6s5xUvt2t2AC298KQ3EjopyDedT
-FLJgQT2EkTFoPSdE2+Xe9PpjRchMPpj1P0G6Tss3DbpmmPHdy59c91Q2gmssvBNhl0L4eLvMyKKf
-yvBovWsdst+Nbwed2o5nx0ceyrm/KkKRt2NTZvFCo+H0Wk1Ya7XkpDOtXHAd3ODy63MUkZoDweoA
-ZbwH/M8SESIsrqC9OuCiKthZ6SnTGDWkrBFfGbW1G/8iSlzGeuQX7yCpp/Q/rYqnmgQlnQ7KN+ZQ
-/YxCKQSa7LnPS3K94gg2ryMvYuXKAdNw23yCIywWMQzGNgeQerEfZ1jEO1hZibCMjFCz2IbLaKPE
-CudpSyDOwR5WS5WpI2jYMNjD67BVUc3l/Su49bsRn1NU9jQZjHkJNsphFyUXC4KYcwx3dMPVDceo
-EkzHp1RxRy4sGn3J4ys7SN4nhKdjNrN9j6BkOSQNPXuHr2ZcdBtLc7LljPCGmbjlxd+Ewbfr
------END CERTIFICATE-----
-
-Network Solutions Certificate Authority
-=======================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
-EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
-IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
-MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
-jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
-aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
-crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
-/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
-AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
-bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
-A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
-4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
-GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
-ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-
-WellsSecure Public Root Certificate Authority
-=============================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
-F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
-NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
-MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
-bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
-VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
-iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
-i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
-bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
-K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
-AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
-cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
-lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
-i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
-GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
-K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
-bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
-qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
-E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
-tylv2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
diff --git a/cloudfiles/share/magic b/cloudfiles/share/magic
deleted file mode 100644
index 7ae875db9c35e9d0b3f6776810c0e9b7d11f21f8..0000000000000000000000000000000000000000
--- a/cloudfiles/share/magic
+++ /dev/null
@@ -1,15283 +0,0 @@
-# Magic data for file(1) command.
-# Format is described in magic(5).
-# Don't edit this file, edit /etc/magic or send your suggested inclusions to
-# this file as a wishlist bug against file (using the reportbug utility).
-
-
-#------------------------------------------------------------------------------
-# Localstuff:  file(1) magic for locally observed files
-#
-# $File: Localstuff,v 1.4 2003/03/23 04:17:27 christos Exp $
-# Add any locally observed files here.  Remember:
-# text if readable, executable if runnable binary, data if unreadable.
-#------------------------------------------------------------------------------
-# acorn:  file(1) magic for files found on Acorn systems
-#
-
-# RISC OS Chunk File Format
-# From RISC OS Programmer's Reference Manual, Appendix D
-# We guess the file type from the type of the first chunk.
-0	lelong		0xc3cbc6c5	RISC OS Chunk data
->12	string		OBJ_		\b, AOF object
->12	string		LIB_		\b, ALF library
-
-# RISC OS AIF, contains "SWI OS_Exit" at offset 16.
-16	lelong		0xef000011	RISC OS AIF executable
-
-# RISC OS Draw files
-# From RISC OS Programmer's Reference Manual, Appendix E
-0	string 		Draw		RISC OS Draw file data
-
-# RISC OS new format font files
-# From RISC OS Programmer's Reference Manual, Appendix E
-0	string		FONT\0		RISC OS outline font data,
->5	byte		x		version %d
-0	string		FONT\1		RISC OS 1bpp font data,
->5	byte		x		version %d
-0	string		FONT\4		RISC OS 4bpp font data
->5	byte		x		version %d
-
-# RISC OS Music files
-# From RISC OS Programmer's Reference Manual, Appendix E
-0	string		Maestro\r	RISC OS music file
->8	byte		x		version %d
-
->8	byte		x		type %d
-
-# Digital Symphony data files
-# From: Bernard Jungen (bern8817@euphonynet.be)
-0		string	\x02\x01\x13\x13\x13\x01\x0d\x10	Digital Symphony sound sample (RISC OS),
->8		byte	x	version %d,
->9		pstring	x	named "%s",
->(9.b+19)	byte	=0	8-bit logarithmic
->(9.b+19)	byte	=1	LZW-compressed linear
->(9.b+19)	byte	=2	8-bit linear signed
->(9.b+19)	byte	=3	16-bit linear signed
->(9.b+19)	byte	=4	SigmaDelta-compressed linear
->(9.b+19)	byte	=5	SigmaDelta-compressed logarithmic
->(9.b+19)	byte	>5	unknown format
-
-0	string	\x02\x01\x13\x13\x14\x12\x01\x0b	Digital Symphony song (RISC OS),
->8	byte	x	version %d,
->9	byte	=1	1 voice,
->9	byte	!1	%d voices,
->10	leshort	=1	1 track,
->10	leshort	!1	%d tracks,
->12	leshort	=1	1 pattern
->12	leshort	!1	%d patterns
-
-0	string	\x02\x01\x13\x13\x10\x14\x12\x0e
->9	byte	=0	Digital Symphony sequence (RISC OS),
->>8	byte	x	version %d,
->>10	byte	=1	1 line,
->>10	byte	!1	%d lines,
->>11	leshort	=1	1 position
->>11	leshort	!1	%d positions
->9	byte	=1	Digital Symphony pattern data (RISC OS),
->>8	byte	x	version %d,
->>10	leshort	=1	1 pattern
->>10	leshort	!1	%d patterns
-
-#------------------------------------------------------------------------------
-# adi: file(1) magic for ADi's objects
-# From Gregory McGarry <g.mcgarry@ieee.org>
-#
-0	leshort		0x521c		COFF DSP21k
->18	lelong		&02		executable,
->18	lelong		^02
->>18	lelong		&01		static object,
->>18	lelong		^01		relocatable object,
->18	lelong		&010		stripped
->18	lelong		^010		not stripped
-
-#------------------------------------------------------------------------------
-# adventure: file(1) magic for Adventure game files
-#
-# from Allen Garvin <earendil@faeryland.tamu-commerce.edu>
-# Edited by Dave Chapeskie <dchapes@ddm.on.ca> Jun 28, 1998
-# Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
-#
-# ALAN
-# I assume there are other, lower versions, but these are the only ones I
-# saw in the archive.
-0	beshort	0x0206	ALAN game data
->2	byte	<10	version 2.6%d
-
-
-# Infocom (see z-machine)
-#------------------------------------------------------------------------------
-# Z-machine:  file(1) magic for Z-machine binaries.
-#
-# Updated by Adam Buchbinder <adam.buchbinder@gmail.com>
-#
-# The first byte is the Z-machine revision; it is always between 1 and 8. We
-# had false matches (for instance, inbig5.ocp from the Omega TeX extension as
-# well as an occasional MP3 file), so we sanity-check the version number.
-#
-# It might be possible to sanity-check the release number as well, as it seems
-# (at least in classic Infocom games) to always be a relatively small number,
-# always under 150 or so, but as this isn't rigorous, we'll wait on that until
-# it becomes clear that it's needed.
-#
-0	ubyte			>0
->0	ubyte			<9
->>16	belong&0xfe00f0f0	0x3030	Infocom game data
->>>0	ubyte			x	(Z-machine %d,
->>>>2	ubeshort		x	Release %d /
->>>>18	string			>\0	Serial %.6s)
-
-#------------------------------------------------------------------------------
-# Glulx:  file(1) magic for Glulx binaries.
-#
-# I haven't checked for false matches yet.
-#
-0	string			Glul	Glulx game data
->4	beshort			x	(Version %d
->>6	byte			x	\b.%d
->>8	byte			x	\b.%d)
->36	string			Info	Compiled by Inform
-
-
-
-# For Quetzal and blorb magic see iff
-
-
-# TADS (Text Adventure Development System)
-#  All files are machine-independent (games compile to byte-code) and are tagged
-#  with a version string of the form "V2.<digit>.<digit>\0" (but TADS 3 is
-#  on the way).
-#  Game files start with "TADS2 bin\n\r\032\0" then the compiler version.
-0	string	TADS2\ bin	TADS
->9	belong  !0x0A0D1A00	game data, CORRUPTED
->9	belong	 0x0A0D1A00
->>13	string	>\0		%s game data
-#  Resource files start with "TADS2 rsc\n\r\032\0" then the compiler version.
-0	string	TADS2\ rsc	TADS
->9	belong  !0x0A0D1A00	resource data, CORRUPTED
->9	belong	 0x0A0D1A00
->>13	string	>\0		%s resource data
-#  Some saved game files start with "TADS2 save/g\n\r\032\0", a little-endian
-#  2-byte length N, the N-char name of the game file *without* a NUL (darn!),
-# "TADS2 save\n\r\032\0" and the interpreter version. 
-0	string	TADS2\ save/g	TADS
->12	belong	!0x0A0D1A00	saved game data, CORRUPTED
->12	belong	 0x0A0D1A00
->>(16.s+32) string >\0		%s saved game data
-#  Other saved game files start with "TADS2 save\n\r\032\0" and the interpreter
-#  version.
-0	string	TADS2\ save	TADS
->10	belong	!0x0A0D1A00	saved game data, CORRUPTED
->10	belong	 0x0A0D1A00
->>14	string	>\0		%s saved game data
-
-# Danny Milosavljevic <danny.milo@gmx.net>
-# this are adrift (adventure game standard) game files, extension .taf
-# depending on version magic continues with 0x93453E6139FA (V 4.0)
-# 0x9445376139FA (V 3.90)
-# 0x9445366139FA (V 3.80)
-# this is from source (http://www.adrift.org.uk/) and I have some taf
-# files, and checked them.
-#0	belong	0x3C423FC9
-#>4	belong	0x6A87C2CF	Adrift game file
-#!:mime	application/x-adrift
-#------------------------------------------------------------------------------
-# allegro:  file(1) magic for Allegro datafiles
-# Toby Deshane <hac@shoelace.digivill.net>
-#
-0 belong 0x736C6821   Allegro datafile (packed)
-0 belong 0x736C682E   Allegro datafile (not packed/autodetect)
-0 belong 0x736C682B   Allegro datafile (appended exe data)
-
-#------------------------------------------------------------------------------
-# alliant:  file(1) magic for Alliant FX series a.out files
-#
-# If the FX series is the one that had a processor with a 68K-derived
-# instruction set, the "short" should probably become "beshort" and the
-# "long" should probably become "belong".
-# If it's the i860-based one, they should probably become either the
-# big-endian or little-endian versions, depending on the mode they ran
-# the 860 in....
-#
-0	short		0420		0420 Alliant virtual executable
->2	short		&0x0020		common library
->16	long		>0		not stripped
-0	short		0421		0421 Alliant compact executable
->2	short		&0x0020		common library
->16	long		>0		not stripped
-#------------------------------------------------------------------------------
-# alpha architecture description
-#
-
-0	leshort		0603		COFF format alpha
->22	leshort&030000	!020000		executable
->24	leshort		0410		pure
->24	leshort		0413		paged
->22	leshort&020000	!0		dynamically linked
->16	lelong		!0		not stripped
->16	lelong		0		stripped
->22	leshort&030000	020000		shared library
->24	leshort		0407		object
->27	byte		x		- version %d
->26	byte		x		.%d
->28	byte		x		-%d
-
-# Basic recognition of Digital UNIX core dumps - Mike Bremford <mike@opac.bl.uk>
-#
-# The actual magic number is just "Core", followed by a 2-byte version
-# number; however, treating any file that begins with "Core" as a Digital
-# UNIX core dump file may produce too many false hits, so we include one
-# byte of the version number as well; DU 5.0 appears only to be up to
-# version 2.
-#
-0	string		Core\001	Alpha COFF format core dump (Digital UNIX)
->24	string		>\0		\b, from '%s'
-0	string		Core\002	Alpha COFF format core dump (Digital UNIX)
->24	string		>\0		\b, from '%s'
-
-#------------------------------------------------------------------------------
-# amanda:  file(1) magic for amanda file format
-#
-0	string	AMANDA:\ 		AMANDA 
->8	string	TAPESTART\ DATE		tape header file,
->>23	string	X
->>>25	string	>\ 			Unused %s
->>23	string	>\ 			DATE %s
->8	string	FILE\ 			dump file,
->>13	string	>\ 			DATE %s
-#------------------------------------------------------------------------------
-# amigaos:  file(1) magic for AmigaOS binary formats:
-
-#
-# From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
-#
-0	belong		0x000003fa	AmigaOS shared library
-0	belong		0x000003f3	AmigaOS loadseg()ble executable/binary
-0	belong		0x000003e7	AmigaOS object/library data
-#
-0	beshort		0xe310		Amiga Workbench
->2	beshort		1		
->>48	byte		1		disk icon
->>48	byte		2		drawer icon
->>48	byte		3		tool icon
->>48	byte		4		project icon
->>48	byte		5		garbage icon
->>48	byte		6		device icon
->>48	byte		7		kickstart icon
->>48	byte		8		workbench application icon
->2	beshort		>1		icon, vers. %d
-#
-# various sound formats from the Amiga
-# G=F6tz Waschk <waschk@informatik.uni-rostock.de>
-#
-0	string		FC14		Future Composer 1.4 Module sound file
-0	string		SMOD		Future Composer 1.3 Module sound file
-0	string		AON4artofnoise	Art Of Noise Module sound file
-1	string		MUGICIAN/SOFTEYES Mugician Module sound file
-58	string		SIDMON\ II\ -\ THE	Sidmon 2.0 Module sound file
-0	string		Synth4.0	Synthesis Module sound file
-0	string		ARP.		The Holy Noise Module sound file
-0	string		BeEp\0		JamCracker Module sound file
-0	string		COSO\0		Hippel-COSO Module sound file
-# Too simple (short, pure ASCII, deep), MPi
-#26	string		V.3		Brian Postma's Soundmon Module sound file v3
-#26	string		BPSM		Brian Postma's Soundmon Module sound file v3
-#26	string		V.2		Brian Postma's Soundmon Module sound file v2
-
-# The following are from: "Stefan A. Haubenthal" <polluks@web.de>
-0	beshort		0x0f00		AmigaOS bitmap font
-0	beshort		0x0f03		AmigaOS outline font
-0	belong		0x80001001	AmigaOS outline tag
-0	string		##\ version	catalog translation
-0	string		EMOD\0		Amiga E module
-8	string		ECXM\0		ECX module
-0	string/c	@database	AmigaGuide file
-
-# Amiga disk types
-# 
-0	string		RDSK		Rigid Disk Block
->160	string		x		on %.24s
-0	string		DOS\0		Amiga DOS disk
-0	string		DOS\1		Amiga FFS disk
-0	string		DOS\2		Amiga Inter DOS disk
-0	string		DOS\3		Amiga Inter FFS disk
-0	string		DOS\4		Amiga Fastdir DOS disk
-0	string		DOS\5		Amiga Fastdir FFS disk
-0	string		KICK		Kickstart disk
-
-# From: Alex Beregszaszi <alex@fsn.hu>
-0	string		LZX		LZX compressed archive (Amiga)
-
-
-#------------------------------------------------------------------------------
-# animation:  file(1) magic for animation/movie formats
-#
-# animation formats
-# MPEG, FLI, DL originally from vax@ccwf.cc.utexas.edu (VaX#n8)
-# FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com)
-
-# SGI and Apple formats
-0	string		MOVI		Silicon Graphics movie file
-!:mime	video/x-sgi-movie
-4       string          moov            Apple QuickTime
-!:mime	video/quicktime
->12     string          mvhd            \b movie (fast start)
->12     string          mdra            \b URL
->12     string          cmov            \b movie (fast start, compressed header)
->12     string          rmra            \b multiple URLs
-4       string          mdat            Apple QuickTime movie (unoptimized)
-!:mime	video/quicktime
-#4       string          wide            Apple QuickTime movie (unoptimized)
-#!:mime	video/quicktime
-#4       string          skip            Apple QuickTime movie (modified)
-#!:mime	video/quicktime
-#4       string          free            Apple QuickTime movie (modified)
-#!:mime	video/quicktime
-4       string          idsc            Apple QuickTime image (fast start)
-!:mime	image/x-quicktime
-#4       string          idat            Apple QuickTime image (unoptimized)
-#!:mime	image/x-quicktime
-4       string          pckg            Apple QuickTime compressed archive
-!:mime	application/x-quicktime-player
-4	string/B	jP		JPEG 2000 image
-!:mime	image/jp2
-4	string		ftyp		ISO Media
->8	string		isom		\b, MPEG v4 system, version 1
-!:mime	video/mp4
->8	string		iso2		\b, MPEG v4 system, part 12 revision
->8	string		mp41		\b, MPEG v4 system, version 1
-!:mime	video/mp4
->8	string		mp42		\b, MPEG v4 system, version 2
-!:mime	video/mp4
->8	string		mp7t		\b, MPEG v4 system, MPEG v7 XML
->8	string		mp7b		\b, MPEG v4 system, MPEG v7 binary XML
->8	string/B	jp2		\b, JPEG 2000
-!:mime	image/jp2
->8	string		3gp		\b, MPEG v4 system, 3GPP
-!:mime	video/3gpp
->>11	byte		4		\b v4 (H.263/AMR GSM 6.10)
->>11	byte		5		\b v5 (H.263/AMR GSM 6.10)
->>11	byte		6		\b v6 (ITU H.264/AMR GSM 6.10)
->8	string		mmp4		\b, MPEG v4 system, 3GPP Mobile
-!:mime	video/mp4
->8	string		avc1		\b, MPEG v4 system, 3GPP JVT AVC
-!:mime	video/3gpp
->8	string/B	M4A		\b, MPEG v4 system, iTunes AAC-LC
-!:mime	audio/mp4
->8	string/B	M4V		\b, MPEG v4 system, iTunes AVC-LC
-!:mime	video/mp4
->8	string/B	M4P		\b, MPEG v4 system, iTunes AES encrypted
->8	string/B	M4B		\b, MPEG v4 system, iTunes bookmarked
->8	string/B	qt		\b, Apple QuickTime movie
-!:mime	video/quicktime
-
-# MPEG sequences
-# Scans for all common MPEG header start codes
-0	 belong		    0x00000001     
->4	 byte&0x1F	    0x07	   JVT NAL sequence, H.264 video
->>5      byte               66             \b, baseline
->>5      byte               77             \b, main
->>5      byte               88             \b, extended
->>7      byte               x              \b @ L %u
-0        belong&0xFFFFFF00  0x00000100     
->3       byte               0xBA           MPEG sequence
->>4      byte               &0x40          \b, v2, program multiplex
->>4      byte               ^0x40          \b, v1, system multiplex
->3       byte               0xBB           MPEG sequence, v1/2, multiplex (missing pack header)
->3       byte&0x1F          0x07           MPEG sequence, H.264 video
->>4      byte               66             \b, baseline
->>4      byte               77             \b, main
->>4      byte               88             \b, extended
->>6      byte               x              \b @ L %u
->3       byte               0xB0           MPEG sequence, v4
->>5      belong             0x000001B5
->>>9     byte               &0x80
->>>>10   byte&0xF0          16             \b, video
->>>>10   byte&0xF0          32             \b, still texture
->>>>10   byte&0xF0          48             \b, mesh
->>>>10   byte&0xF0          64             \b, face
->>>9     byte&0xF8          8              \b, video
->>>9     byte&0xF8          16             \b, still texture
->>>9     byte&0xF8          24             \b, mesh
->>>9     byte&0xF8          32             \b, face
->>4      byte               1              \b, simple @ L1
->>4      byte               2              \b, simple @ L2
->>4      byte               3              \b, simple @ L3
->>4      byte               4              \b, simple @ L0
->>4      byte               17             \b, simple scalable @ L1
->>4      byte               18             \b, simple scalable @ L2
->>4      byte               33             \b, core @ L1
->>4      byte               34             \b, core @ L2
->>4      byte               50             \b, main @ L2
->>4      byte               51             \b, main @ L3
->>4      byte               53             \b, main @ L4
->>4      byte               66             \b, n-bit @ L2
->>4      byte               81             \b, scalable texture @ L1
->>4      byte               97             \b, simple face animation @ L1
->>4      byte               98             \b, simple face animation @ L2
->>4      byte               99             \b, simple face basic animation @ L1
->>4      byte               100            \b, simple face basic animation @ L2
->>4      byte               113            \b, basic animation text @ L1
->>4      byte               114            \b, basic animation text @ L2
->>4      byte               129            \b, hybrid @ L1
->>4      byte               130            \b, hybrid @ L2
->>4      byte               145            \b, advanced RT simple @ L!
->>4      byte               146            \b, advanced RT simple @ L2
->>4      byte               147            \b, advanced RT simple @ L3
->>4      byte               148            \b, advanced RT simple @ L4
->>4      byte               161            \b, core scalable @ L1
->>4      byte               162            \b, core scalable @ L2
->>4      byte               163            \b, core scalable @ L3
->>4      byte               177            \b, advanced coding efficiency @ L1
->>4      byte               178            \b, advanced coding efficiency @ L2
->>4      byte               179            \b, advanced coding efficiency @ L3
->>4      byte               180            \b, advanced coding efficiency @ L4
->>4      byte               193            \b, advanced core @ L1
->>4      byte               194            \b, advanced core @ L2
->>4      byte               209            \b, advanced scalable texture @ L1
->>4      byte               210            \b, advanced scalable texture @ L2
->>4      byte               211            \b, advanced scalable texture @ L3
->>4      byte               225            \b, simple studio @ L1
->>4      byte               226            \b, simple studio @ L2
->>4      byte               227            \b, simple studio @ L3
->>4      byte               228            \b, simple studio @ L4
->>4      byte               229            \b, core studio @ L1
->>4      byte               230            \b, core studio @ L2
->>4      byte               231            \b, core studio @ L3
->>4      byte               232            \b, core studio @ L4
->>4      byte               240            \b, advanced simple @ L0
->>4      byte               241            \b, advanced simple @ L1
->>4      byte               242            \b, advanced simple @ L2
->>4      byte               243            \b, advanced simple @ L3
->>4      byte               244            \b, advanced simple @ L4
->>4      byte               245            \b, advanced simple @ L5
->>4      byte               247            \b, advanced simple @ L3b
->>4      byte               248            \b, FGS @ L0
->>4      byte               249            \b, FGS @ L1
->>4      byte               250            \b, FGS @ L2
->>4      byte               251            \b, FGS @ L3
->>4      byte               252            \b, FGS @ L4
->>4      byte               253            \b, FGS @ L5
->3       byte               0xB5           MPEG sequence, v4
->>4      byte               &0x80
->>>5     byte&0xF0          16             \b, video (missing profile header)
->>>5     byte&0xF0          32             \b, still texture (missing profile header)
->>>5     byte&0xF0          48             \b, mesh (missing profile header)
->>>5     byte&0xF0          64             \b, face (missing profile header)
->>4      byte&0xF8          8              \b, video (missing profile header)
->>4      byte&0xF8          16             \b, still texture (missing profile header)
->>4      byte&0xF8          24             \b, mesh (missing profile header)
->>4      byte&0xF8          32             \b, face (missing profile header)
->3       byte               0xB3           MPEG sequence
->>12     belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
->>12     belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
->>12     belong             0x000001B5     \b, v2,
->>>16    byte&0x0F          1              \b HP
->>>16    byte&0x0F          2              \b Spt
->>>16    byte&0x0F          3              \b SNR
->>>16    byte&0x0F          4              \b MP
->>>16    byte&0x0F          5              \b SP
->>>17    byte&0xF0          64             \b@HL
->>>17    byte&0xF0          96             \b@H-14
->>>17    byte&0xF0          128            \b@ML
->>>17    byte&0xF0          160            \b@LL
->>>17    byte               &0x08          \b progressive
->>>17    byte               ^0x08          \b interlaced
->>>17    byte&0x06          2              \b Y'CbCr 4:2:0 video
->>>17    byte&0x06          4              \b Y'CbCr 4:2:2 video
->>>17    byte&0x06          6              \b Y'CbCr 4:4:4 video
->>11     byte               &0x02
->>>75    byte               &0x01
->>>>140  belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
->>>>140  belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
->>>>140  belong             0x000001B5     \b, v2,
->>>>>144 byte&0x0F          1              \b HP
->>>>>144 byte&0x0F          2              \b Spt
->>>>>144 byte&0x0F          3              \b SNR
->>>>>144 byte&0x0F          4              \b MP
->>>>>144 byte&0x0F          5              \b SP
->>>>>145 byte&0xF0          64             \b@HL
->>>>>145 byte&0xF0          96             \b@H-14
->>>>>145 byte&0xF0          128            \b@ML
->>>>>145 byte&0xF0          160            \b@LL
->>>>>145 byte               &0x08          \b progressive
->>>>>145 byte               ^0x08          \b interlaced
->>>>>145 byte&0x06          2              \b Y'CbCr 4:2:0 video
->>>>>145 byte&0x06          4              \b Y'CbCr 4:2:2 video
->>>>>145 byte&0x06          6              \b Y'CbCr 4:4:4 video
->>76    belong             0x000001B8     \b, v1, progressive Y'CbCr 4:2:0 video
->>76    belong             0x000001B2     \b, v1, progressive Y'CbCr 4:2:0 video
->>76    belong             0x000001B5     \b, v2,
->>>80   byte&0x0F          1              \b HP
->>>80   byte&0x0F          2              \b Spt
->>>80   byte&0x0F          3              \b SNR
->>>80   byte&0x0F          4              \b MP
->>>80   byte&0x0F          5              \b SP
->>>81   byte&0xF0          64             \b@HL
->>>81   byte&0xF0          96             \b@H-14
->>>81   byte&0xF0          128            \b@ML
->>>81   byte&0xF0          160            \b@LL
->>>81   byte               &0x08          \b progressive
->>>81   byte               ^0x08          \b interlaced
->>>81   byte&0x06          2              \b Y'CbCr 4:2:0 video
->>>81   byte&0x06          4              \b Y'CbCr 4:2:2 video
->>>81   byte&0x06          6              \b Y'CbCr 4:4:4 video
->>4      belong&0xFFFFFF00  0x78043800     \b, HD-TV 1920P
->>>7     byte&0xF0          0x10           \b, 16:9
->>4      belong&0xFFFFFF00  0x50002D00     \b, SD-TV 1280I
->>>7     byte&0xF0          0x10           \b, 16:9
->>4      belong&0xFFFFFF00  0x30024000     \b, PAL Capture
->>>7     byte&0xF0          0x10           \b, 4:3
->>4      beshort&0xFFF0     0x2C00         \b, 4CIF
->>>5     beshort&0x0FFF     0x01E0         \b NTSC
->>>5     beshort&0x0FFF     0x0240         \b PAL
->>>7     byte&0xF0          0x20           \b, 4:3
->>>7     byte&0xF0          0x30           \b, 16:9
->>>7     byte&0xF0          0x40           \b, 11:5
->>>7     byte&0xF0          0x80           \b, PAL 4:3
->>>7     byte&0xF0          0xC0           \b, NTSC 4:3
->>4      belong&0xFFFFFF00  0x2801E000     \b, LD-TV 640P
->>>7     byte&0xF0          0x10           \b, 4:3
->>4      belong&0xFFFFFF00  0x1400F000     \b, 320x240
->>>7     byte&0xF0          0x10           \b, 4:3
->>4      belong&0xFFFFFF00  0x0F00A000     \b, 240x160
->>>7     byte&0xF0          0x10           \b, 4:3
->>4      belong&0xFFFFFF00  0x0A007800     \b, 160x120
->>>7     byte&0xF0          0x10           \b, 4:3
->>4      beshort&0xFFF0     0x1600         \b, CIF
->>>5     beshort&0x0FFF     0x00F0         \b NTSC
->>>5     beshort&0x0FFF     0x0120         \b PAL
->>>7     byte&0xF0          0x20           \b, 4:3
->>>7     byte&0xF0          0x30           \b, 16:9
->>>7     byte&0xF0          0x40           \b, 11:5
->>>7     byte&0xF0          0x80           \b, PAL 4:3
->>>7     byte&0xF0          0xC0           \b, NTSC 4:3
->>>5     beshort&0x0FFF     0x0240         \b PAL 625
->>>>7    byte&0xF0          0x20           \b, 4:3
->>>>7    byte&0xF0          0x30           \b, 16:9
->>>>7    byte&0xF0          0x40           \b, 11:5
->>4      beshort&0xFFF0     0x2D00         \b, CCIR/ITU
->>>5     beshort&0x0FFF     0x01E0         \b NTSC 525
->>>5     beshort&0x0FFF     0x0240         \b PAL 625
->>>7     byte&0xF0          0x20           \b, 4:3
->>>7     byte&0xF0          0x30           \b, 16:9
->>>7     byte&0xF0          0x40           \b, 11:5
->>4      beshort&0xFFF0     0x1E00         \b, SVCD
->>>5     beshort&0x0FFF     0x01E0         \b NTSC 525
->>>5     beshort&0x0FFF     0x0240         \b PAL 625
->>>7     byte&0xF0          0x20           \b, 4:3
->>>7     byte&0xF0          0x30           \b, 16:9
->>>7     byte&0xF0          0x40           \b, 11:5
->>7      byte&0x0F          1              \b, 23.976 fps
->>7      byte&0x0F          2              \b, 24 fps
->>7      byte&0x0F          3              \b, 25 fps
->>7      byte&0x0F          4              \b, 29.97 fps
->>7      byte&0x0F          5              \b, 30 fps
->>7      byte&0x0F          6              \b, 50 fps
->>7      byte&0x0F          7              \b, 59.94 fps
->>7      byte&0x0F          8              \b, 60 fps
->>11     byte               &0x04          \b, Constrained
-
-# MPEG ADTS Audio (*.mpx/mxa/aac)
-# from dreesen@math.fu-berlin.de
-# modified to fully support MPEG ADTS
-
-# MP3, M1A
-# modified by Joerg Jenderek
-# GRR the original test are too common for many DOS files
-# so don't accept as MP3 until we've tested the rate
-0       beshort&0xFFFE  0xFFFA
-# rates
->2      byte&0xF0       0x10           MPEG ADTS, layer III, v1,  32 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x20           MPEG ADTS, layer III, v1,  40 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x30           MPEG ADTS, layer III, v1,  48 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x40           MPEG ADTS, layer III, v1,  56 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x50           MPEG ADTS, layer III, v1,  64 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x60           MPEG ADTS, layer III, v1,  80 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x70           MPEG ADTS, layer III, v1,  96 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x80           MPEG ADTS, layer III, v1, 112 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0x90           MPEG ADTS, layer III, v1, 128 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0xA0           MPEG ADTS, layer III, v1, 160 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0xB0           MPEG ADTS, layer III, v1, 192 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0xC0           MPEG ADTS, layer III, v1, 224 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0xD0           MPEG ADTS, layer III, v1, 256 kbps
-!:mime	audio/mpeg
->2      byte&0xF0       0xE0           MPEG ADTS, layer III, v1, 320 kbps
-!:mime	audio/mpeg
-# timing
->2      byte&0x0C       0x00           \b, 44.1 kHz
->2      byte&0x0C       0x04           \b, 48 kHz
->2      byte&0x0C       0x08           \b, 32 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MP2, M1A
-0       beshort&0xFFFE  0xFFFC         MPEG ADTS, layer II, v1
-!:mime	audio/mpeg
-# rates
->2      byte&0xF0       0x10           \b,  32 kbps
->2      byte&0xF0       0x20           \b,  48 kbps
->2      byte&0xF0       0x30           \b,  56 kbps
->2      byte&0xF0       0x40           \b,  64 kbps
->2      byte&0xF0       0x50           \b,  80 kbps
->2      byte&0xF0       0x60           \b,  96 kbps
->2      byte&0xF0       0x70           \b, 112 kbps
->2      byte&0xF0       0x80           \b, 128 kbps
->2      byte&0xF0       0x90           \b, 160 kbps
->2      byte&0xF0       0xA0           \b, 192 kbps
->2      byte&0xF0       0xB0           \b, 224 kbps
->2      byte&0xF0       0xC0           \b, 256 kbps
->2      byte&0xF0       0xD0           \b, 320 kbps
->2      byte&0xF0       0xE0           \b, 384 kbps
-# timing
->2      byte&0x0C       0x00           \b, 44.1 kHz
->2      byte&0x0C       0x04           \b, 48 kHz
->2      byte&0x0C       0x08           \b, 32 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MPA, M1A
-# updated by Joerg Jenderek
-# GRR the original test are too common for many DOS files, so test 32 <= kbits <= 448
-# GRR this test is still too general as it catches a BOM of UTF-16 files (0xFFFE)
-# FIXME: Almost all little endian UTF-16 text with BOM are clobbered by these entries
-#0	beshort&0xFFFE		0xFFFE	
-#>2	ubyte&0xF0	>0x0F		
-#>>2	ubyte&0xF0	<0xE1		MPEG ADTS, layer I, v1
-## rate
-#>>>2      byte&0xF0       0x10           \b,  32 kbps
-#>>>2      byte&0xF0       0x20           \b,  64 kbps
-#>>>2      byte&0xF0       0x30           \b,  96 kbps
-#>>>2      byte&0xF0       0x40           \b, 128 kbps
-#>>>2      byte&0xF0       0x50           \b, 160 kbps
-#>>>2      byte&0xF0       0x60           \b, 192 kbps
-#>>>2      byte&0xF0       0x70           \b, 224 kbps
-#>>>2      byte&0xF0       0x80           \b, 256 kbps
-#>>>2      byte&0xF0       0x90           \b, 288 kbps
-#>>>2      byte&0xF0       0xA0           \b, 320 kbps
-#>>>2      byte&0xF0       0xB0           \b, 352 kbps
-#>>>2      byte&0xF0       0xC0           \b, 384 kbps
-#>>>2      byte&0xF0       0xD0           \b, 416 kbps
-#>>>2      byte&0xF0       0xE0           \b, 448 kbps
-## timing
-#>>>2      byte&0x0C       0x00           \b, 44.1 kHz
-#>>>2      byte&0x0C       0x04           \b, 48 kHz
-#>>>2      byte&0x0C       0x08           \b, 32 kHz
-## channels/options
-#>>>3      byte&0xC0       0x00           \b, Stereo
-#>>>3      byte&0xC0       0x40           \b, JntStereo
-#>>>3      byte&0xC0       0x80           \b, 2x Monaural
-#>>>3      byte&0xC0       0xC0           \b, Monaural
-##>1     byte            ^0x01          \b, Data Verify
-##>2     byte            &0x02          \b, Packet Pad
-##>2     byte            &0x01          \b, Custom Flag
-##>3     byte            &0x08          \b, Copyrighted
-##>3     byte            &0x04          \b, Original Source
-##>3     byte&0x03       1              \b, NR: 50/15 ms
-##>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MP3, M2A
-0       beshort&0xFFFE  0xFFF2         MPEG ADTS, layer III, v2
-!:mime	audio/mpeg
-# rate
->2      byte&0xF0       0x10           \b,   8 kbps
->2      byte&0xF0       0x20           \b,  16 kbps
->2      byte&0xF0       0x30           \b,  24 kbps
->2      byte&0xF0       0x40           \b,  32 kbps
->2      byte&0xF0       0x50           \b,  40 kbps
->2      byte&0xF0       0x60           \b,  48 kbps
->2      byte&0xF0       0x70           \b,  56 kbps
->2      byte&0xF0       0x80           \b,  64 kbps
->2      byte&0xF0       0x90           \b,  80 kbps
->2      byte&0xF0       0xA0           \b,  96 kbps
->2      byte&0xF0       0xB0           \b, 112 kbps
->2      byte&0xF0       0xC0           \b, 128 kbps
->2      byte&0xF0       0xD0           \b, 144 kbps
->2      byte&0xF0       0xE0           \b, 160 kbps
-# timing
->2      byte&0x0C       0x00           \b, 22.05 kHz
->2      byte&0x0C       0x04           \b, 24 kHz
->2      byte&0x0C       0x08           \b, 16 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MP2, M2A
-0       beshort&0xFFFE  0xFFF4         MPEG ADTS, layer II, v2
-# rate 
->2      byte&0xF0       0x10           \b,   8 kbps
->2      byte&0xF0       0x20           \b,  16 kbps 
->2      byte&0xF0       0x30           \b,  24 kbps
->2      byte&0xF0       0x40           \b,  32 kbps
->2      byte&0xF0       0x50           \b,  40 kbps
->2      byte&0xF0       0x60           \b,  48 kbps
->2      byte&0xF0       0x70           \b,  56 kbps
->2      byte&0xF0       0x80           \b,  64 kbps
->2      byte&0xF0       0x90           \b,  80 kbps
->2      byte&0xF0       0xA0           \b,  96 kbps
->2      byte&0xF0       0xB0           \b, 112 kbps
->2      byte&0xF0       0xC0           \b, 128 kbps
->2      byte&0xF0       0xD0           \b, 144 kbps
->2      byte&0xF0       0xE0           \b, 160 kbps
-# timing
->2      byte&0x0C       0x00           \b, 22.05 kHz
->2      byte&0x0C       0x04           \b, 24 kHz
->2      byte&0x0C       0x08           \b, 16 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MPA, M2A
-0       beshort&0xFFFE  0xFFF6         MPEG ADTS, layer I, v2
-# rate
->2      byte&0xF0       0x10           \b,  32 kbps
->2      byte&0xF0       0x20           \b,  48 kbps
->2      byte&0xF0       0x30           \b,  56 kbps
->2      byte&0xF0       0x40           \b,  64 kbps
->2      byte&0xF0       0x50           \b,  80 kbps
->2      byte&0xF0       0x60           \b,  96 kbps
->2      byte&0xF0       0x70           \b, 112 kbps
->2      byte&0xF0       0x80           \b, 128 kbps
->2      byte&0xF0       0x90           \b, 144 kbps
->2      byte&0xF0       0xA0           \b, 160 kbps
->2      byte&0xF0       0xB0           \b, 176 kbps
->2      byte&0xF0       0xC0           \b, 192 kbps
->2      byte&0xF0       0xD0           \b, 224 kbps
->2      byte&0xF0       0xE0           \b, 256 kbps
-# timing
->2      byte&0x0C       0x00           \b, 22.05 kHz
->2      byte&0x0C       0x04           \b, 24 kHz
->2      byte&0x0C       0x08           \b, 16 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# MP3, M25A
-0       beshort&0xFFFE  0xFFE2         MPEG ADTS, layer III,  v2.5
-# rate  
->2      byte&0xF0       0x10           \b,   8 kbps
->2      byte&0xF0       0x20           \b,  16 kbps
->2      byte&0xF0       0x30           \b,  24 kbps
->2      byte&0xF0       0x40           \b,  32 kbps
->2      byte&0xF0       0x50           \b,  40 kbps
->2      byte&0xF0       0x60           \b,  48 kbps
->2      byte&0xF0       0x70           \b,  56 kbps
->2      byte&0xF0       0x80           \b,  64 kbps
->2      byte&0xF0       0x90           \b,  80 kbps
->2      byte&0xF0       0xA0           \b,  96 kbps
->2      byte&0xF0       0xB0           \b, 112 kbps
->2      byte&0xF0       0xC0           \b, 128 kbps
->2      byte&0xF0       0xD0           \b, 144 kbps
->2      byte&0xF0       0xE0           \b, 160 kbps
-# timing
->2      byte&0x0C       0x00           \b, 11.025 kHz
->2      byte&0x0C       0x04           \b, 12 kHz
->2      byte&0x0C       0x08           \b, 8 kHz
-# channels/options
->3      byte&0xC0       0x00           \b, Stereo
->3      byte&0xC0       0x40           \b, JntStereo
->3      byte&0xC0       0x80           \b, 2x Monaural
->3      byte&0xC0       0xC0           \b, Monaural
-#>1     byte            ^0x01          \b, Data Verify
-#>2     byte            &0x02          \b, Packet Pad
-#>2     byte            &0x01          \b, Custom Flag
-#>3     byte            &0x08          \b, Copyrighted
-#>3     byte            &0x04          \b, Original Source
-#>3     byte&0x03       1              \b, NR: 50/15 ms
-#>3     byte&0x03       3              \b, NR: CCIT J.17
-
-# AAC (aka MPEG-2 NBC audio) and MPEG-4 audio
-
-# Stored AAC streams (instead of the MP4 format)
-0       string          ADIF           MPEG ADIF, AAC
-!:mime	audio/x-hx-aac-adif
->4      byte            &0x80
->>13    byte            &0x10          \b, VBR
->>13    byte            ^0x10          \b, CBR
->>16    byte&0x1E       0x02           \b, single stream
->>16    byte&0x1E       0x04           \b, 2 streams
->>16    byte&0x1E       0x06           \b, 3 streams
->>16    byte            &0x08          \b, 4 or more streams
->>16    byte            &0x10          \b, 8 or more streams
->>4    byte            &0x80          \b, Copyrighted
->>13   byte            &0x40          \b, Original Source
->>13   byte            &0x20          \b, Home Flag
->4      byte            ^0x80
->>4     byte            &0x10          \b, VBR
->>4     byte            ^0x10          \b, CBR
->>7     byte&0x1E       0x02           \b, single stream
->>7     byte&0x1E       0x04           \b, 2 streams
->>7     byte&0x1E       0x06           \b, 3 streams
->>7     byte            &0x08          \b, 4 or more streams
->>7     byte            &0x10          \b, 8 or more streams
->>4    byte            &0x40          \b, Original Stream(s)
->>4    byte            &0x20          \b, Home Source
-
-# Live or stored single AAC stream (used with MPEG-2 systems)
-0       beshort&0xFFF6  0xFFF0         MPEG ADTS, AAC
-!:mime	audio/x-hx-aac-adts
->1      byte            &0x08          \b, v2
->1      byte            ^0x08          \b, v4
-# profile
->>2     byte            &0xC0          \b LTP
->2      byte&0xc0       0x00           \b Main
->2      byte&0xc0       0x40           \b LC
->2      byte&0xc0       0x80           \b SSR
-# timing
->2      byte&0x3c       0x00           \b, 96 kHz
->2      byte&0x3c       0x04           \b, 88.2 kHz
->2      byte&0x3c       0x08           \b, 64 kHz
->2      byte&0x3c       0x0c           \b, 48 kHz
->2      byte&0x3c       0x10           \b, 44.1 kHz
->2      byte&0x3c       0x14           \b, 32 kHz
->2      byte&0x3c       0x18           \b, 24 kHz
->2      byte&0x3c       0x1c           \b, 22.05 kHz
->2      byte&0x3c       0x20           \b, 16 kHz
->2      byte&0x3c       0x24           \b, 12 kHz
->2      byte&0x3c       0x28           \b, 11.025 kHz
->2      byte&0x3c       0x2c           \b, 8 kHz
-# channels
->2      beshort&0x01c0  0x0040         \b, monaural
->2      beshort&0x01c0  0x0080         \b, stereo
->2      beshort&0x01c0  0x00c0         \b, stereo + center
->2      beshort&0x01c0  0x0100         \b, stereo+center+LFE
->2      beshort&0x01c0  0x0140         \b, surround
->2      beshort&0x01c0  0x0180         \b, surround + LFE
->2      beshort         &0x01C0        \b, surround + side
-#>1     byte            ^0x01           \b, Data Verify
-#>2     byte            &0x02           \b, Custom Flag
-#>3     byte            &0x20           \b, Original Stream
-#>3     byte            &0x10           \b, Home Source
-#>3     byte            &0x08           \b, Copyrighted
-
-# Live MPEG-4 audio streams (instead of RTP FlexMux)
-0       beshort&0xFFE0  0x56E0         MPEG-4 LOAS
-!:mime	audio/x-mp4a-latm
-#>1     beshort&0x1FFF  x              \b, %u byte packet
->3      byte&0xE0       0x40
->>4     byte&0x3C       0x04           \b, single stream
->>4     byte&0x3C       0x08           \b, 2 streams
->>4     byte&0x3C       0x0C           \b, 3 streams
->>4     byte            &0x08          \b, 4 or more streams
->>4     byte            &0x20          \b, 8 or more streams
->3      byte&0xC0       0
->>4     byte&0x78       0x08           \b, single stream
->>4     byte&0x78       0x10           \b, 2 streams
->>4     byte&0x78       0x18           \b, 3 streams
->>4     byte            &0x20          \b, 4 or more streams
->>4     byte            &0x40          \b, 8 or more streams
-# This magic isn't strong enough (matches plausible ISO-8859-1 text)
-#0       beshort         0x4DE1         MPEG-4 LO-EP audio stream
-#!:mime	audio/x-mp4a-latm
-
-# Summary: FLI animation format
-# Created by: Daniel Quinlan <quinlan@yggdrasil.com>
-# Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
-4	leshort		0xAF11
-# standard FLI always has 320x200 resolution and 8 bit color
->8	leshort		320
->>10	leshort		200
->>>12	leshort		8			FLI animation, 320x200x8
-!:mime	video/x-fli
->>>>6	leshort		x			\b, %d frames
-# frame speed is multiple of 1/70s
->>>>16	leshort		x			\b, %d/70s per frame
-
-# Summary: FLC animation format
-# Created by: Daniel Quinlan <quinlan@yggdrasil.com>
-# Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
-4	leshort		0xAF12
-# standard FLC always use 8 bit color
->12	leshort		8			FLC animation
-!:mime	video/x-flc
->>8	leshort		x			\b, %d
->>10	leshort		x			\bx%dx8
->>6	uleshort	x			\b, %d frames
->>16	uleshort	x			\b, %dms per frame
-
-# DL animation format
-# XXX - collision with most `mips' magic
-#
-# I couldn't find a real magic number for these, however, this
-# -appears- to work.  Note that it might catch other files, too, so be
-# careful!
-#
-# Note that title and author appear in the two 20-byte chunks
-# at decimal offsets 2 and 22, respectively, but they are XOR'ed with
-# 255 (hex FF)!  The DL format is really bad.
-#
-#0	byte	1	DL version 1, medium format (160x100, 4 images/screen)
-#!:mime	video/x-unknown
-#>42	byte	x	- %d screens,
-#>43	byte	x	%d commands
-#0	byte	2	DL version 2
-#!:mime	video/x-unknown
-#>1	byte	1	- large format (320x200,1 image/screen),
-#>1	byte	2	- medium format (160x100,4 images/screen),
-#>1	byte	>2	- unknown format,
-#>42	byte	x	%d screens,
-#>43	byte	x	%d commands
-# Based on empirical evidence, DL version 3 have several nulls following the
-# \003.  Most of them start with non-null values at hex offset 0x34 or so.
-#0	string	\3\0\0\0\0\0\0\0\0\0\0\0	DL version 3
-
-# iso 13818 transport stream
-#
-# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001 (ISO 13818.1)
-# (the following is a little bit restrictive and works fine for a stream
-#  that starts with PAT properly. it won't work for stream data, that is
-#  cut from an input device data right in the middle, but this shouldn't
-#  disturb)
-# syncbyte      8 bit	0x47
-# error_ind     1 bit	-
-# payload_start 1 bit	1
-# priority      1 bit	-
-# PID          13 bit	0x0000
-# scrambling    2 bit	-
-# adaptfld_ctrl 2 bit	1 or 3
-# conti_count   4 bit	0
-0	belong&0xFF5FFF1F	0x47400010	MPEG transport stream data
->188	byte			!0x47		CORRUPTED
-
-# DIF digital video file format <mpruett@sgi.com>
-0	belong&0xffffff00	0x1f070000      DIF
->4	byte			&0x01		(DVCPRO) movie file
->4	byte			^0x01		(DV) movie file
->3	byte			&0x80		(PAL)
->3	byte			^0x80		(NTSC)
-
-# Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
-0	belong			0x3026b275	Microsoft ASF
-!:mime	video/x-ms-asf
-
-# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
-0	string			\x8aMNG		MNG video data,
-!:mime	video/x-mng
->4	belong			!0x0d0a1a0a	CORRUPTED,
->4	belong			0x0d0a1a0a
->>16    belong	x				%ld x
->>20    belong	x				%ld
-
-# JNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
-0	string			\x8bJNG		JNG video data,
-!:mime	video/x-jng
->4	belong			!0x0d0a1a0a	CORRUPTED,
->4	belong			0x0d0a1a0a
->>16    belong	x				%ld x
->>20    belong	x				%ld
-
-# Vivo video (Wolfram Kleff)
-3	string		\x0D\x0AVersion:Vivo	Vivo video data
-
-# VRML (Virtual Reality Modelling Language)
-0       string/b        #VRML\ V1.0\ ascii	VRML 1 file
-!:mime	model/vrml
-0	string/b	#VRML\ V2.0\ utf8	ISO/IEC 14772 VRML 97 file
-!:mime	model/vrml
-
-# X3D (Extensible 3D) [http://www.web3d.org/specifications/x3d-3.0.dtd]
-# From Michel Briand <michelbriand@free.fr>
-0	string		\<?xml\ version="
-!:strength +1
->20	search/1000/cb  \<!DOCTYPE\ X3D		X3D (Extensible 3D) model xml text
-!:mime model/x3d
-
-#---------------------------------------------------------------------------
-# HVQM4: compressed movie format designed by Hudson for Nintendo GameCube
-# From Mark Sheppard <msheppard@climax.co.uk>, 2002-10-03
-#
-0	string		HVQM4		%s
->6	string		>\0		v%s
->0	byte		x		GameCube movie,
->0x34	ubeshort	x		%d x
->0x36	ubeshort	x		%d,
->0x26	ubeshort	x		%dµs,
->0x42	ubeshort	0		no audio
->0x42	ubeshort	>0		%dHz audio
-
-# From: "Stefan A. Haubenthal" <polluks@web.de>
-0	string		DVDVIDEO-VTS	Video title set,
->0x21	byte		x		v%x
-0	string		DVDVIDEO-VMG	Video manager,
->0x21	byte		x		v%x
-
-# From: Behan Webster <behanw@websterwood.com>
-# NuppelVideo used by Mythtv (*.nuv)
-# Note: there are two identical stanzas here differing only in the
-# initial string matched. It used to be done with a regex, but we're
-# trying to get rid of those.
-0	string		NuppelVideo	MythTV NuppelVideo
->12	string		x		v%s
->20	lelong		x		(%d
->24	lelong		x		\bx%d),
->36	string		P		\bprogressive,
->36	string		I		\binterlaced,
->40	ledouble	x		\baspect:%.2f,
->48	ledouble	x		\bfps:%.2f
-0	string		MythTV		MythTV NuppelVideo
->12	string		x		v%s
->20	lelong		x		(%d
->24	lelong		x		\bx%d),
->36	string		P		\bprogressive,
->36	string		I		\binterlaced,
->40	ledouble	x		\baspect:%.2f,
->48	ledouble	x		\bfps:%.2f
-
-#						MPEG file
-# MPEG sequences
-# FIXME: This section is from the old magic.mime file and needs integrating with the rest
-0       belong             0x000001BA
->4      byte               &0x40
-!:mime	video/mp2p
->4      byte               ^0x40
-!:mime	video/mpeg
-0       belong             0x000001BB
-!:mime	video/mpeg
-0       belong             0x000001B0
-!:mime	video/mp4v-es
-0       belong             0x000001B5
-!:mime	video/mp4v-es
-0       belong             0x000001B3
-!:mime	video/mpv
-0       belong&0xFF5FFF1F  0x47400010
-!:mime	video/mp2t
-0       belong             0x00000001
->4      byte&0x1F	   0x07
-!:mime	video/h264
-
-# Type: Bink Video
-# URL:  http://wiki.multimedia.cx/index.php?title=3DBink_Container
-# From: <hoehle@users.sourceforge.net>  2008-07-18
-0	string		BIK	Bink Video
->3	regex		=[a-z]	rev.%s
-#>4	ulelong		x	size %d
->20	ulelong		x	\b, %d
->24	ulelong		x	\bx%d
->8	ulelong		x	\b, %d frames
->32	ulelong		x	at rate %d/
->28	ulelong		>1	\b%d
->40	ulelong		=0	\b, no audio
->40	ulelong		!0	\b, %d audio track
->>40	ulelong		!1	\bs
-# follow properties of the first audio track only
->>48	uleshort	x	%dHz
->>51	byte&0x20	0	mono
->>51	byte&0x20	!0	stereo
-#>>51	byte&0x10	0	FFT
-#>>51	byte&0x10	!0	DCT
-
-#------------------------------------------------------------------------------
-# apl:  file(1) magic for APL (see also "pdp" and "vax" for other APL
-#       workspaces)
-#
-0	long		0100554		APL workspace (Ken's original?)
-#------------------------------------------------------------------------------
-# apple:  file(1) magic for Apple file formats
-#
-0	search/1	FiLeStArTfIlEsTaRt	binscii (apple ][) text
-0	string		\x0aGL			Binary II (apple ][) data
-0	string		\x76\xff		Squeezed (apple ][) data
-0	string		NuFile			NuFile archive (apple ][) data
-0	string		N\xf5F\xe9l\xe5		NuFile archive (apple ][) data
-0	belong		0x00051600		AppleSingle encoded Macintosh file
-0	belong		0x00051607		AppleDouble encoded Macintosh file
-
-# Type: Apple Emulator 2IMG format
-# From: Radek Vokal <rvokal@redhat.com>
-0	string		2IMG	Apple ][ 2IMG Disk Image
->4	string		XGS!	\b, XGS
->4	string		CTKG	\b, Catakig
->4	string		ShIm	\b, Sheppy's ImageMaker
->4	string		WOOF	\b, Sweet 16
->4	string		B2TR	\b, Bernie ][ the Rescue
->4	string		!nfc	\b, ASIMOV2
->4	string		x	\b, Unknown Format
->0xc	byte		00	\b, DOS 3.3 sector order
->>0x10	byte		00	\b, Volume 254
->>0x10	byte&0x7f	x	\b, Volume %u
->0xc	byte		01	\b, ProDOS sector order
->>0x14	short		x	\b, %u Blocks
->0xc	byte		02	\b, NIB data
-
-# magic for Newton PDA package formats
-# from Ruda Moura <ruda@helllabs.org>
-0	string	package0	Newton package, NOS 1.x,
->12	belong	&0x80000000	AutoRemove,
->12	belong	&0x40000000	CopyProtect,
->12	belong	&0x10000000	NoCompression,
->12	belong	&0x04000000	Relocation,
->12	belong	&0x02000000	UseFasterCompression,
->16	belong	x		version %d
-
-0	string	package1	Newton package, NOS 2.x,
->12	belong	&0x80000000	AutoRemove,
->12	belong	&0x40000000	CopyProtect,
->12	belong	&0x10000000	NoCompression,
->12	belong	&0x04000000	Relocation,
->12	belong	&0x02000000	UseFasterCompression,
->16	belong	x		version %d
-
-0	string	package4	Newton package,
->8	byte	8		NOS 1.x,
->8	byte	9		NOS 2.x,
->12	belong	&0x80000000	AutoRemove,
->12	belong	&0x40000000	CopyProtect,
->12	belong	&0x10000000	NoCompression,
-
-# The following entries for the Apple II are for files that have
-# been transferred as raw binary data from an Apple, without having
-# been encapsulated by any of the above archivers.
-#
-# In general, Apple II formats are hard to identify because Apple DOS
-# and especially Apple ProDOS have strong typing in the file system and
-# therefore programmers never felt much need to include type information
-# in the files themselves.
-#
-# Eric Fischer <enf@pobox.com>
-
-# AppleWorks word processor:
-#
-# This matches the standard tab stops for an AppleWorks file, but if
-# a file has a tab stop set in the first four columns this will fail.
-#
-# The "O" is really the magic number, but that's so common that it's
-# necessary to check the tab stops that follow it to avoid false positives.
-
-4       string          O====   AppleWorks word processor data
->85     byte&0x01       >0      \b, zoomed
->90     byte&0x01       >0      \b, paginated
->92     byte&0x01       >0      \b, with mail merge
-#>91    byte            x       \b, left margin %d
-
-# AppleWorks database:
-#
-# This isn't really a magic number, but it's the closest thing to one
-# that I could find.  The 1 and 2 really mean "order in which you defined
-# categories" and "left to right, top to bottom," respectively; the D and R
-# mean that the cursor should move either down or right when you press Return.
-
-#30	string		\x01D	AppleWorks database data
-#30	string		\x02D	AppleWorks database data
-#30	string		\x01R	AppleWorks database data
-#30	string		\x02R	AppleWorks database data
-
-# AppleWorks spreadsheet:
-#
-# Likewise, this isn't really meant as a magic number.  The R or C means
-# row- or column-order recalculation; the A or M means automatic or manual
-# recalculation.
-
-#131	string		RA	AppleWorks spreadsheet data
-#131	string		RM	AppleWorks spreadsheet data
-#131	string		CA	AppleWorks spreadsheet data
-#131	string		CM	AppleWorks spreadsheet data
-
-# Applesoft BASIC:
-#
-# This is incredibly sloppy, but will be true if the program was
-# written at its usual memory location of 2048 and its first line
-# number is less than 256.  Yuck.
-
-0       belong&0xff00ff 0x80000 Applesoft BASIC program data
-#>2     leshort         x       \b, first line number %d
-
-# ORCA/EZ assembler:
-# 
-# This will not identify ORCA/M source files, since those have
-# some sort of date code instead of the two zero bytes at 6 and 7
-# XXX Conflicts with ELF
-#4       belong&0xff00ffff       0x01000000      ORCA/EZ assembler source data
-#>5      byte                    x               \b, build number %d
-
-# Broderbund Fantavision
-#
-# I don't know what these values really mean, but they seem to recur.
-# Will they cause too many conflicts?
-
-# Probably :-)
-#2	belong&0xFF00FF		0x040008	Fantavision movie data
-
-# Some attempts at images.
-#
-# These are actually just bit-for-bit dumps of the frame buffer, so
-# there's really no reasonably way to distinguish them except for their
-# address (if preserved) -- 8192 or 16384 -- and their length -- 8192
-# or, occasionally, 8184.
-#
-# Nevertheless this will manage to catch a lot of images that happen
-# to have a solid-colored line at the bottom of the screen.
-
-# GRR: Magic too weak
-#8144	string	\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F	Apple II image with white background
-#8144	string	\x55\x2A\x55\x2A\x55\x2A\x55\x2A	Apple II image with purple background
-#8144	string	\x2A\x55\x2A\x55\x2A\x55\x2A\x55	Apple II image with green background
-#8144	string	\xD5\xAA\xD5\xAA\xD5\xAA\xD5\xAA	Apple II image with blue background
-#8144	string	\xAA\xD5\xAA\xD5\xAA\xD5\xAA\xD5	Apple II image with orange background
-
-# Beagle Bros. Apple Mechanic fonts
-
-0	belong&0xFF00FFFF	0x6400D000	Apple Mechanic font
-
-# Apple Universal Disk Image Format (UDIF) - dmg files.
-# From Johan Gade.
-# These entries are disabled for now until we fix the following issues.
-#
-# Note there might be some problems with the "VAX COFF executable" 
-# entry. Note this entry should be placed before the mac filesystem section, 
-# particularly the "Apple Partition data" entry.
-#
-# The intended meaning of these tests is, that the file is only of the 
-# specified type if both of the lines are correct - i.e. if the first
-# line matches and the second doesn't then it is not of that type.
-#
-#0	long	0x7801730d
-#>4	long	0x62626060	UDIF read-only zlib-compressed image (UDZO)
-#
-# Note that this entry is recognized correctly by the "Apple Partition 
-# data" entry - however since this entry is more specific - this
-# information seems to be more useful.
-#0	long	0x45520200
-#>0x410	string	disk\ image	UDIF read/write image (UDRW)
-
-# From: Toby Peterson <toby@apple.com>
-0	string	bplist00	Apple binary property list
-
-# Apple binary property list (bplist)
-#  Assumes version bytes are hex.
-#  Provides content hints for version 0 files. Assumes that the root
-#  object is the first object (true for CoreFoundation implementation).
-# From: David Remahl <dremahl@apple.com>
-0		string	bplist
->6		byte	x	\bCoreFoundation binary property list data, version 0x%c
->>7		byte	x	\b%c
->6		string		00		\b
->>8		byte&0xF0	0x00	\b
->>>8	byte&0x0F	0x00	\b, root type: null
->>>8	byte&0x0F	0x08	\b, root type: false boolean
->>>8	byte&0x0F	0x09	\b, root type: true boolean
->>8		byte&0xF0	0x10	\b, root type: integer
->>8		byte&0xF0	0x20	\b, root type: real
->>8		byte&0xF0	0x30	\b, root type: date
->>8		byte&0xF0	0x40    \b, root type: data
->>8		byte&0xF0	0x50	\b, root type: ascii string
->>8		byte&0xF0	0x60	\b, root type: unicode string
->>8		byte&0xF0	0x80	\b, root type: uid (CORRUPT)
->>8		byte&0xF0	0xa0	\b, root type: array
->>8		byte&0xF0	0xd0	\b, root type: dictionary
-
-# Apple/NeXT typedstream data
-#  Serialization format used by NeXT and Apple for various
-#  purposes in YellowStep/Cocoa, including some nib files.
-# From: David Remahl <dremahl@apple.com>
-2		string		typedstream	NeXT/Apple typedstream data, big endian
->0		byte		x		\b, version %hhd
->0		byte		<5		\b
->>13	byte		0x81	\b
->>>14	ubeshort	x		\b, system %hd
-2		string		streamtyped NeXT/Apple typedstream data, little endian
->0		byte		x		\b, version %hhd
->0		byte		<5		\b
->>13	byte		0x81	\b
->>>14	uleshort	x		\b, system %hd
-
-#------------------------------------------------------------------------------
-# CAF: Apple CoreAudio File Format
-#
-# Container format for high-end audio purposes.
-# From: David Remahl <dremahl@apple.com>
-#
-0	string		caff		CoreAudio Format audio file
->4	beshort		<10		version %d
->6	beshort		x
-
-
-#------------------------------------------------------------------------------
-# Keychain database files
-0	string		kych		Mac OS X Keychain File
-
-#------------------------------------------------------------------------------
-# Code Signing related file types
-0	belong		0xfade0c00	Mac OS X Code Requirement
->8	belong		1			(opExpr)
->4	belong		x			- %d bytes
-
-0	belong		0xfade0c01	Mac OS X Code Requirement Set
->8	belong		>1			containing %d items
->4	belong		x			- %d bytes
-
-0	belong		0xfade0c02	Mac OS X Code Directory
->8	belong		x			version %x
->12	belong		>0			flags 0x%x
->4	belong		x			- %d bytes
-
-0	belong		0xfade0cc0	Mac OS X Detached Code Signature (non-executable)
->4	belong		x			- %d bytes
-
-0	belong		0xfade0cc1	Mac OS X Detached Code Signature
->8	belong		>1			(%d elements)
->4	belong		x			- %d bytes
-
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-# .vdi
-4	string innotek\ VirtualBox\ Disk\ Image %s
-
-#------------------------------------------------------------------------------
-# applix:  file(1) magic for Applixware
-# From: Peter Soos <sp@osb.hu>
-#
-0	string		*BEGIN		Applixware
->7	string		WORDS			Words Document
->7	string		GRAPHICS		Graphic
->7	string		RASTER			Bitmap
->7	string		SPREADSHEETS		Spreadsheet
->7	string		MACRO			Macro
->7	string		BUILDER			Builder Object
-#------------------------------------------------------------------------------
-# archive:  file(1) magic for archive formats (see also "msdos" for self-
-#           extracting compressed archives)
-#
-# cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc.
-# pre-POSIX "tar" archives are handled in the C code.
-
-# POSIX tar archives
-257	string		ustar\0		POSIX tar archive
-!:mime	application/x-tar # encoding: posix
-257	string		ustar\040\040\0	GNU tar archive
-!:mime	application/x-tar # encoding: gnu
-
-# cpio archives
-#
-# Yes, the top two "cpio archive" formats *are* supposed to just be "short".
-# The idea is to indicate archives produced on machines with the same
-# byte order as the machine running "file" with "cpio archive", and
-# to indicate archives produced on machines with the opposite byte order
-# from the machine running "file" with "byte-swapped cpio archive".
-#
-# The SVR4 "cpio(4)" hints that there are additional formats, but they
-# are defined as "short"s; I think all the new formats are
-# character-header formats and thus are strings, not numbers.
-0	short		070707		cpio archive
-!:mime	application/x-cpio
-0	short		0143561		byte-swapped cpio archive
-!:mime	application/x-cpio # encoding: swapped
-0	string		070707		ASCII cpio archive (pre-SVR4 or odc)
-0	string		070701		ASCII cpio archive (SVR4 with no CRC)
-0	string		070702		ASCII cpio archive (SVR4 with CRC)
-
-# Debian package (needs to go before regular portable archives)
-#
-0	string		=!<arch>\ndebian
-!:mime	application/x-debian-package
->8	string		debian-split	part of multipart Debian package
->8	string		debian-binary	Debian binary package
->8	string		!debian
->68	string		>\0		(format %s)
-# These next two lines do not work, because a bzip2 Debian archive
-# still uses gzip for the control.tar (first in the archive).  Only
-# data.tar varies, and the location of its filename varies too.
-# file/libmagic does not current have support for ascii-string based
-# (offsets) as of 2005-09-15.
-#>81	string		bz2		\b, uses bzip2 compression
-#>84	string		gz		\b, uses gzip compression
-#>136	ledate		x		created: %s
-
-# other archives
-0	long		0177555		very old archive
-0	short		0177555		very old PDP-11 archive
-0	long		0177545		old archive
-0	short		0177545		old PDP-11 archive
-0	long		0100554		apl workspace
-0	string		=<ar>		archive
-!:mime	application/x-archive
-
-# MIPS archive (needs to go before regular portable archives)
-#
-0	string	=!<arch>\n__________E	MIPS archive
->20	string	U			with MIPS Ucode members
->21	string	L			with MIPSEL members
->21	string	B			with MIPSEB members
->19	string	L			and an EL hash table
->19	string	B			and an EB hash table
->22	string	X			-- out of date
-
-0	search/1	-h-		Software Tools format archive text
-
-#
-# XXX - why are there multiple <ar> thingies?  Note that 0x213c6172 is
-# "!<ar", so, for new-style (4.xBSD/SVR2andup) archives, we have:
-#
-# 0	string		=!<arch>		current ar archive
-# 0	long		0x213c6172	archive file
-#
-# and for SVR1 archives, we have:
-#
-# 0	string		\<ar>		System V Release 1 ar archive
-# 0	string		=<ar>		archive
-#
-# XXX - did Aegis really store shared libraries, breakpointed modules,
-# and absolute code program modules in the same format as new-style
-# "ar" archives?
-#
-0	string		=!<arch>		current ar archive
-!:mime	application/x-archive
->8	string		__.SYMDEF	random library
->0	belong		=65538		- pre SR9.5
->0	belong		=65539		- post SR9.5
->0	beshort		2		- object archive
->0	beshort		3		- shared library module
->0	beshort		4		- debug break-pointed module
->0	beshort		5		- absolute code program module
-0	string		\<ar>		System V Release 1 ar archive
-0	string		=<ar>		archive
-#
-# XXX - from "vax", which appears to collect a bunch of byte-swapped
-# thingies, to help you recognize VAX files on big-endian machines;
-# with "leshort", "lelong", and "string", that's no longer necessary....
-#
-0	belong		0x65ff0000	VAX 3.0 archive
-0	belong		0x3c61723e	VAX 5.0 archive
-#
-0	long		0x213c6172	archive file
-0	lelong		0177555		very old VAX archive
-0	leshort		0177555		very old PDP-11 archive
-#
-# XXX - "pdp" claims that 0177545 can have an __.SYMDEF member and thus
-# be a random library (it said 0xff65 rather than 0177545).
-#
-0	lelong		0177545		old VAX archive
->8	string		__.SYMDEF	random library
-0	leshort		0177545		old PDP-11 archive
->8	string		__.SYMDEF	random library
-#
-# From "pdp" (but why a 4-byte quantity?)
-#
-0	lelong		0x39bed		PDP-11 old archive
-0	lelong		0x39bee		PDP-11 4.0 archive
-
-# ARC archiver, from Daniel Quinlan (quinlan@yggdrasil.com)
-#
-# The first byte is the magic (0x1a), byte 2 is the compression type for
-# the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS
-# filename of the first file (null terminated).  Since some types collide
-# we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%),
-# 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%).  0x01 collides with terminfo.
-0	lelong&0x8080ffff	0x0000081a	ARC archive data, dynamic LZW
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000091a	ARC archive data, squashed
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000021a	ARC archive data, uncompressed
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000031a	ARC archive data, packed
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000041a	ARC archive data, squeezed
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000061a	ARC archive data, crunched
-!:mime	application/x-arc
-# [JW] stuff taken from idarc, obviously ARC successors:
-0	lelong&0x8080ffff	0x00000a1a	PAK archive data
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000141a	ARC+ archive data
-!:mime	application/x-arc
-0	lelong&0x8080ffff	0x0000481a	HYP archive data
-!:mime	application/x-arc
-
-# Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk)
-# I can't create either SPARK or ArcFS archives so I have not tested this stuff
-# [GRR:  the original entries collide with ARC, above; replaced with combined
-#  version (not tested)]
-#0	byte		0x1a		RISC OS archive (spark format)
-0	string		\032archive	RISC OS archive (ArcFS format)
-0       string          Archive\000     RISC OS archive (ArcFS format)
-
-# All these were taken from idarc, many could not be verified. Unfortunately,
-# there were many low-quality sigs, i.e. easy to trigger false positives.
-# Please notify me of any real-world fishy/ambiguous signatures and I'll try
-# to get my hands on the actual archiver and see if I find something better. [JW]
-# probably many can be enhanced by finding some 0-byte or control char near the start
-
-# idarc calls this Crush/Uncompressed... *shrug*
-0	string	CRUSH Crush archive data
-# Squeeze It (.sqz)
-0	string	HLSQZ Squeeze It archive data
-# SQWEZ
-0	string	SQWEZ SQWEZ archive data
-# HPack (.hpk)
-0	string	HPAK HPack archive data
-# HAP
-0	string	\x91\x33HF HAP archive data
-# MD/MDCD
-0	string	MDmd MDCD archive data
-# LIM
-0	string	LIM\x1a LIM archive data
-# SAR
-3	string	LH5 SAR archive data
-# BSArc/BS2
-0	string	\212\3SB \0 BSArc/BS2 archive data
-# MAR
-2	string	=-ah MAR archive data
-# ACB
-0	belong&0x00f800ff	0x00800000 ACB archive data
-# CPZ
-# TODO, this is what idarc says: 0	string	\0\0\0 CPZ archive data
-# JRC
-0	string	JRchive JRC archive data
-# Quantum
-0	string	DS\0 Quantum archive data
-# ReSOF
-0	string	PK\3\6 ReSOF archive data
-# QuArk
-0	string	7\4 QuArk archive data
-# YAC
-14	string	YC YAC archive data
-# X1
-0	string	X1 X1 archive data
-0	string	XhDr X1 archive data
-# CDC Codec (.dqt)
-0	belong&0xffffe000	0x76ff2000 CDC Codec archive data
-# AMGC
-0	string	\xad6" AMGC archive data
-# NuLIB
-0	string	NõFélå NuLIB archive data
-# PakLeo
-0	string	LEOLZW PAKLeo archive data
-# ChArc
-0	string	SChF ChArc archive data
-# PSA
-0	string	PSA PSA archive data
-# CrossePAC
-0	string	DSIGDCC CrossePAC archive data
-# Freeze
-0	string	\x1f\x9f\x4a\x10\x0a Freeze archive data
-# KBoom
-0	string	¨MP¨ KBoom archive data
-# NSQ, must go after CDC Codec
-0	string	\x76\xff NSQ archive data
-# DPA
-0	string	Dirk\ Paehl DPA archive data
-# BA
-# TODO: idarc says "bytes 0-2 == bytes 3-5"
-# TTComp
-0	string	\0\6 TTComp archive data
-# ESP, could this conflict with Easy Software Products' (e.g.ESP ghostscript) documentation?
-0	string	ESP ESP archive data
-# ZPack
-0	string	\1ZPK\1 ZPack archive data
-# Sky
-0	string	\xbc\x40 Sky archive data
-# UFA
-0	string	UFA UFA archive data
-# Dry
-0	string	=-H2O DRY archive data
-# FoxSQZ
-0	string	FOXSQZ FoxSQZ archive data
-# AR7
-0	string	,AR7 AR7 archive data
-# PPMZ
-0	string	PPMZ PPMZ archive data
-# MS Compress
-4	string	\x88\xf0\x27 MS Compress archive data
-# updated by Joerg Jenderek
->9	string	\0		
->>0	string	KWAJ		
->>>7	string	\321\003	MS Compress archive data
->>>>14	ulong	>0		\b, original size: %ld bytes
->>>>18		ubyte	>0x65  	
->>>>>18		string	x    	\b, was %.8s
->>>>>(10.b-4)	string	x    	\b.%.3s
-# MP3 (archiver, not lossy audio compression)
-0	string	MP3\x1a MP3-Archiver archive data
-# ZET
-0	string	OZÝ ZET archive data
-# TSComp
-0	string	\x65\x5d\x13\x8c\x08\x01\x03\x00 TSComp archive data
-# ARQ
-0	string	gW\4\1 ARQ archive data
-# Squash
-3	string	OctSqu Squash archive data
-# Terse
-0	string	\5\1\1\0 Terse archive data
-# PUCrunch
-0	string	\x01\x08\x0b\x08\xef\x00\x9e\x32\x30\x36\x31 PUCrunch archive data
-# UHarc
-0	string	UHA UHarc archive data
-# ABComp
-0	string	\2AB ABComp archive data
-0	string	\3AB2 ABComp archive data
-# CMP
-0	string	CO\0 CMP archive data
-# Splint
-0	string	\x93\xb9\x06 Splint archive data
-# InstallShield
-0	string	 \x13\x5d\x65\x8c InstallShield Z archive Data
-# Gather
-1	string	GTH Gather archive data
-# BOA
-0	string	BOA BOA archive data
-# RAX
-0	string	ULEB\xa RAX archive data
-# Xtreme
-0	string	ULEB\0 Xtreme archive data
-# Pack Magic
-0	string	@â\1\0 Pack Magic archive data
-# BTS
-0	belong&0xfeffffff	0x1a034465 BTS archive data
-# ELI 5750
-0	string	Ora\  ELI 5750 archive data
-# QFC
-0	string	\x1aFC\x1a QFC archive data
-0	string	\x1aQF\x1a QFC archive data
-# PRO-PACK
-0	string	RNC PRO-PACK archive data
-# 777
-0	string	777 777 archive data
-# LZS221
-0	string	sTaC LZS221 archive data
-# HPA
-0	string	HPA HPA archive data
-# Arhangel
-0	string	LG Arhangel archive data
-# EXP1, uses bzip2
-0	string	0123456789012345BZh EXP1 archive data
-# IMP
-0	string	IMP\xa IMP archive data
-# NRV
-0	string	\x00\x9E\x6E\x72\x76\xFF NRV archive data
-# Squish
-0	string	\x73\xb2\x90\xf4 Squish archive data
-# Par
-0	string	PHILIPP Par archive data
-0	string	PAR Par archive data
-# HIT
-0	string	UB HIT archive data
-# SBX
-0	belong&0xfffff000	0x53423000 SBX archive data
-# NaShrink
-0	string	NSK NaShrink archive data
-# SAPCAR
-0	string	#\ CAR\ archive\ header SAPCAR archive data
-0	string	CAR\ 2.00RG SAPCAR archive data
-# Disintegrator
-0	string	DST Disintegrator archive data
-# ASD
-0	string	ASD ASD archive data
-# InstallShield CAB
-0	string	ISc( InstallShield CAB
-# TOP4
-0	string	T4\x1a TOP4 archive data
-# BatComp left out: sig looks like COM executable
-# so TODO: get real 4dos batcomp file and find sig
-# BlakHole
-0	string	BH\5\7 BlakHole archive data
-# BIX
-0	string	BIX0 BIX archive data
-# ChiefLZA
-0	string	ChfLZ ChiefLZA archive data
-# Blink
-0	string	Blink Blink archive data
-# Logitech Compress
-0	string	\xda\xfa Logitech Compress archive data
-# ARS-Sfx (FIXME: really a SFX? then goto COM/EXE)
-1	string	(C)\ STEPANYUK ARS-Sfx archive data
-# AKT/AKT32
-0	string	AKT32 AKT32 archive data
-0	string	AKT AKT archive data
-# NPack
-0	string	MSTSM NPack archive data
-# PFT
-0	string	\0\x50\0\x14 PFT archive data
-# SemOne
-0	string	SEM SemOne archive data
-# PPMD
-0	string	\x8f\xaf\xac\x84 PPMD archive data
-# FIZ
-0	string	FIZ FIZ archive data
-# MSXiE
-0	belong&0xfffff0f0	0x4d530000 MSXiE archive data
-# DeepFreezer
-0	belong&0xfffffff0	0x797a3030 DeepFreezer archive data
-# DC
-0	string	=<DC- DC archive data
-# TPac
-0	string	\4TPAC\3 TPac archive data
-# Ai
-0	string	Ai\1\1\0 Ai archive data
-0	string	Ai\1\0\0 Ai archive data
-# Ai32
-0	string	Ai\2\0 Ai32 archive data
-0	string	Ai\2\1 Ai32 archive data
-# SBC
-0	string	SBC SBC archive data
-# Ybs
-0	string	YBS Ybs archive data
-# DitPack
-0	string	\x9e\0\0 DitPack archive data
-# DMS
-0	string	DMS! DMS archive data
-# EPC
-0	string	\x8f\xaf\xac\x8c EPC archive data
-# VSARC
-0	string	VS\x1a VSARC archive data
-# PDZ
-0	string	PDZ PDZ archive data
-# ReDuq
-0	string	rdqx ReDuq archive data
-# GCA
-0	string	GCAX GCA archive data
-# PPMN
-0	string	pN PPMN archive data
-# WinImage
-3	string	WINIMAGE WinImage archive data
-# Compressia
-0	string	CMP0CMP Compressia archive data
-# UHBC
-0	string	UHB UHBC archive data
-# WinHKI
-0	string	\x61\x5C\x04\x05 WinHKI archive data
-# WWPack data file
-0	string	WWP WWPack archive data
-# BSN (BSA, PTS-DOS)
-0	string	\xffBSG BSN archive data
-1	string	\xffBSG BSN archive data
-3	string	\xffBSG BSN archive data
-1	string	\0\xae\2 BSN archive data
-1	string	\0\xae\3 BSN archive data
-1	string	\0\xae\7 BSN archive data
-# AIN
-0	string	\x33\x18 AIN archive data
-0	string	\x33\x17 AIN archive data
-# XPA32
-0	string	xpa\0\1 XPA32 archive data
-# SZip (TODO: doesn't catch all versions)
-0	string	SZ\x0a\4 SZip archive data
-# XPack DiskImage
-0	string	jm XPack DiskImage archive data
-# XPack Data
-0	string	xpa XPack archive data
-# XPack Single Data
-0	string	Í\ jm XPack single archive data
-
-# TODO: missing due to unknown magic/magic at end of file:
-#DWC
-#ARG
-#ZAR
-#PC/3270
-#InstallIt
-#RKive
-#RK
-#XPack Diskimage
-
-# These were inspired by idarc, but actually verified
-# Dzip archiver (.dz)
-0	string	DZ Dzip archive data
->2	byte	x \b, version %i
->3	byte	x \b.%i
-# ZZip archiver (.zz)
-0	string	ZZ\ \0\0 ZZip archive data
-0	string	ZZ0 ZZip archive data
-# PAQ archiver (.paq)
-0	string	\xaa\x40\x5f\x77\x1f\xe5\x82\x0d PAQ archive data
-0	string	PAQ PAQ archive data
->3	byte&0xf0	0x30
->>3	byte	x (v%c)
-# JAR archiver (.j), this is the successor to ARJ, not Java's JAR (which is essentially ZIP)
-0xe	string	\x1aJar\x1b JAR (ARJ Software, Inc.) archive data
-0	string	JARCS JAR (ARJ Software, Inc.) archive data
-
-# ARJ archiver (jason@jarthur.Claremont.EDU)
-0	leshort		0xea60		ARJ archive data
-!:mime	application/x-arj
->5	byte		x		\b, v%d,
->8	byte		&0x04		multi-volume,
->8	byte		&0x10		slash-switched,
->8	byte		&0x20		backup,
->34	string		x		original name: %s,
->7	byte		0		os: MS-DOS
->7	byte		1		os: PRIMOS
->7	byte		2		os: Unix
->7	byte		3		os: Amiga
->7	byte		4		os: Macintosh
->7	byte		5		os: OS/2
->7	byte		6		os: Apple ][ GS
->7	byte		7		os: Atari ST
->7	byte		8		os: NeXT
->7	byte		9		os: VAX/VMS
->3	byte		>0		%d]
-# [JW] idarc says this is also possible
-2	leshort		0xea60		ARJ archive data
-
-# HA archiver (Greg Roelofs, newt@uchicago.edu)
-# This is a really bad format. A file containing HAWAII will match this...
-#0	string		HA		HA archive data,
-#>2	leshort		=1		1 file,
-#>2	leshort		>1		%u files,
-#>4	byte&0x0f	=0		first is type CPY
-#>4	byte&0x0f	=1		first is type ASC
-#>4	byte&0x0f	=2		first is type HSC
-#>4	byte&0x0f	=0x0e		first is type DIR
-#>4	byte&0x0f	=0x0f		first is type SPECIAL
-# suggestion: at least identify small archives (<1024 files)
-0  belong&0xffff00fc 0x48410000 HA archive data
->2	leshort		=1		1 file,
->2	leshort		>1		%u files,
->4	byte&0x0f	=0		first is type CPY
->4	byte&0x0f	=1		first is type ASC
->4	byte&0x0f	=2		first is type HSC
->4	byte&0x0f	=0x0e		first is type DIR
->4	byte&0x0f	=0x0f		first is type SPECIAL
-
-# HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz)
-0	string		HPAK		HPACK archive data
-
-# JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net
-0	string		\351,\001JAM\ 		JAM archive,
->7	string		>\0			version %.4s
->0x26	byte		=0x27			-
->>0x2b	string          >\0			label %.11s,
->>0x27	lelong		x			serial %08x,
->>0x36	string		>\0			fstype %.8s
-
-# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
-2	string		-lh0-		LHarc 1.x/ARX archive data [lh0]
-!:mime	application/x-lharc
-2	string		-lh1-		LHarc 1.x/ARX archive data [lh1]
-!:mime	application/x-lharc
-2	string		-lz4-		LHarc 1.x archive data [lz4]
-!:mime	application/x-lharc
-2	string		-lz5-		LHarc 1.x archive data [lz5]
-!:mime	application/x-lharc
-#	[never seen any but the last; -lh4- reported in comp.compression:]
-2	string		-lzs-		LHa/LZS archive data [lzs]
-!:mime	application/x-lha
-2	string		-lh\40-		LHa 2.x? archive data [lh ]
-!:mime	application/x-lha
-2	string		-lhd-		LHa 2.x? archive data [lhd]
-!:mime	application/x-lha
-2	string		-lh2-		LHa 2.x? archive data [lh2]
-!:mime	application/x-lha
-2	string		-lh3-		LHa 2.x? archive data [lh3]
-!:mime	application/x-lha
-2	string		-lh4-		LHa (2.x) archive data [lh4]
-!:mime	application/x-lha
-2	string		-lh5-		LHa (2.x) archive data [lh5]
-!:mime	application/x-lha
-2	string		-lh6-		LHa (2.x) archive data [lh6]
-!:mime	application/x-lha
-2	string		-lh7-		LHa (2.x)/LHark archive data [lh7]
-!:mime	application/x-lha
->20	byte		x		- header level %d
-# taken from idarc [JW]
-2   string      -lZ         PUT archive data
-2   string      -lz         LZS archive data 
-2   string      -sw1-       Swag archive data
-
-# RAR archiver (Greg Roelofs, newt@uchicago.edu)
-0	string		Rar!		RAR archive data,
-!:mime	application/x-rar
->44	byte		x		v%0x,
->10	byte		>0		flags:
->>10	byte		&0x01		Archive volume,
->>10	byte		&0x02		Commented,
->>10	byte		&0x04		Locked,
->>10	byte		&0x08		Solid,
->>10	byte		&0x20		Authenticated,
->35	byte		0		os: MS-DOS
->35	byte		1		os: OS/2
->35	byte		2		os: Win32
->35	byte		3		os: Unix
-# some old version? idarc says:
-0   string      RE\x7e\x5e  RAR archive data
-
-# SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
-0	string		SQSH		squished archive data (Acorn RISCOS)
-
-# UC2 archiver (Greg Roelofs, newt@uchicago.edu)
-# [JW] see exe section for self-extracting version
-0	string		UC2\x1a		UC2 archive data
-
-# ZIP archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
-0	string		PK\003\004
->4	byte		0x00		Zip archive data
-!:mime	application/zip
->4	byte		0x09		Zip archive data, at least v0.9 to extract
-!:mime	application/zip
->4	byte		0x0a		Zip archive data, at least v1.0 to extract
-!:mime	application/zip
->4	byte		0x0b		Zip archive data, at least v1.1 to extract
-!:mime	application/zip
->0x161	string		WINZIP          Zip archive data, WinZIP self-extracting
-!:mime	application/zip
->4	byte		0x14
->>30	ubelong		!0x6d696d65	Zip archive data, at least v2.0 to extract
-!:mime	application/zip
-
-# OpenOffice.org / KOffice / StarOffice documents
-# Listed here because they ARE zip files
-#
-# From: Abel Cheung <abel@oaka.org>
->4	byte		0x14
->>30	string		mimetype
-
-# KOffice (1.2 or above) formats
->>>50	string	vnd.kde.		KOffice (>=1.2)
->>>>58	string	karbon			Karbon document
->>>>58	string	kchart			KChart document
->>>>58	string	kformula		KFormula document
->>>>58	string	kivio			Kivio document
->>>>58	string	kontour			Kontour document
->>>>58	string	kpresenter		KPresenter document
->>>>58	string	kspread			KSpread document
->>>>58	string	kword			KWord document
-
-# OpenOffice formats (for OpenOffice 1.x / StarOffice 6/7)
->>>50	string	vnd.sun.xml.		OpenOffice.org 1.x
->>>>62	string	writer			Writer
->>>>>68	byte	!0x2e			document
->>>>>68	string	.template		template
->>>>>68	string	.global			global document
->>>>62	string	calc			Calc
->>>>>66	byte	!0x2e			spreadsheet
->>>>>66	string	.template		template
->>>>62	string	draw			Draw
->>>>>66	byte	!0x2e			document
->>>>>66	string	.template		template
->>>>62	string	impress			Impress
->>>>>69	byte	!0x2e			presentation
->>>>>69	string	.template		template
->>>>62	string	math			Math document
->>>>62	string	base			Database file
-
-# OpenDocument formats (for OpenOffice 2.x / StarOffice >= 8)
-# http://lists.oasis-open.org/archives/office/200505/msg00006.html
->>>50	string	vnd.oasis.opendocument.	OpenDocument
->>>>73	string	text
->>>>>77	byte	!0x2d			Text
-!:mime	application/vnd.oasis.opendocument.text
->>>>>77	string	-template		Text Template
->>>>>77	string	-web			HTML Document Template
->>>>>77	string	-master			Master Document
->>>>73	string	graphics		Drawing
->>>>>81	string	-template		Template
->>>>73	string	presentation		Presentation
->>>>>85	string	-template		Template
->>>>73	string	spreadsheet		Spreadsheet
->>>>>84	string	-template		Template
->>>>73	string	chart			Chart
->>>>>78	string	-template		Template
->>>>73	string	formula			Formula
->>>>>80	string	-template		Template
->>>>73	string	database		Database
->>>>73	string	image			Image
-
-# Zoo archiver
-20	lelong		0xfdc4a7dc	Zoo archive data
-!:mime	application/x-zoo
->4	byte		>48		\b, v%c.
->>6	byte		>47		\b%c
->>>7	byte		>47		\b%c
->32	byte		>0		\b, modify: v%d
->>33	byte		x		\b.%d+
->42	lelong		0xfdc4a7dc	\b,
->>70	byte		>0		extract: v%d
->>>71	byte		x		\b.%d+
-
-# Shell archives
-10	string		#\ This\ is\ a\ shell\ archive	shell archive text
-!:mime	application/octet-stream
-
-#
-# LBR. NB: May conflict with the questionable 
-#          "binary Computer Graphics Metafile" format.
-#
-0       string  \0\ \ \ \ \ \ \ \ \ \ \ \0\0    LBR archive data
-#
-# PMA (CP/M derivative of LHA)
-#
-2       string          -pm0-           PMarc archive data [pm0]
-2       string          -pm1-           PMarc archive data [pm1]
-2       string          -pm2-           PMarc archive data [pm2]
-2       string          -pms-           PMarc SFX archive (CP/M, DOS)
-5       string          -pc1-           PopCom compressed executable (CP/M)
-
-# From Rafael Laboissiere <rafael@laboissiere.net>
-# The Project Revision Control System (see
-# http://prcs.sourceforge.net) generates a packaged project
-# file which is recognized by the following entry: 
-0	leshort		0xeb81	PRCS packaged project
-
-# Microsoft cabinets 
-# by David Necas (Yeti) <yeti@physics.muni.cz>
-#0	string	MSCF\0\0\0\0	Microsoft cabinet file data,
-#>25	byte	x		v%d
-#>24	byte	x		\b.%d
-# MPi: All CABs have version 1.3, so this is pointless.
-# Better magic in debian-additions.
-
-# GTKtalog catalogs 
-# by David Necas (Yeti) <yeti@physics.muni.cz>
-4	string	gtktalog\ 	GTKtalog catalog data,
->13	string	3		version 3
->>14	beshort	0x677a		(gzipped)
->>14	beshort	!0x677a		(not gzipped)
->13	string	>3		version %s
-
-############################################################################
-# Parity archive reconstruction file, the 'par' file format now used on Usenet.
-0       string          PAR\0	PARity archive data
->48	leshort		=0	- Index file
->48	leshort		>0	- file number %d
-
-# Felix von Leitner <felix-file@fefe.de>
-0	string	d8:announce	BitTorrent file
-!:mime	application/x-bittorrent
-
-# Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
-0       beshort 0x0e0f          Atari MSA archive data
->2      beshort x       	\b, %d sectors per track
->4      beshort 0       	\b, 1 sided
->4      beshort 1       	\b, 2 sided
->6      beshort x       	\b, starting track: %d
->8      beshort x       	\b, ending track: %d
-
-# Alternate ZIP string (amc@arwen.cs.berkeley.edu)
-0	string	PK00PK\003\004	Zip archive data
-
-# ACE archive (from http://www.wotsit.org/download.asp?f=ace)
-# by Stefan `Sec` Zehl <sec@42.org>
-7	string		**ACE**		ACE archive data
->15	byte	>0		version %d
->16	byte	=0x00		\b, from MS-DOS
->16	byte	=0x01		\b, from OS/2
->16	byte	=0x02		\b, from Win/32
->16	byte	=0x03		\b, from Unix
->16	byte	=0x04		\b, from MacOS
->16	byte	=0x05		\b, from WinNT
->16	byte	=0x06		\b, from Primos
->16	byte	=0x07		\b, from AppleGS
->16	byte	=0x08		\b, from Atari
->16	byte	=0x09		\b, from Vax/VMS
->16	byte	=0x0A		\b, from Amiga
->16	byte	=0x0B		\b, from Next
->14	byte	x		\b, version %d to extract
->5	leshort &0x0080		\b, multiple volumes,
->>17	byte	x		\b (part %d),
->5	leshort &0x0002		\b, contains comment
->5	leshort	&0x0200		\b, sfx
->5	leshort	&0x0400		\b, small dictionary
->5	leshort	&0x0800		\b, multi-volume
->5	leshort	&0x1000		\b, contains AV-String
->>30	string	\x16*UNREGISTERED\x20VERSION*	(unregistered)
->5	leshort &0x2000		\b, with recovery record
->5	leshort &0x4000		\b, locked
->5	leshort &0x8000		\b, solid
-# Date in MS-DOS format (whatever that is)
-#>18	lelong	x		Created on
-
-# sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann
-# <doj@cubic.org>
-0x1A	string	sfArk		sfArk compressed Soundfont
->0x15	string	2
->>0x1	string	>\0		Version %s
->>0x2A	string	>\0		: %s
-
-# DR-DOS 7.03 Packed File *.??_
-0	string	Packed\ File\ 	Personal NetWare Packed File
->12	string	x    		\b, was "%.12s"
-
-# EET archive
-# From: Tilman Sauerbeck <tilman@code-monkey.de>
-0	belong	0x1ee7ff00	EET archive
-!:mime	application/x-eet
-
-# rzip archives
-0	string	RZIP		rzip compressed data
->4	byte	x		- version %d
->5	byte	x		\b.%d
->6	belong	x		(%d bytes)
-
-# From: "Robert Dale" <robdale@gmail.com>
-0	belong	123		dar archive,
->4	belong	x		label "%.8x
->>8	belong	x		%.8x
->>>12	beshort	x		%.4x"
->14	byte	0x54		end slice
->14	beshort	0x4e4e		multi-part
->14	beshort	0x4e53		multi-part, with -S
-
-# Symbian installation files
-#  http://www.thouky.co.uk/software/psifs/sis.html
-#  http://developer.symbian.com/main/downloads/papers/SymbianOSv91/softwareinstallsis.pdf
-8	lelong	0x10000419	Symbian installation file
-!:mime	application/vnd.symbian.install
->4	lelong	0x1000006D	(EPOC release 3/4/5)
->4	lelong	0x10003A12	(EPOC release 6)
-0	lelong	0x10201A7A	Symbian installation file (Symbian OS 9.x)
-!:mime	x-epoc/x-sisx-app
-
-# From "Nelson A. de Oliveira" <naoliv@gmail.com>
-0	string	MPQ\032		MoPaQ (MPQ) archive
-
-# From: Dirk Jagdmann <doj@cubic.org>
-# xar archive format: http://code.google.com/p/xar/
-0	string	xar!		xar archive
->6	beshort	x		- version %ld
-
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-# .kgb
-0	string KGB_arch		KGB Archiver file
->10	string x		with compression level %.1s
-
-# xar (eXtensible ARchiver) archive
-# From: "David Remahl" <dremahl@apple.com>
-0	string	xar!		xar archive
-#>4	beshort	x		header size %d
->6	beshort	x		version %d,
-#>8	quad	x		compressed TOC: %d,
-#>16	quad	x		uncompressed TOC: %d,
->24	belong	0		no checksum
->24	belong	1		SHA-1 checksum
->24	belong	2		MD5 checksum
-
-# Type: Parity Archive
-# From: Daniel van Eeden <daniel_e@dds.nl>
-0	string	 PAR2		Parity Archive Volume Set
-
-#------------------------------------------------------------------------------
-# asterix:  file(1) magic for Aster*x; SunOS 5.5.1 gave the 4-character
-# strings as "long" - we assume they're just strings:
-# From: guy@netapp.com (Guy Harris)
-#
-0	string		*STA		Aster*x
->7	string		WORD			Words Document
->7	string		GRAP			Graphic
->7	string		SPRE			Spreadsheet
->7	string		MACR			Macro
-0	string		2278		Aster*x Version 2
->29	byte		0x36			Words Document
->29	byte		0x35			Graphic
->29	byte		0x32			Spreadsheet
->29	byte		0x38			Macro
-
-
-#------------------------------------------------------------------------------
-# att3b:  file(1) magic for AT&T 3B machines
-#
-# The `versions' should be un-commented if they work for you.
-# (Was the problem just one of endianness?)
-#
-# 3B20
-#
-# The 3B20 conflicts with SCCS.
-#0	beshort		0550		3b20 COFF executable
-#>12	belong		>0		not stripped
-#>22	beshort		>0		- version %ld
-#0	beshort		0551		3b20 COFF executable (TV)
-#>12	belong		>0		not stripped
-#>22	beshort		>0		- version %ld
-#
-# WE32K
-#
-0	beshort		0560		WE32000 COFF
->18	beshort		^00000020	object
->18	beshort		&00000020	executable
->12	belong		>0		not stripped
->18	beshort		^00010000	N/A on 3b2/300 w/paging
->18	beshort		&00020000	32100 required
->18	beshort		&00040000	and MAU hardware required
->20	beshort		0407		(impure)
->20	beshort		0410		(pure)
->20	beshort		0413		(demand paged)
->20	beshort		0443		(target shared library)
->22	beshort		>0		- version %ld
-0	beshort		0561		WE32000 COFF executable (TV)
->12	belong		>0		not stripped
-#>18	beshort		&00020000	- 32100 required
-#>18	beshort		&00040000	and MAU hardware required
-#>22	beshort		>0		- version %ld
-#
-# core file for 3b2 
-0	string		\000\004\036\212\200	3b2 core file
->364	string		>\0		of '%s'
-#------------------------------------------------------------------------------
-# audio:  file(1) magic for sound formats (see also "iff")
-#
-# Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
-# and others
-#
-
-# Sun/NeXT audio data
-0	string		.snd		Sun/NeXT audio data:
->12	belong		1		8-bit ISDN mu-law,
-!:mime	audio/basic
->12	belong		2		8-bit linear PCM [REF-PCM],
-!:mime	audio/basic
->12	belong		3		16-bit linear PCM,
-!:mime	audio/basic
->12	belong		4		24-bit linear PCM,
-!:mime	audio/basic
->12	belong		5		32-bit linear PCM,
-!:mime	audio/basic
->12	belong		6		32-bit IEEE floating point,
-!:mime	audio/basic
->12	belong		7		64-bit IEEE floating point,
-!:mime	audio/basic
->12	belong		8		Fragmented sample data,
->12	belong		10		DSP program,
->12	belong		11		8-bit fixed point,
->12	belong		12		16-bit fixed point,
->12	belong		13		24-bit fixed point,
->12	belong		14		32-bit fixed point,
->12	belong		18		16-bit linear with emphasis,
->12	belong		19		16-bit linear compressed,
->12	belong		20		16-bit linear with emphasis and compression,
->12	belong		21		Music kit DSP commands,
->12	belong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
-!:mime  audio/x-adpcm
->12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
->12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
->12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
->12	belong		27		8-bit A-law (CCITT G.711),
->20	belong		1		mono,
->20	belong		2		stereo,
->20	belong		4		quad,
->16	belong		>0		%d Hz
-
-# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
-# that uses little-endian encoding and has a different magic number
-0	lelong		0x0064732E	DEC audio data:
->12	lelong		1		8-bit ISDN mu-law,
-!:mime	audio/x-dec-basic
->12	lelong		2		8-bit linear PCM [REF-PCM],
-!:mime	audio/x-dec-basic
->12	lelong		3		16-bit linear PCM,
-!:mime	audio/x-dec-basic
->12	lelong		4		24-bit linear PCM,
-!:mime	audio/x-dec-basic
->12	lelong		5		32-bit linear PCM,
-!:mime	audio/x-dec-basic
->12	lelong		6		32-bit IEEE floating point,
-!:mime	audio/x-dec-basic
->12	lelong		7		64-bit IEEE floating point,
-!:mime	audio/x-dec-basic
->12	belong		8		Fragmented sample data,
->12	belong		10		DSP program,
->12	belong		11		8-bit fixed point,
->12	belong		12		16-bit fixed point,
->12	belong		13		24-bit fixed point,
->12	belong		14		32-bit fixed point,
->12	belong		18		16-bit linear with emphasis,
->12	belong		19		16-bit linear compressed,
->12	belong		20		16-bit linear with emphasis and compression,
->12	belong		21		Music kit DSP commands,
->12	lelong		23		8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
-!:mime	audio/x-dec-basic
->12	belong		24		compressed (8-bit CCITT G.722 ADPCM)
->12	belong		25		compressed (3-bit CCITT G.723.3 ADPCM),
->12	belong		26		compressed (5-bit CCITT G.723.5 ADPCM),
->12	belong		27		8-bit A-law (CCITT G.711),
->20	lelong		1		mono,
->20	lelong		2		stereo,
->20	lelong		4		quad,
->16	lelong		>0		%d Hz
-
-# Creative Labs AUDIO stuff
-0	string	MThd			Standard MIDI data
-!:mime	audio/midi
->8 	beshort	x			(format %d)
->10	beshort	x			using %d track
->10	beshort		>1		\bs
->12	beshort&0x7fff	x		at 1/%d
->12	beshort&0x8000	>0		SMPTE
-
-0	string	CTMF			Creative Music (CMF) data
-!:mime	audio/x-unknown
-0	string	SBI			SoundBlaster instrument data
-!:mime	audio/x-unknown
-0	string	Creative\ Voice\ File	Creative Labs voice data
-!:mime	audio/x-unknown
-# is this next line right?  it came this way...
->19	byte	0x1A
->23	byte	>0			- version %d
->22	byte	>0			\b.%d
-
-# first entry is also the string "NTRK"
-0	belong		0x4e54524b	MultiTrack sound data
->4	belong		x		- version %ld
-
-# Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
-# [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
-0	string		EMOD		Extended MOD sound data,
->4	byte&0xf0	x		version %d
->4	byte&0x0f	x		\b.%d,
->45	byte		x		%d instruments
->83	byte		0		(module)
->83	byte		1		(song)
-
-# Real Audio (Magic .ra\0375)
-0	belong		0x2e7261fd	RealAudio sound file
-!:mime	audio/x-pn-realaudio
-0	string		.RMF\0\0\0	RealMedia file
-!:mime	application/vnd.rn-realmedia
-#video/x-pn-realvideo
-#video/vnd.rn-realvideo
-#application/vnd.rn-realmedia
-#	sigh, there are many mimes for that but the above are the most common.
-
-# MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
-# Oct 31, 1995
-# fixed by <doj@cubic.org> 2003-06-24
-# Too short...
-#0	string		MTM		MultiTracker Module sound file
-#0	string		if		Composer 669 Module sound data
-#0	string		JN		Composer 669 Module sound data (extended format)
-0	string		MAS_U		ULT(imate) Module sound data
-
-#0	string		FAR		Module sound data
-#>4	string		>\15		Title: "%s"
-
-0x2c	string		SCRM		ScreamTracker III Module sound data
->0	string		>\0		Title: "%s"
-
-# Gravis UltraSound patches
-# From <ache@nagual.ru>
-
-0	string		GF1PATCH110\0ID#000002\0	GUS patch
-0	string		GF1PATCH100\0ID#000002\0	Old GUS	patch
-
-# mime types according to http://www.geocities.com/nevilo/mod.htm:
-#	audio/it	.it
-#	audio/x-zipped-it	.itz
-#	audio/xm	fasttracker modules
-#	audio/x-s3m	screamtracker modules
-#	audio/s3m	screamtracker modules
-#	audio/x-zipped-mod	mdz
-#	audio/mod	mod
-#	audio/x-mod	All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
-
-#
-# Taken from loader code from mikmod version 2.14
-# by Steve McIntyre (stevem@chiark.greenend.org.uk)
-# <doj@cubic.org> added title printing on 2003-06-24
-0	string	MAS_UTrack_V00
->14	string	>/0		ultratracker V1.%.1s module sound data
-!:mime	audio/x-mod
-#audio/x-tracker-module
-
-0	string	UN05		MikMod UNI format module sound data
-
-0	string	Extended\ Module: Fasttracker II module sound data
-!:mime	audio/x-mod
-#audio/x-tracker-module
->17	string	>\0		Title: "%s"
-
-21	string/c	=!SCREAM!	Screamtracker 2 module sound data
-!:mime	audio/x-mod
-#audio/x-screamtracker-module
-21	string	BMOD2STM	Screamtracker 2 module sound data
-!:mime	audio/x-mod
-#audio/x-screamtracker-module
-1080	string	M.K.		4-channel Protracker module sound data
-!:mime	audio/x-mod
-#audio/x-protracker-module
->0	string	>\0		Title: "%s"
-1080	string	M!K!		4-channel Protracker module sound data
-!:mime	audio/x-mod
-#audio/x-protracker-module
->0	string	>\0		Title: "%s"
-1080	string	FLT4		4-channel Startracker module sound data
-!:mime	audio/x-mod
-#audio/x-startracker-module
->0	string	>\0		Title: "%s"
-1080	string	FLT8		8-channel Startracker module sound data
-!:mime	audio/x-mod
-#audio/x-startracker-module
->0	string	>\0		Title: "%s"
-1080	string	4CHN		4-channel Fasttracker module sound data
-!:mime	audio/x-mod
-#audio/x-fasttracker-module
->0	string	>\0		Title: "%s"
-1080	string	6CHN		6-channel Fasttracker module sound data
-!:mime	audio/x-mod
-#audio/x-fasttracker-module
->0	string	>\0		Title: "%s"
-1080	string	8CHN		8-channel Fasttracker module sound data
-!:mime	audio/x-mod
-#audio/x-fasttracker-module
->0	string	>\0		Title: "%s"
-1080	string	CD81		8-channel Octalyser module sound data
-!:mime	audio/x-mod
-#audio/x-octalysertracker-module
->0	string	>\0		Title: "%s"
-1080	string	OKTA		8-channel Octalyzer module sound data
-!:mime	audio/x-mod
-#audio/x-octalysertracker-module
->0	string	>\0		Title: "%s"
-# Not good enough.
-#1082	string	CH
-#>1080	string	>/0		%.2s-channel Fasttracker "oktalyzer" module sound data
-1080	string	16CN		16-channel Taketracker module sound data
-!:mime	audio/x-mod
-#audio/x-taketracker-module
->0	string	>\0		Title: "%s"
-1080	string	32CN		32-channel Taketracker module sound data
-!:mime	audio/x-mod
-#audio/x-taketracker-module
->0	string	>\0		Title: "%s"
-
-# TOC sound files -Trevor Johnson <trevor@jpj.net>
-#
-0       string          TOC             TOC sound file
-
-# sidfiles <pooka@iki.fi>
-# added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
-0	string		SIDPLAY\ INFOFILE	Sidplay info file
-
-0	string		PSID			PlaySID v2.2+ (AMIGA) sidtune
->4	beshort		>0			w/ header v%d,
->14	beshort		=1			single song,
->14	beshort		>1			%d songs,
->16	beshort		>0			default song: %d
->0x16	string		>\0			name: "%s"
->0x36	string		>\0			author: "%s"
->0x56	string		>\0			copyright: "%s"
-
-0	string		RSID			RSID sidtune PlaySID compatible
->4	beshort		>0			w/ header v%d,
->14	beshort		=1			single song,
->14	beshort		>1			%d songs,
->16	beshort		>0			default song: %d
->0x16	string		>\0			name: "%s"
->0x36	string		>\0			author: "%s"
->0x56	string		>\0			copyright: "%s"
-
-# IRCAM <mpruett@sgi.com>
-# VAX and MIPS files are little-endian; Sun and NeXT are big-endian
-0	belong		0x64a30100		IRCAM file (VAX)
-0	belong		0x64a30200		IRCAM file (Sun)
-0	belong		0x64a30300		IRCAM file (MIPS little-endian)
-0	belong		0x64a30400		IRCAM file (NeXT)
-
-# NIST SPHERE <mpruett@sgi.com>
-0	string		NIST_1A\n\ \ \ 1024\n	NIST SPHERE file
-
-# Sample Vision <mpruett@sgi.com>
-0	string		SOUND\ SAMPLE\ DATA\ 	Sample Vision file
-
-# Audio Visual Research <tonigonenstein@users.sourceforge.net>
-0	string		2BIT			Audio Visual Research file,
->12	beshort		=0			mono,
->12	beshort		=-1			stereo,
->14	beshort		x			%d bits
->16	beshort		=0			unsigned,
->16	beshort		=-1			signed,
->22	belong&0x00ffffff	x		%d Hz,
->18	beshort		=0			no loop,
->18	beshort		=-1			loop,
->21	ubyte		<128			note %d,
->22	byte		=0			replay 5.485 KHz
->22	byte		=1			replay 8.084 KHz
->22	byte		=2			replay 10.971 Khz
->22	byte		=3			replay 16.168 Khz
->22	byte		=4			replay 21.942 KHz
->22	byte		=5			replay 32.336 KHz
->22	byte		=6			replay 43.885 KHz
->22	byte		=7			replay 47.261 KHz
-
-# SGI SoundTrack <mpruett@sgi.com>
-0	string		_SGI_SoundTrack		SGI SoundTrack project file
-# ID3 version 2 tags <waschk@informatik.uni-rostock.de>
-0	string		ID3	Audio file with ID3 version 2
->3	byte		x	\b.%d
->4	byte		x	\b.%d
->>5	byte		&0x80	\b, unsynchronized frames
->>5	byte		&0x40	\b, extended header
->>5	byte		&0x20	\b, experimental
->>5	byte		&0x10	\b, footer present
->(6.I)	indirect	x	\b, contains: 
-
-# NSF (NES sound file) magic
-0	string		NESM\x1a	NES Sound File
->14	string		>\0		("%s" by
->46	string		>\0		%s, copyright
->78	string		>\0		%s),
->5	byte		x		version %d,
->6	byte		x		%d tracks,
->122	byte&0x2	=1		dual PAL/NTSC
->122	byte&0x1	=1		PAL
->122	byte&0x1	=0		NTSC
-
-# Type: SNES SPC700 sound files
-# From: Josh Triplett <josh@freedesktop.org>
-0	string	SNES-SPC700\ Sound\ File\ Data\ v	SNES SPC700 sound file
->&0	string	0.30					\b, version %s
->>0x23	byte	0x1B					\b, without ID666 tag
->>0x23	byte	0x1A					\b, with ID666 tag
->>>0x2E	string	>\0					\b, song "%.32s"
->>>0x4E	string	>\0					\b, game "%.32s"
-
-# Impulse tracker module (audio/x-it)
-0	string		IMPM		Impulse Tracker module sound data -
-!:mime	audio/x-mod
->4	string		>\0		"%s"
->40	leshort		!0		compatible w/ITv%x
->42	leshort		!0		created w/ITv%x
-
-# Imago Orpheus module (audio/x-imf)
-60	string		IM10		Imago Orpheus module sound data -
->0	string		>\0		"%s"
-
-# From <collver1@attbi.com>
-# These are the /etc/magic entries to decode modules, instruments, and
-# samples in Impulse Tracker's native format.
-
-0	string		IMPS		Impulse Tracker Sample
->18	byte		&2		16 bit
->18	byte		^2		8 bit
->18	byte		&4		stereo
->18	byte		^4		mono
-0	string		IMPI		Impulse Tracker Instrument
->28	leshort		!0		ITv%x
->30	byte		!0		%d samples
-
-# Yamaha TX Wave:  file(1) magic for Yamaha TX Wave audio files
-# From <collver1@attbi.com>
-0	string		LM8953		Yamaha TX Wave
->22	byte		0x49		looped
->22	byte		0xC9		non-looped
->23	byte		1		33kHz
->23	byte		2		50kHz
->23	byte		3		16kHz
-
-# scream tracker:  file(1) magic for Scream Tracker sample files
-#
-# From <collver1@attbi.com>
-76	string		SCRS		Scream Tracker Sample
->0	byte		1		sample
->0	byte		2		adlib melody
->0	byte		>2		adlib drum
->31	byte		&2		stereo
->31	byte		^2		mono
->31	byte		&4		16bit little endian
->31	byte		^4		8bit
->30	byte		0		unpacked
->30	byte		1		packed
-
-# audio
-# From: Cory Dikkers <cdikkers@swbell.net>
-0	string		MMD0		MED music file, version 0
-0	string		MMD1		OctaMED Pro music file, version 1
-0	string		MMD3		OctaMED Soundstudio music file, version 3
-0	string		OctaMEDCmpr	OctaMED Soundstudio compressed file
-0	string		MED		MED_Song
-0	string		SymM		Symphonie SymMOD music file
-#
-0	string		THX		AHX version
->3	byte		=0		1 module data
->3	byte		=1		2 module data
-#
-0	string		OKTASONG	Oktalyzer module data
-#
-0	string		DIGI\ Booster\ module\0	%s
->20	byte		>0		%c
->>21	byte		>0		\b%c
->>>22	byte		>0		\b%c
->>>>23	byte		>0		\b%c
->610	string		>\0		\b, "%s"
-#
-0	string		DBM0	   	DIGI Booster Pro Module
->4	byte		>0		V%X.
->>5	byte		x		\b%02X
->16	string		>\0		\b, "%s"
-#
-0	string		FTMN		FaceTheMusic module
->16	string		>\0d		\b, "%s"
-
-# From: <doj@cubic.org> 2003-06-24
-0	string		AMShdr\32	Velvet Studio AMS Module v2.2
-0	string		Extreme		Extreme Tracker AMS Module v1.3
-0	string		DDMF		Xtracker DMF Module
->4	byte		x		v%i
->0xD	string		>\0		Title: "%s"
->0x2B	string		>\0		Composer: "%s"
-0	string		DSM\32		Dynamic Studio Module DSM
-0	string		SONG		DigiTrekker DTM Module
-0	string		DMDL		DigiTrakker MDL Module
-0	string		PSM\32		Protracker Studio PSM Module
-44	string		PTMF		Poly Tracker PTM Module
->0	string		>\32		Title: "%s"
-0	string		MT20		MadTracker 2.0 Module MT2
-0	string		RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
-0	string		RTMM		RTM Module
-0x426	string		MaDoKaN96	XMS Adlib Module
->0	string		>\0		Composer: "%s"
-0	string		AMF		AMF Module
->4	string		>\0		Title: "%s"
-0	string		MODINFO1	Open Cubic Player Module Inforation MDZ
-0	string		Extended\40Instrument: Fast Tracker II Instrument
-
-# From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
-# NOA Nancy Codec file
-0	string		\210NOA\015\012\032	NOA Nancy Codec Movie file
-# Yamaha SMAF format
-0	string		MMMD		Yamaha SMAF file
-# Sharp Jisaku Melody format for PDC
-0	string		\001Sharp\040JisakuMelody	SHARP Cell-Phone ringing Melody
->20	string		Ver01.00	Ver. 1.00
->>32	byte		x		, %d tracks
-
-# Free lossless audio codec <http://flac.sourceforge.net>
-# From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
-0	string			fLaC		FLAC audio bitstream data
-!:mime	audio/x-flac
->4	byte&0x7f		>0		\b, unknown version
->4	byte&0x7f		0		\b
-# some common bits/sample values
->>20	beshort&0x1f0		0x030		\b, 4 bit
->>20	beshort&0x1f0		0x050		\b, 6 bit
->>20	beshort&0x1f0		0x070		\b, 8 bit
->>20	beshort&0x1f0		0x0b0		\b, 12 bit
->>20	beshort&0x1f0		0x0f0		\b, 16 bit
->>20	beshort&0x1f0		0x170		\b, 24 bit
->>20	byte&0xe		0x0		\b, mono
->>20	byte&0xe		0x2		\b, stereo
->>20	byte&0xe		0x4		\b, 3 channels
->>20	byte&0xe		0x6		\b, 4 channels
->>20	byte&0xe		0x8		\b, 5 channels
->>20	byte&0xe		0xa		\b, 6 channels
->>20	byte&0xe		0xc		\b, 7 channels
->>20	byte&0xe		0xe		\b, 8 channels
-# some common sample rates
->>17	belong&0xfffff0		0x0ac440	\b, 44.1 kHz
->>17	belong&0xfffff0		0x0bb800	\b, 48 kHz
->>17	belong&0xfffff0		0x07d000	\b, 32 kHz
->>17	belong&0xfffff0		0x056220	\b, 22.05 kHz
->>17	belong&0xfffff0		0x05dc00	\b, 24 kHz
->>17	belong&0xfffff0		0x03e800	\b, 16 kHz
->>17	belong&0xfffff0		0x02b110	\b, 11.025 kHz
->>17	belong&0xfffff0		0x02ee00	\b, 12 kHz
->>17	belong&0xfffff0		0x01f400	\b, 8 kHz
->>17	belong&0xfffff0		0x177000	\b, 96 kHz
->>17	belong&0xfffff0		0x0fa000	\b, 64 kHz
->>21	byte&0xf		>0		\b, >4G samples
->>21	byte&0xf		0		\b
->>>22	belong			>0		\b, %u samples
->>>22	belong			0		\b, length unknown
-
-# (ISDN) VBOX voice message file (Wolfram Kleff)
-0       string          VBOX            VBOX voice message data
-
-# ReBorn Song Files (.rbs)
-# David J. Singer <doc@deadvirgins.org.uk>
-8       string          RB40             RBS Song file
->29     string          ReBorn           created by ReBorn
->37     string          Propellerhead    created by ReBirth
-
-# Synthesizer Generator and Kimwitu share their file format
-0	string		A#S#C#S#S#L#V#3	    Synthesizer Generator or Kimwitu data
-# Kimwitu++ uses a slightly different magic
-0	string		A#S#C#S#S#L#HUB	    Kimwitu++ data
-
-# From "Simon Hosie
-0       string  TFMX-SONG       TFMX module sound data
-
-# Monkey's Audio compressed audio format (.ape)
-# From danny.milo@gmx.net (Danny Milosavljevic)
-# New version from Abel Cheung <abel (@) oaka.org>
-0		string		MAC\040		Monkey's Audio compressed format
->4		uleshort	>0x0F8B		version %d
->>(0x08.l)	uleshort	=1000		with fast compression
->>(0x08.l)	uleshort	=2000		with normal compression
->>(0x08.l)	uleshort	=3000		with high compression
->>(0x08.l)	uleshort	=4000		with extra high compression
->>(0x08.l)	uleshort	=5000		with insane compression
->>(0x08.l+18)	uleshort	=1		\b, mono
->>(0x08.l+18)	uleshort	=2		\b, stereo
->>(0x08.l+20)	ulelong		x		\b, sample rate %d
->4		uleshort	<0x0F8C		version %d
->>6		uleshort	=1000		with fast compression
->>6		uleshort	=2000		with normal compression
->>6		uleshort	=3000		with high compression
->>6		uleshort	=4000		with extra high compression
->>6		uleshort	=5000		with insane compression
->>10		uleshort	=1		\b, mono
->>10		uleshort	=2		\b, stereo
->>12		ulelong		x		\b, sample rate %d
-
-# adlib sound files
-# From Gürkan Sengün <gurkan@linuks.mine.nu>, http://www.linuks.mine.nu
-0    	string		RAWADATA	RdosPlay RAW
-
-1068	string		RoR		AMUSIC Adlib Tracker
-
-0	string		JCH		EdLib
-
-0	string		mpu401tr	MPU-401 Trakker
-
-0	string		SAdT		Surprise! Adlib Tracker
->4	byte		x		Version %d
-
-0	string		XAD!		eXotic ADlib
-
-0	string		ofTAZ!		eXtra Simple Music
-
-# Spectrum 128 tunes (.ay files).
-# From: Emanuel Haupt <ehaupt@critical.ch>
-0	string		ZXAYEMUL	Spectrum 128 tune
-
-0	string		\0BONK		BONK,
-#>5	byte		x		version %d
->14	byte		x		%d channel(s),
->15	byte		=1		lossless,
->15	byte		=0		lossy,
->16	byte		x		mid-side
-
-384	string		LockStream	LockStream Embedded file (mostly MP3 on old Nokia phones)
-
-# format VQF (proprietary codec for sound)
-# some infos on the header file available at :
-# http://www.twinvq.org/english/technology_format.html
-0	string		TWIN97012000	VQF data
->27	short		0		\b, Mono
->27	short		1		\b, Stereo
->31	short 		>0		\b, %d kbit/s
->35	short 		>0		\b, %d kHz
-
-# Nelson A. de Oliveira (naoliv@gmail.com)
-# .eqf
-0	string	Winamp\ EQ\ library\ file	%s
-# it will match only versions like v<digit>.<digit>
-# Since I saw only eqf files with version v1.1 I think that it's OK
->23	string	x	\b%.4s
-# .preset
-0	string	[Equalizer\ preset]	XMMS equalizer preset
-# .m3u
-0	search/1	#EXTM3U 	M3U playlist text
-# .pls
-0	search/1	[playlist]	PLS playlist text
-# licq.conf
-1	string	[licq]			LICQ configuration file
-
-# Atari ST audio files by Dirk Jagdmann <doj@cubic.org>
-0	string		ICE!		SNDH Atari ST music
-0	string		SC68\ Music-file\ /\ (c)\ (BeN)jami	sc68 Atari ST music
-
-# musepak support From: "Jiri Pejchal" <jiri.pejchal@gmail.com>
-0       string          MP+     Musepack audio
->3      byte            255     \b, SV pre8
->3      byte&0xF        0x6     \b, SV 6
->3      byte&0xF        0x8     \b, SV 8
->3      byte&0xF        0x7     \b, SV 7
->>3     byte&0xF0       0x0     \b.0
->>3     byte&0xF0       0x10    \b.1
->>3     byte&0xF0       240     \b.15
->>10    byte&0xF0       0x0     \b, no profile
->>10    byte&0xF0       0x10    \b, profile 'Unstable/Experimental'
->>10    byte&0xF0       0x50    \b, quality 0
->>10    byte&0xF0       0x60    \b, quality 1
->>10    byte&0xF0       0x70    \b, quality 2 (Telephone)
->>10    byte&0xF0       0x80    \b, quality 3 (Thumb)
->>10    byte&0xF0       0x90    \b, quality 4 (Radio)
->>10    byte&0xF0       0xA0    \b, quality 5 (Standard)
->>10    byte&0xF0       0xB0    \b, quality 6 (Xtreme)
->>10    byte&0xF0       0xC0    \b, quality 7 (Insane)
->>10    byte&0xF0       0xD0    \b, quality 8 (BrainDead)
->>10    byte&0xF0       0xE0    \b, quality 9
->>10    byte&0xF0       0xF0    \b, quality 10
->>27    byte            0x0     \b, Buschmann 1.7.0-9, Klemm 0.90-1.05
->>27    byte            102     \b, Beta 1.02
->>27    byte            104     \b, Beta 1.04
->>27    byte            105     \b, Alpha 1.05
->>27    byte            106     \b, Beta 1.06
->>27    byte            110     \b, Release 1.1
->>27    byte            111     \b, Alpha 1.11
->>27    byte            112     \b, Beta 1.12
->>27    byte            113     \b, Alpha 1.13
->>27    byte            114     \b, Beta 1.14
->>27    byte            115     \b, Alpha 1.15
-
-# IMY
-# from http://filext.com/detaillist.php?extdetail=IMY
-# http://cellphones.about.com/od/cellularfaqs/f/rf_imelody.htm
-# http://download.ncl.ie/doc/api/ie/ncl/media/music/IMelody.html
-# http://www.wx800.com/msg/download/irda/iMelody.pdf
-0	string	BEGIN:IMELODY	iMelody Ringtone Format
-
-# From: "Mateus Caruccio" <mateus@caruccio.com>
-# guitar pro v3,4,5 from http://filext.com/file-extension/gp3
-0	string	\030FICHIER\ GUITAR\ PRO\ v3.	Guitar Pro Ver. 3 Tablature
-
-# From: "Leslie P. Polzer" <leslie.polzer@gmx.net>
-60	string	SONG		SoundFX Module sound file
-
-# Type: Adaptive Multi-Rate Codec
-# URL:  http://filext.com/detaillist.php?extdetail=AMR
-# From: Russell Coker <russell@coker.com.au>
-0	string	#!AMR		Adaptive Multi-Rate Codec (GSM telephony)
-
-# Type: SuperCollider 3 Synth Definition File Format
-# From: Mario Lang <mlang@debian.org>
-0	string	SCgf	SuperCollider3 Synth Definition file,
->4	belong	x	version %d
-#----------------------------------------------------------------
-# basis: file(1) magic for BBx/Pro5-files
-#      Oliver Dammer <dammer@olida.de>	 2005/11/07
-# http://www.basis.com business-basic-files.
-#
-0	string		\074\074bbx\076\076	BBx
->7	string		\000			indexed file
->7	string		\001			serial file
->7	string		\002			keyed file
->>13	short		0			(sort)
->7	string		\004			program
->>18	byte		x			(LEVEL %d)
->>>23	string		>\000			psaved
->7	string		\006			mkeyed file
->>13	short		0			(sort)
->>8	string		\000			(mkey)
-#------------------------------------------------------------------------------
-# bFLT: file(1) magic for BFLT uclinux binary files
-#
-# From Philippe De Muyter <phdm@macqel.be>
-#
-0	string		bFLT		BFLT executable
->4	belong		x		- version %ld
->4	belong		4
->>36	belong&0x1	0x1		ram
->>36	belong&0x2	0x2		gotpic
->>36	belong&0x4	0x4		gzip
->>36	belong&0x8	0x8		gzdata
-#------------------------------------------------------------------------------
-# blender: file(1) magic for Blender 3D related files
-#
-# Native format rule v1.2. For questions use the developers list 
-# http://lists.blender.org/mailman/listinfo/bf-committers
-# GLOB chunk was moved near start and provides subversion info since 2.42 
-
-0		string	=BLENDER	Blender3D,
->7		string	=_		saved as 32-bits
->>8		string	=v		little endian
->>>9		byte	x		with version %c.
->>>10		byte	x		\b%c
->>>11		byte	x		\b%c
->>>0x40		string	=GLOB		\b.
->>>>0x58	leshort	x		\b%.4d
->>8		string	=V		big endian
->>>9		byte	x		with version %c.
->>>10		byte	x		\b%c
->>>11		byte	x		\b%c
->>>0x40		string	=GLOB		\b.
->>>>0x58	beshort	x		\b%.4d
->7		string	=-		saved as 64-bits
->>8		string	=v		little endian
->>9		byte	x		with version %c.
->>10		byte	x		\b%c
->>11		byte	x		\b%c
->>0x44		string	=GLOB		\b.
->>>0x60		leshort	x		\b%.4d
->>8		string	=V		big endian
->>>9		byte	x		with version %c.
->>>10		byte	x		\b%c
->>>11		byte	x		\b%c
->>>0x44		string	=GLOB		\b.
->>>>0x60	beshort	x		\b%.4d
-
-# Scripts that run in the embeded Python interpreter
-0		string	#!BPY		Blender3D BPython script
-
-#------------------------------------------------------------------------------
-# blit:  file(1) magic for 68K Blit stuff as seen from 680x0 machine
-#
-# Note that this 0407 conflicts with several other a.out formats...
-#
-# XXX - should this be redone with "be" and "le", so that it works on
-# little-endian machines as well?  If so, what's the deal with
-# "VAX-order" and "VAX-order2"?
-#
-#0	long		0407		68K Blit (standalone) executable
-#0	short		0407		VAX-order2 68K Blit (standalone) executable
-0	short		03401		VAX-order 68K Blit (standalone) executable
-0	long		0406		68k Blit mpx/mux executable
-0	short		0406		VAX-order2 68k Blit mpx/mux executable
-0	short		03001		VAX-order 68k Blit mpx/mux executable
-# Need more values for WE32 DMD executables.
-# Note that 0520 is the same as COFF
-#0	short		0520		tty630 layers executable
-#
-# i80960 b.out objects and archives
-#
-0	long		0x10d		i960 b.out relocatable object
->16	long		>0		not stripped
-#
-# b.out archive (hp-rt on i960)
-0	string		=!<bout>	b.out archive
->8	string		__.SYMDEF	random library
-#------------------------------------------------------------------------------
-# bsdi:  file(1) magic for BSD/OS (from BSDI) objects
-#
-
-0	lelong		0314		386 compact demand paged pure executable
->16	lelong		>0		not stripped
->32	byte		0x6a		(uses shared libs)
-
-0	lelong		0407		386 executable
->16	lelong		>0		not stripped
->32	byte		0x6a		(uses shared libs)
-
-0	lelong		0410		386 pure executable
->16	lelong		>0		not stripped
->32	byte		0x6a		(uses shared libs)
-
-0	lelong		0413		386 demand paged pure executable
->16	lelong		>0		not stripped
->32	byte		0x6a		(uses shared libs)
-
-# same as in SunOS 4.x, except for static shared libraries
-0	belong&077777777	0600413		sparc demand paged
->0	byte		&0x80
->>20	belong		<4096		shared library
->>20	belong		=4096		dynamically linked executable
->>20	belong		>4096		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
->36	belong		0xb4100001	(uses shared libs)
-
-0	belong&077777777	0600410		sparc pure
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
->36	belong		0xb4100001	(uses shared libs)
-
-0	belong&077777777	0600407		sparc
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
->36	belong		0xb4100001	(uses shared libs)
-#------------------------------------------------------------------------------
-# BTSnoop:  file(1) magic for BTSnoop files
-#
-# From <marcel@holtmann.org>
-0	string		btsnoop\0		BTSnoop
->8	belong		x			version %d,
->12	belong		1001			Unencapsulated HCI
->12	belong		1002			HCI UART (H4)
->12	belong		1003			HCI BCSP
->12	belong		1004			HCI Serial (H5)
->>12	belong		x			type %d
-#------------------------------------------------------------------------------
-# c-lang:  file(1) magic for C programs (or REXX)
-#
-
-# XPM icons (Greg Roelofs, newt@uchicago.edu)
-# if you uncomment "/*" for C/REXX below, also uncomment this entry
-#0	string		/*\ XPM\ */	X pixmap image data
-#!:mime	image/x-xpmi
-
-# 3DS (3d Studio files) Conflicts with diff output 0x3d '='
-#16	beshort		0x3d3d		image/x-3ds
-
-# this first will upset you if you're a PL/1 shop...
-# in which case rm it; ascmagic will catch real C programs
-#0	search/1	/*		C or REXX program text
-#0	search/1	//		C++ program text
-
-# From: Mikhail Teterin <mi@aldan.algebra.com> 
-0	string		cscope		cscope reference data
->7	string		x		version %.2s
-# We skip the path here, because it is often long (so file will
-# truncate it) and mostly redundant.
-# The inverted index functionality was added some time betwen
-# versions 11 and 15, so look for -q if version is above 14:
->7	string		>14
->>10	search/100	\ -q\ 		with inverted index
->10	search/100	\ -c\ 		text (non-compressed)
-#------------------------------------------------------------------------------
-# c64:  file(1) magic for various commodore 64 related files
-#
-# From: Dirk Jagdmann <doj@cubic.org>
-
-0x16500	belong		0x12014100	D64 Image
-0x16500	belong		0x12014180	D71 Image
-0x61800 belong		0x28034400	D81 Image
-0	string		C64\40CARTRIDGE	CCS C64 Emultar Cartridge Image
-0	belong		0x43154164	X64 Image
-
-0	string		GCR-1541	GCR Image
->8	byte		x		version: %i
->9	byte		x		tracks: %i
-
-9	string		PSUR		ARC archive (c64)
-2	string		-LH1-		LHA archive (c64)
-
-0	string		C64File		PC64 Emulator file
->8	string		>\0		"%s"
-0	string		C64Image	PC64 Freezer Image
-
-0	beshort		0x38CD		C64 PCLink Image
-0	string		CBM\144\0\0	Power 64 C64 Emulator Snapshot
-
-0	belong		0xFF424CFF	WRAptor packer (c64)
-
-0	string		C64S\x20tape\x20file	T64 tape Image
->32	leshort		x		Version:0x%x
->36	leshort		!0		Entries:%i
->40	string		x		Name:%.24s
-
-0	string		C64\x20tape\x20image\x20file\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0	T64 tape Image
->32	leshort		x		Version:0x%x
->36	leshort		!0		Entries:%i
->40	string		x		Name:%.24s
-
-0	string		C64S\x20tape\x20image\x20file\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0	T64 tape Image
->32	leshort		x		Version:0x%x
->36	leshort		!0		Entries:%i
->40	string		x		Name:%.24s
-
-#------------------------------------------------------------------------------
-# autocad:  file(1) magic for cad files
-#
-
-# AutoCAD DWG versions R13/R14 (www.autodesk.com)
-# Written December 01, 2003 by Lester Hightower
-# Based on the DWG File Format Specifications at http://www.opendwg.org/
-0	string	       \101\103\061\060\061		   AutoCAD
->5	string	       \062\000\000\000\000		   DWG ver. R13
->5	string	       \064\000\000\000\000		   DWG ver. R14
-
-# Microstation DGN/CIT Files (www.bentley.com)
-# Last updated July 29, 2005 by Lester Hightower
-# DGN is the default file extension of Microstation/Intergraph CAD files.
-# CIT is the proprietary raster format (similar to TIFF) used to attach
-# raster underlays to Microstation DGN (vector) drawings.
-# 
-# http://www.wotsit.org/search.asp
-# http://filext.com/detaillist.php?extdetail=DGN
-# http://filext.com/detaillist.php?extdetail=CIT
-#
-# http://www.bentley.com/products/default.cfm?objectid=97F351F5-9C35-4E5E-89C2
-# 3F86C928&method=display&p_objectid=97F351F5-9C35-4E5E-89C280A93F86C928
-# http://www.bentley.com/products/default.cfm?objectid=A5C2FD43-3AC9-4C71-B682
-# 721C479F&method=display&p_objectid=A5C2FD43-3AC9-4C71-B682C7BE721C479F
-0	string	\010\011\376			Microstation
->3	string	\002
->>30	string	\026\105			DGNFile
->>30	string	\034\105			DGNFile
->>30	string	\073\107			DGNFile
->>30	string	\073\110			DGNFile
->>30	string	\106\107			DGNFile
->>30	string	\110\103			DGNFile
->>30	string	\120\104			DGNFile
->>30	string	\172\104			DGNFile
->>30	string	\172\105			DGNFile
->>30	string	\172\106			DGNFile
->>30	string	\234\106			DGNFile
->>30	string	\273\105			DGNFile
->>30	string	\306\106			DGNFile
->>30	string	\310\104			DGNFile
->>30	string	\341\104			DGNFile
->>30	string	\372\103			DGNFile
->>30	string	\372\104			DGNFile
->>30	string	\372\106			DGNFile
->>30	string	\376\103			DGNFile
->4	string	\030\000\000			CITFile
->4	string	\030\000\003			CITFile
-
-# AutoCad, from Nahuel Greco
-# AutoCAD DWG versions R12/R13/R14 (www.autodesk.com)
-0	string AC1012	AutoCad (release 12)
-0	string AC1013	AutoCad (release 13)
-0	string AC1014	AutoCad (release 14)
-
-# CAD: file(1) magic for computer aided design files
-# Phillip Griffith <phillip dot griffith at gmail dot com>
-# AutoCAD magic taken from the Open Design Alliance's OpenDWG specifications.
-#
-0	belong	0x08051700	Bentley/Intergraph MicroStation DGN cell library
-0	belong	0x0809fe02	Bentley/Intergraph MicroStation DGN vector CAD
-0	belong	0xc809fe02	Bentley/Intergraph MicroStation DGN vector CAD
-0	beshort	0x0809		Bentley/Intergraph MicroStation
->0x02	byte	0xfe
->>0x04	beshort	0x1800		CIT raster CAD
-0	string	AC1012		AutoDesk AutoCAD R13
-0	string	AC1014		AutoDesk AutoCAD R14 
-0	string	AC1015		AutoDesk AutoCAD R2000
-#------------------------------------------------------------------------------
-# Cafe Babes unite!
-#
-# Since Java bytecode and Mach-O fat-files have the same magic number, the test
-# must be performed in the same "magic" sequence to get both right.  The long
-# at offset 4 in a mach-O fat file tells the number of architectures; the short at
-# offset 4 in a Java bytecode file is the JVM minor version and the
-# short at offset 6 is the JVM major version.  Since there are only 
-# only 18 labeled Mach-O architectures at current, and the first released 
-# Java class format was version 43.0, we can safely choose any number
-# between 18 and 39 to test the number of architectures against
-# (and use as a hack). Let's not use 18, because the Mach-O people
-# might add another one or two as time goes by...
-#
-0	belong		0xcafebabe
-!:mime	application/x-java-applet
->4	belong		>30		compiled Java class data,
->>6	beshort		x	        version %d.
->>4	beshort		x       	\b%d
-# Which is which?
-#>>4	belong		0x032d		(Java 1.0)
-#>>4	belong		0x032d		(Java 1.1)
->>4	belong		0x002e		(Java 1.2)
->>4	belong		0x002f		(Java 1.3)
->>4	belong		0x0030		(Java 1.4)
->>4	belong		0x0031		(Java 1.5)
->>4	belong		0x0032		(Java 1.6)
-
-
-0	belong		0xcafebabe
->4	belong		1		Mach-O fat file with 1 architecture
->4	belong		>1
->>4	belong		<20		Mach-O fat file with %ld architectures
-
-0	belong		0xcafed00d	JAR compressed with pack200,
->>5	byte		x		version %d.
->>4	byte		x		\b%d
-!:mime	application/x-java-pack200
-#------------------------------------------------------------------------------
-# CDDB: file(1) magic for CDDB(tm) format CD text data files
-#
-# From <steve@gracenote.com>
-#
-# This is the /etc/magic entry to decode datafiles as used by
-# CDDB-enabled CD player applications.
-#
-
-0	search/1/b	#\040xmcd	CDDB(tm) format CD text data
-
-#------------------------------------------------------------------------------
-# chord: file(1) magic for Chord music sheet typesetting utility input files
-#
-# From Philippe De Muyter <phdm@macqel.be>
-# File format is actually free, but many distributed files begin with `{title'
-#
-0	string		{title		Chord text file
-
-# Type:	PowerTab file format
-# URL:	http://www.power-tab.net/
-# From:	Jelmer Vernooij <jelmer@samba.org>
-0	string		ptab\003\000	Power-Tab v3 Tablature File
-0	string		ptab\004\000	Power-Tab v4 Tablature File
-#------------------------------------------------------------------------------
-# cisco:  file(1) magic for cisco Systems routers
-#
-# Most cisco file-formats are covered by the generic elf code
-#
-# Microcode files are non-ELF, 0x8501 conflicts with NetBSD/alpha.
-0	belong&0xffffff00	0x85011400  cisco IOS microcode
->7	string		>\0		    for '%s'
-0	belong&0xffffff00	0x8501cb00  cisco IOS experimental microcode
->7	string		>\0		    for '%s'
-#------------------------------------------------------------------------------
-# citrus locale declaration
-#
-
-0	string		RuneCT		Citrus locale declaration for LC_CTYPE
-
-
-#------------------------------------------------------------------------------
-# clarion:  file(1) magic for # Clarion Personal/Professional Developer
-# (v2 and above)
-# From: Julien Blache <jb@jblache.org>
-
-# Database files
-# signature
-0	leshort	0x3343	Clarion Developer (v2 and above) data file
-# attributes
->2	leshort	&0x0001	\b, locked
->2	leshort	&0x0004	\b, encrypted
->2	leshort	&0x0008	\b, memo file exists
->2	leshort	&0x0010	\b, compressed
->2	leshort	&0x0040	\b, read only
-# number of records
->5	lelong	x	\b, %ld records
-
-# Memo files
-0	leshort	0x334d	Clarion Developer (v2 and above) memo data
-
-# Key/Index files
-# No magic? :(
-
-# Help files
-0	leshort	0x49e0	Clarion Developer (v2 and above) help data
-
-#------------------------------------------------------------------------------
-# claris:  file(1) magic for claris
-# "H. Nanosecond" <aldomel@ix.netcom.com>
-# Claris Works a word processor, etc.
-# Version 3.0
-
-# .pct claris works clip art files
-#0000000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
-#*
-#0001000 #010 250 377 377 377 377 000 213 000 230 000 021 002 377 014 000
-#null to byte 1000 octal
-514	string	\377\377\377\377\000	Claris clip art?
->0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0	yes.
-514	string	\377\377\377\377\001	Claris clip art?
->0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0	yes.
-
-# Claris works files
-# .cwk
-0	string	\002\000\210\003\102\117\102\117\000\001\206 Claris works document
-# .plt
-0	string	\020\341\000\000\010\010	Claris Works pallete files .plt
-
-# .msp a dictionary file I am not sure about this I have only one .msp file
-0	string	\002\271\262\000\040\002\000\164	Claris works dictionary
-
-# .usp are user dictionary bits
-# I am not sure about a magic header:
-#0000000 001 123 160 146 070 125 104 040 136 123 015 012 160 157 144 151
-#        soh   S   p   f   8   U   D  sp   ^   S  cr  nl   p   o   d   i
-#0000020 141 164 162 151 163 164 040 136 123 015 012 144 151 166 040 043
-#          a   t   r   i   s   t  sp   ^   S  cr  nl   d   i   v  sp   #
-
-# .mth Thesaurus
-# starts with \0 but no magic header
-
-# .chy Hyphenation file
-# I am not sure: 000 210 034 000 000
-
-# other claris files
-#./windows/claris/useng.ndx: data
-#./windows/claris/xtndtran.l32: data
-#./windows/claris/xtndtran.lst: data
-#./windows/claris/clworks.lbl: data
-#./windows/claris/clworks.prf: data
-#./windows/claris/userd.spl: data
-
-#------------------------------------------------------------------------------
-# clipper:  file(1) magic for Intergraph (formerly Fairchild) Clipper.
-#
-# XXX - what byte order does the Clipper use?
-#
-# XXX - what's the "!" stuff:
-#
-# >18	short		!074000,000000	C1 R1 
-# >18	short		!074000,004000	C2 R1
-# >18	short		!074000,010000	C3 R1
-# >18	short		!074000,074000	TEST
-#
-# I shall assume it's ANDing the field with the first value and
-# comparing it with the second, and rewrite it as:
-#
-# >18	short&074000	000000		C1 R1 
-# >18	short&074000	004000		C2 R1
-# >18	short&074000	010000		C3 R1
-# >18	short&074000	074000		TEST
-#
-# as SVR3.1's "file" doesn't support anything of the "!074000,000000"
-# sort, nor does SunOS 4.x, so either it's something Intergraph added
-# in CLIX, or something AT&T added in SVR3.2 or later, or something
-# somebody else thought was a good idea; it's not documented in the
-# man page for this version of "magic", nor does it appear to be
-# implemented (at least not after I blew off the bogus code to turn
-# old-style "&"s into new-style "&"s, which just didn't work at all).
-#
-0	short		0575		CLIPPER COFF executable (VAX #)
->20	short		0407		(impure)
->20	short		0410		(5.2 compatible)
->20	short		0411		(pure)
->20	short		0413		(demand paged)
->20	short		0443		(target shared library)
->12	long		>0		not stripped
->22	short		>0		- version %ld
-0	short		0577		CLIPPER COFF executable
->18	short&074000	000000		C1 R1 
->18	short&074000	004000		C2 R1
->18	short&074000	010000		C3 R1
->18	short&074000	074000		TEST
->20	short		0407		(impure)
->20	short		0410		(pure)
->20	short		0411		(separate I&D)
->20	short		0413		(paged)
->20	short		0443		(target shared library)
->12	long		>0		not stripped
->22	short		>0		- version %ld
->48	long&01		01		alignment trap enabled
->52	byte		1		-Ctnc
->52	byte		2		-Ctsw
->52	byte		3		-Ctpw
->52	byte		4		-Ctcb
->53	byte		1		-Cdnc
->53	byte		2		-Cdsw
->53	byte		3		-Cdpw
->53	byte		4		-Cdcb
->54	byte		1		-Csnc
->54	byte		2		-Cssw
->54	byte		3		-Cspw
->54	byte		4		-Cscb
-4	string		pipe		CLIPPER instruction trace
-4	string		prof		CLIPPER instruction profile
-
-#------------------------------------------------------------------------------
-# commands:  file(1) magic for various shells and interpreters
-#
-#0	string		:			shell archive or script for antique kernel text
-0	string/b	#!\ /bin/sh		POSIX shell script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /bin/csh		C shell script text executable
-!:mime	text/x-shellscript
-# korn shell magic, sent by George Wu, gwu@clyde.att.com
-0	string/b	#!\ /bin/ksh		Korn shell script text executable
-!:mime	text/x-shellscript
-0	string/b 	#!\ /bin/tcsh		Tenex C shell script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/bin/tcsh	Tenex C shell script text executable
-!:mime	text/x-shellscript
-0	string/b 	#!\ /usr/local/tcsh	Tenex C shell script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/local/bin/tcsh	Tenex C shell script text executable
-!:mime	text/x-shellscript
-
-#
-# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
-0	string/b	#!\ /bin/zsh		Paul Falstad's zsh script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/bin/zsh	Paul Falstad's zsh script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/local/bin/zsh	Paul Falstad's zsh script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/local/bin/ash	Neil Brown's ash script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/local/bin/ae	Neil Brown's ae script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /bin/nawk		new awk script text executable
-!:mime	text/x-nawk
-0	string/b	#!\ /usr/bin/nawk	new awk script text executable
-!:mime	text/x-nawk
-0	string/b	#!\ /usr/local/bin/nawk	new awk script text executable
-!:mime	text/x-nawk
-0	string/b	#!\ /bin/gawk		GNU awk script text executable
-!:mime	text/x-gawk
-0	string/b	#!\ /usr/bin/gawk	GNU awk script text executable
-!:mime	text/x-gawk
-0	string/b	#!\ /usr/local/bin/gawk	GNU awk script text executable
-!:mime	text/x-gawk
-#
-0	string/b	#!\ /bin/awk		awk script text executable
-!:mime	text/x-awk
-0	string/b	#!\ /usr/bin/awk	awk script text executable
-!:mime	text/x-awk
-# update to distinguish from *.vcf files
-# this is broken because postscript has /EBEGIN{ for example.
-#0	search/Bb	BEGIN {			awk script text
-0	regex		=^\\s*BEGIN\\s*[{]	awk script text
-
-# AT&T Bell Labs' Plan 9 shell
-0	string/b	#!\ /bin/rc	Plan 9 rc shell script text executable
-
-# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
-0	string/b	#!\ /bin/bash	Bourne-Again shell script text executable
-!:mime	text/x-shellscript
-0	string/b	#!\ /usr/bin/bash	Bourne-Again shell script text executable
-!:mime text/x-shellscript
-0	string/b	#!\ /usr/local/bash	Bourne-Again shell script text executable
-!:mime text/x-shellscript
-0	string/b	#!\ /usr/local/bin/bash	Bourne-Again shell script text executable
-!:mime	text/x-shellscript
-
-# using env
-0	string		#!/usr/bin/env		a
->15	string		>\0			%s script text executable
-0	string		#!\ /usr/bin/env	a
->16	string		>\0			%s script text executable
-
-# PHP scripts
-# Ulf Harnhammar <ulfh@update.uu.se>
-0	search/1/c	=<?php			PHP script text
-!:mime	text/x-php
-0	search/1	=<?\n			PHP script text
-!:mime	text/x-php
-0	search/1	=<?\r			PHP script text
-!:mime	text/x-php
-0	search/1/b	#!\ /usr/local/bin/php	PHP script text executable
-!:mime	text/x-php
-0	search/1/b	#!\ /usr/bin/php	PHP script text executable
-!:mime	text/x-php
-
-0	string		Zend\x00		PHP script Zend Optimizer data
-
-0	string		$!			DCL command file
-
-# Type: Pdmenu
-# URL:  http://packages.debian.org/pdmenu
-# From: Edward Betts <edward@debian.org>
-0	string	#!/usr/bin/pdmenu	Pdmenu configuration file text
-
-#----------------------------------------------------------------------------
-# communication
-
-# TTCN is the Tree and Tabular Combined Notation described in ISO 9646-3.
-# It is used for conformance testing of communication protocols.
-# Added by W. Borgert <debacle@debian.org>.
-0	string		$Suite			TTCN Abstract Test Suite
->&1	string		$SuiteId
->>&1	string		>\n			%s
->&2	string		$SuiteId
->>&1	string		>\n			%s
->&3	string		$SuiteId
->>&1	string		>\n			%s
-
-# MSC (message sequence charts) are a formal description technique,
-# described in ITU-T Z.120, mainly used for communication protocols.
-# Added by W. Borgert <debacle@debian.org>.
-0	string		mscdocument	Message Sequence Chart (document)
-0	string		msc		Message Sequence Chart (chart)
-0	string		submsc		Message Sequence Chart (subchart)
-
-#------------------------------------------------------------------------------
-# compress:  file(1) magic for pure-compression formats (no archives)
-#
-# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
-#
-# Formats for various forms of compressed data
-# Formats for "compress" proper have been moved into "compress.c",
-# because it tries to uncompress it to figure out what's inside.
-
-# standard unix compress
-0	string		\037\235	compress'd data
-!:mime	application/x-compress
-!:apple	LZIVZIVU
->2	byte&0x80	>0		block compressed
->2	byte&0x1f	x		%d bits
-
-# gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
-#   Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
-#	* Original filename is only at offset 10 if "extra field" absent
-#	* Produce shorter output - notably, only report compression methods
-#	  other than 8 ("deflate", the only method defined in RFC 1952).
-0       string          \037\213        gzip compressed data
-!:mime	application/x-gzip
->2	byte		<8		\b, reserved method
->2	byte		>8		\b, unknown method
->3	byte		&0x01		\b, ASCII
->3	byte		&0x02		\b, has CRC
->3	byte		&0x04		\b, extra field
->3	byte&0xC	=0x08
->>10	string		x		\b, was "%s"
->3	byte		&0x10		\b, has comment
->9	byte		=0x00		\b, from FAT filesystem (MS-DOS, OS/2, NT)
->9	byte		=0x01		\b, from Amiga
->9	byte		=0x02		\b, from VMS
->9	byte		=0x03		\b, from Unix
->9	byte		=0x04		\b, from VM/CMS
->9	byte		=0x05		\b, from Atari
->9	byte		=0x06		\b, from HPFS filesystem (OS/2, NT)
->9	byte		=0x07		\b, from MacOS
->9	byte		=0x08		\b, from Z-System
->9	byte		=0x09		\b, from CP/M
->9	byte		=0x0A		\b, from TOPS/20
->9	byte		=0x0B		\b, from NTFS filesystem (NT)
->9	byte		=0x0C		\b, from QDOS
->9	byte		=0x0D		\b, from Acorn RISCOS
->3	byte		&0x10		\b, comment
->3	byte		&0x20		\b, encrypted
->4	ledate		>0		\b, last modified: %s
->8	byte		2		\b, max compression
->8	byte		4		\b, max speed
-
-# packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
-0	string		\037\036	packed data
-!:mime	application/octet-stream
->2	belong		>1		\b, %d characters originally
->2	belong		=1		\b, %d character originally
-#
-# This magic number is byte-order-independent.
-0	short		0x1f1f		old packed data
-!:mime	application/octet-stream
-
-# XXX - why *two* entries for "compacted data", one of which is
-# byte-order independent, and one of which is byte-order dependent?
-#
-0	short		0x1fff		compacted data
-!:mime	application/octet-stream
-# This string is valid for SunOS (BE) and a matching "short" is listed
-# in the Ultrix (LE) magic file.
-0	string		\377\037	compacted data
-!:mime	application/octet-stream
-0	short		0145405		huf output
-!:mime	application/octet-stream
-
-# bzip2
-0	string		BZh		bzip2 compressed data
-!:mime	application/x-bzip2
->3	byte		>47		\b, block size = %c00k
-
-# lzip
-0	string		LZIP		lzip compressed data
-!:mime application/x-lzip
->4	byte		x		\b, version: %d
-
-# squeeze and crunch
-# Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
-0	beshort		0x76FF		squeezed data,
->4	string		x		original name %s
-0	beshort		0x76FE		crunched data,
->2	string		x		original name %s
-0	beshort		0x76FD		LZH compressed data,
->2	string		x		original name %s
-
-# Freeze
-0	string		\037\237	frozen file 2.1
-0	string		\037\236	frozen file 1.0 (or gzip 0.5)
-
-# SCO compress -H (LZH)
-0	string		\037\240	SCO compress -H (LZH) data
-
-# European GSM 06.10 is a provisional standard for full-rate speech
-# transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
-# excitation/long term prediction) coding at 13 kbit/s.
-#
-# There's only a magic nibble (4 bits); that nibble repeats every 33
-# bytes.  This isn't suited for use, but maybe we can use it someday.
-#
-# This will cause very short GSM files to be declared as data and
-# mismatches to be declared as data too!
-#0	byte&0xF0	0xd0		data
-#>33	byte&0xF0	0xd0
-#>66	byte&0xF0	0xd0
-#>99	byte&0xF0	0xd0
-#>132	byte&0xF0	0xd0		GSM 06.10 compressed audio
-
-# bzip	a block-sorting file compressor
-#	by Julian Seward <sewardj@cs.man.ac.uk> and others
-#
-#0	string		BZ		bzip compressed data
-#>2	byte		x		\b, version: %c
-#>3	string		=1		\b, compression block size 100k
-#>3	string		=2		\b, compression block size 200k
-#>3	string		=3		\b, compression block size 300k
-#>3	string		=4		\b, compression block size 400k
-#>3	string		=5		\b, compression block size 500k
-#>3	string		=6		\b, compression block size 600k
-#>3	string		=7		\b, compression block size 700k
-#>3	string		=8		\b, compression block size 800k
-#>3	string		=9		\b, compression block size 900k
-
-# lzop from <markus.oberhumer@jk.uni-linz.ac.at>
-0	string		\x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a	lzop compressed data
->9	beshort		<0x0940
->>9	byte&0xf0	=0x00		- version 0.
->>9	beshort&0x0fff	x		\b%03x,
->>13	byte		1		LZO1X-1,
->>13	byte		2		LZO1X-1(15),
->>13	byte		3		LZO1X-999,
-## >>22	bedate		>0		last modified: %s,
->>14	byte		=0x00		os: MS-DOS
->>14	byte		=0x01		os: Amiga
->>14	byte		=0x02		os: VMS
->>14	byte		=0x03		os: Unix
->>14	byte		=0x05		os: Atari
->>14	byte		=0x06		os: OS/2
->>14	byte		=0x07		os: MacOS
->>14	byte		=0x0A		os: Tops/20
->>14	byte		=0x0B		os: WinNT
->>14	byte		=0x0E		os: Win32
->9	beshort		>0x0939
->>9	byte&0xf0	=0x00		- version 0.
->>9	byte&0xf0	=0x10		- version 1.
->>9	byte&0xf0	=0x20		- version 2.
->>9	beshort&0x0fff	x		\b%03x,
->>15	byte		1		LZO1X-1,
->>15	byte		2		LZO1X-1(15),
->>15	byte		3		LZO1X-999,
-## >>25	bedate		>0		last modified: %s,
->>17	byte		=0x00		os: MS-DOS
->>17	byte		=0x01		os: Amiga
->>17	byte		=0x02		os: VMS
->>17	byte		=0x03		os: Unix
->>17	byte		=0x05		os: Atari
->>17	byte		=0x06		os: OS/2
->>17	byte		=0x07		os: MacOS
->>17	byte		=0x0A		os: Tops/20
->>17	byte		=0x0B		os: WinNT
->>17	byte		=0x0E		os: Win32
-
-# 4.3BSD-Quasijarus Strong Compression
-# http://minnie.tuhs.org/Quasijarus/compress.html
-0	string		\037\241	Quasijarus strong compressed data
-
-# From: Cory Dikkers <cdikkers@swbell.net>
-0	string		XPKF		Amiga xpkf.library compressed data
-0	string		PP11		Power Packer 1.1 compressed data
-0	string		PP20		Power Packer 2.0 compressed data,
->4	belong		0x09090909	fast compression
->4	belong		0x090A0A0A	mediocre compression
->4	belong		0x090A0B0B	good compression
->4	belong		0x090A0C0C	very good compression
->4	belong		0x090A0C0D	best compression
-
-# 7-zip archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at)
-# http://www.7-zip.org or DOC/7zFormat.txt 
-#
-0	string		7z\274\257\047\034	7-zip archive data,
->6	byte		x			version %d
->7	byte		x			\b.%d
-
-# Type: LZMA
-# URL:  http://www.7-zip.org/sdk.html
-# From: Robert Millan <rmh@aybabtu.com> and Reuben Thomas <rrt@sc3d.org>
-# Commented out because apparently not reliable (according to Debian
-# bug #364260)
-#0	string		]\000\000\200\000	LZMA compressed data
-
-# http://tukaani.org/xz/xz-file-format.txt
-0	ustring		\xFD7zXZ\x00		xz compressed data
-!:mime	application/x-xz
-
-# AFX compressed files (Wolfram Kleff)
-2	string		-afx-		AFX compressed file data
-
-# Supplementary magic data for the file(1) command to support
-# rzip(1).  The format is described in magic(5).
-#
-# Copyright (C) 2003 by Andrew Tridgell.  You may do whatever you want with
-# this file.
-#
-0	string		RZIP		rzip compressed data
->4	byte		x		- version %d
->5	byte		x		\b.%d
->6	belong		x		(%d bytes)
-
-# Type: XZ
-# URL: http://tukaani.org/xz/
-0	string		\xfd\x37\x7a\x58\x5a\x00	XZ compressed data
-!:mime application/x-xz
-#------------------------------------------------------------------------------
-# Console game magic
-# Toby Deshane <hac@shoelace.digivill.net>
-#    ines:  file(1) magic for Marat's iNES Nintendo Entertainment System
-#           ROM dump format
-
-0 string NES\032 iNES ROM dump,
->4 byte  x     %dx16k PRG
->5 byte  x     \b, %dx8k CHR
->6 byte&0x01  =0x1  \b, [Vert.]
->6 byte&0x01  =0x0  \b, [Horiz.]
->6 byte&0x02  =0x2  \b, [SRAM]
->6 byte&0x04  =0x4  \b, [Trainer]
->6 byte&0x04  =0x8  \b, [4-Scr]
-
-#------------------------------------------------------------------------------
-# gameboy:  file(1) magic for the Nintendo (Color) Gameboy raw ROM format
-#
-0x104 belong 0xCEED6666 Gameboy ROM:
->0x134 string >\0 "%.16s"
->0x146 byte 0x03  \b,[SGB]
->0x147 byte 0x00  \b, [ROM ONLY]
->0x147 byte 0x01  \b, [ROM+MBC1]
->0x147 byte 0x02  \b, [ROM+MBC1+RAM]
->0x147 byte 0x03  \b, [ROM+MBC1+RAM+BATT]
->0x147 byte 0x05  \b, [ROM+MBC2]
->0x147 byte 0x06  \b, [ROM+MBC2+BATTERY]
->0x147 byte 0x08  \b, [ROM+RAM]
->0x147 byte 0x09  \b, [ROM+RAM+BATTERY]
->0x147 byte 0x0B  \b, [ROM+MMM01]
->0x147 byte 0x0C  \b, [ROM+MMM01+SRAM]
->0x147 byte 0x0D  \b, [ROM+MMM01+SRAM+BATT]
->0x147 byte 0x0F  \b, [ROM+MBC3+TIMER+BATT]
->0x147 byte 0x10  \b, [ROM+MBC3+TIMER+RAM+BATT]
->0x147 byte 0x11  \b, [ROM+MBC3]
->0x147 byte 0x12  \b, [ROM+MBC3+RAM]
->0x147 byte 0x13  \b, [ROM+MBC3+RAM+BATT]
->0x147 byte 0x19  \b, [ROM+MBC5]
->0x147 byte 0x1A  \b, [ROM+MBC5+RAM]
->0x147 byte 0x1B  \b, [ROM+MBC5+RAM+BATT]
->0x147 byte 0x1C  \b, [ROM+MBC5+RUMBLE]
->0x147 byte 0x1D  \b, [ROM+MBC5+RUMBLE+SRAM]
->0x147 byte 0x1E  \b, [ROM+MBC5+RUMBLE+SRAM+BATT]
->0x147 byte 0x1F  \b, [Pocket Camera]
->0x147 byte 0xFD  \b, [Bandai TAMA5]
->0x147 byte 0xFE  \b, [Hudson HuC-3]
->0x147 byte 0xFF  \b, [Hudson HuC-1]
-
->0x148 byte 0     \b, ROM: 256Kbit
->0x148 byte 1     \b, ROM: 512Kbit
->0x148 byte 2     \b, ROM: 1Mbit
->0x148 byte 3     \b, ROM: 2Mbit
->0x148 byte 4     \b, ROM: 4Mbit
->0x148 byte 5     \b, ROM: 8Mbit
->0x148 byte 6     \b, ROM: 16Mbit
->0x148 byte 0x52  \b, ROM: 9Mbit
->0x148 byte 0x53  \b, ROM: 10Mbit
->0x148 byte 0x54  \b, ROM: 12Mbit
-
->0x149 byte 1     \b, RAM: 16Kbit
->0x149 byte 2     \b, RAM: 64Kbit
->0x149 byte 3     \b, RAM: 128Kbit
->0x149 byte 4     \b, RAM: 1Mbit
-
-#>0x14e long  x     \b, CRC: %x
-
-#------------------------------------------------------------------------------
-# genesis:  file(1) magic for the Sega MegaDrive/Genesis raw ROM format
-#
-0x100 string SEGA  Sega MegaDrive/Genesis raw ROM dump
->0x120 string >\0 Name: "%.16s"
->0x110 string >\0 %.16s
->0x1B0 string RA with SRAM
-
-#------------------------------------------------------------------------------
-# genesis:  file(1) magic for the Super MegaDrive ROM dump format
-#
-0x280 string EAGN  Super MagicDrive ROM dump
->0 byte x %dx16k blocks
->2 byte 0 \b, last in series or standalone
->2 byte >0 \b, split ROM
->8 byte 0xAA
->9 byte 0xBB
-
-#------------------------------------------------------------------------------
-# genesis:  file(1) alternate magic for the Super MegaDrive ROM dump format
-#
-0x280 string EAMG  Super MagicDrive ROM dump
->0 byte x %dx16k blocks
->2 byte x \b, last in series or standalone
->8 byte 0xAA
->9 byte 0xBB
-
-#------------------------------------------------------------------------------
-# smsgg:  file(1) magic for Sega Master System and Game Gear ROM dumps
-#
-# Does not detect all images.  Very preliminary guesswork.  Need more data
-# on format.
-#
-# FIXME: need a little more info...;P
-#
-#0 byte 0xF3
-#>1 byte 0xED  Sega Master System/Game Gear ROM dump
-#>1 byte 0x31  Sega Master System/Game Gear ROM dump
-#>1 byte 0xDB  Sega Master System/Game Gear ROM dump
-#>1 byte 0xAF  Sega Master System/Game Gear ROM dump
-#>1 byte 0xC3  Sega Master System/Game Gear ROM dump
-
-#------------------------------------------------------------------------------
-# dreamcast:  file(1) uncertain magic for the Sega Dreamcast VMU image format
-#
-0 belong 0x21068028   Sega Dreamcast VMU game image
-0 string LCDi         Dream Animator file
-
-#------------------------------------------------------------------------------
-# v64: file(1) uncertain magic for the V64 format N64 ROM dumps
-#
-0 belong 0x37804012    V64 Nintendo 64 ROM dump
-
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-# Nintendo .nds
-192	string	\044\377\256Qi\232	Nintendo DS Game ROM Image
-# Nintendo .gba
-0	string	\056\000\000\352$\377\256Qi	Nintendo Game Boy Advance ROM Image
-
-#------------------------------------------------------------------------------
-# msx: file(1) magic for MSX game cartridge dumps
-# Too simple - MPi
-#0 beshort 0x4142 MSX game cartridge dump 
-
-#------------------------------------------------------------------------------
-# Sony Playstation executables (Adam Sjoegren <asjo@diku.dk>) :
-0	string	PS-X\ EXE	Sony Playstation executable
-#  Area:
->113	string	x		(%s)
-
-#------------------------------------------------------------------------------
-# Microsoft Xbox executables .xbe (Esa Hyytiä <ehyytia@cc.hut.fi>)
-0       string          XBEH            XBE, Microsoft Xbox executable
-# probabilistic checks whether signed or not
->0x0004 ulelong =0x0
->>&2    ulelong =0x0
->>>&2   ulelong =0x0  \b, not signed
->0x0004 ulelong >0
->>&2    ulelong >0
->>>&2   ulelong >0    \b, signed
-# expect base address of 0x10000
->0x0104               ulelong =0x10000
->>(0x0118-0x0FF60)    ulelong&0x80000007  0x80000007 \b, all regions
->>(0x0118-0x0FF60)    ulelong&0x80000007  !0x80000007
->>>(0x0118-0x0FF60)   ulelong >0           (regions:
->>>>(0x0118-0x0FF60)  ulelong &0x00000001  NA
->>>>(0x0118-0x0FF60)  ulelong &0x00000002  Japan
->>>>(0x0118-0x0FF60)  ulelong &0x00000004  Rest_of_World
->>>>(0x0118-0x0FF60)  ulelong &0x80000000  Manufacturer
->>>(0x0118-0x0FF60)   ulelong >0           \b)
-
-# --------------------------------
-# Microsoft Xbox data file formats
-0       string          XIP0            XIP, Microsoft Xbox data
-0       string          XTF0            XTF, Microsoft Xbox data
-
-# Atari Lynx cartridge dump (EXE/BLL header)
-# From: "Stefan A. Haubenthal" <polluks@web.de>
-
-0	beshort		0x8008		Lynx cartridge,
->2	beshort		x		RAM start $%04x
->6	string		BS93
-
-# Opera file system that is used on the 3DO console
-# From: Serge van den Boom <svdb@stack.nl>
-0	string		\x01ZZZZZ\x01	3DO "Opera" file system
-
-# From Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu
-0	string		GBS		Nintendo Gameboy Music/Audio Data
-12	string		GameBoy\ Music\ Module	Nintendo Gameboy Music Module
-
-# Playstations Patch Files from: From: Thomas Klausner <tk@giga.or.at>
-0	string	PPF30			Playstation Patch File version 3.0
->5	byte	0			\b, PPF 1.0 patch
->5	byte	1			\b, PPF 2.0 patch
->5	byte	2			\b, PPF 3.0 patch
->>56	byte	0			\b, Imagetype BIN (any)
->>56	byte	1			\b, Imagetype GI (PrimoDVD)
->>57	byte	0			\b, Blockcheck disabled
->>57	byte	1			\b, Blockcheck enabled
->>58	byte	0			\b, Undo data not available
->>58	byte	1			\b, Undo data available
->6	string	x			\b, description: %s
-
-0	string	PPF20			Playstation Patch File version 2.0
->5	byte	0			\b, PPF 1.0 patch
->5	byte	1			\b, PPF 2.0 patch
->>56	lelong	>0			\b, size of file to patch %d
->6	string	x			\b, description: %s
-
-0	string	PPF10			Playstation Patch File version 1.0
->5	byte	0			\b, Simple Encoding
->6	string	x			\b, description: %s
-
-# From: Daniel Dawson <ddawson@icehouse.net>
-# SNES9x .smv "movie" file format.
-0		string		SMV\x1A	SNES9x input recording
->0x4		lelong		x	\b, version %d
-# version 4 is latest so far 
->0x4		lelong		<5
->>0x8		ledate		x	\b, recorded at %s
->>0xc		lelong		>0	\b, rerecorded %d times
->>0x10		lelong		x	\b, %d frames long
->>0x14		byte		>0	\b, data for controller(s):
->>>0x14		byte		&0x1	#1
->>>0x14		byte		&0x2	#2
->>>0x14		byte		&0x4	#3
->>>0x14		byte		&0x8	#4
->>>0x14		byte		&0x10	#5
->>0x15		byte		^0x1	\b, begins from snapshot
->>0x15		byte		&0x1	\b, begins from reset
->>0x15		byte		^0x2	\b, NTSC standard
->>0x15		byte		&0x2	\b, PAL standard
->>0x17		byte		&0x1    \b, settings:
-# WIP1Timing not used as of version 4
->>>0x4		lelong		<4
->>>>0x17	byte		&0x2	WIP1Timing
->>>0x17		byte		&0x4	Left+Right
->>>0x17		byte		&0x8	VolumeEnvX
->>>0x17		byte		&0x10	FakeMute
->>>0x17		byte		&0x20	SyncSound
-# New flag as of version 4
->>>0x4		lelong		>3
->>>>0x17	byte		&0x80	NoCPUShutdown
->>0x4		lelong		<4
->>>0x18		lelong		>0x23
->>>>0x20	leshort		!0
->>>>>0x20	lestring16	x	\b, metadata: "%s"
->>0x4		lelong		>3
->>>0x24		byte		>0	\b, port 1:
->>>>0x24	byte		1	joypad
->>>>0x24	byte		2	mouse
->>>>0x24	byte		3	SuperScope
->>>>0x24	byte		4	Justifier
->>>>0x24	byte		5	multitap
->>>0x24		byte		>0	\b, port 2:
->>>>0x25	byte		1	joypad
->>>>0x25	byte		2	mouse
->>>>0x25	byte		3	SuperScope
->>>>0x25	byte		4	Justifier
->>>>0x25	byte		5	multitap
->>>0x18		lelong		>0x43
->>>>0x40	leshort		!0
->>>>>0x40	lestring16	x	\b, metadata: "%s"
->>0x17		byte		&0x40   \b, ROM:
->>>(0x18.l-26)	lelong		x	CRC32 0x%08x
->>>(0x18.l-23)	string		x	"%s"
-
-# Type: scummVM savegame files
-# From: Sven Hartge <debian@ds9.argh.org>
-0	string	SCVM	ScummVM savegame
->12	string	>\0	"%s"
-#------------------------------------------------------------------------------
-# convex:  file(1) magic for Convex boxes
-#
-# Convexes are big-endian.
-#
-# /*\
-#  * Below are the magic numbers and tests added for Convex.
-#  * Added at beginning, because they are expected to be used most.
-# \*/
-0	belong	0507	Convex old-style object
->16	belong	>0	not stripped
-0	belong	0513	Convex old-style demand paged executable
->16	belong	>0	not stripped
-0	belong	0515	Convex old-style pre-paged executable
->16	belong	>0	not stripped
-0	belong	0517	Convex old-style pre-paged, non-swapped executable
->16	belong	>0	not stripped
-0	belong	0x011257	Core file
-#
-# The following are a series of dump format magic numbers.  Each one
-# corresponds to a drastically different dump format.  The first on is
-# the original dump format on a 4.1 BSD or earlier file system.  The
-# second marks the change between the 4.1 file system and the 4.2 file
-# system.  The Third marks the changing of the block size from 1K
-# to 2K to be compatible with an IDC file system.  The fourth indicates
-# a dump that is dependent on Convex Storage Manager, because data in
-# secondary storage is not physically contained within the dump.
-# The restore program uses these number to determine how the data is
-# to be extracted.
-#
-24	belong	=60011	dump format, 4.1 BSD or earlier
-24	belong	=60012	dump format, 4.2 or 4.3 BSD without IDC
-24	belong	=60013	dump format, 4.2 or 4.3 BSD (IDC compatible)
-24	belong	=60014	dump format, Convex Storage Manager by-reference dump
-#
-# what follows is a bunch of bit-mask checks on the flags field of the opthdr.
-# If there is no `=' sign, assume just checking for whether the bit is set?
-#
-0	belong	0601		Convex SOFF
->88	belong&0x000f0000	=0x00000000	c1
->88	belong			&0x00010000	c2
->88	belong			&0x00020000	c2mp
->88	belong			&0x00040000	parallel
->88	belong			&0x00080000	intrinsic
->88	belong			&0x00000001	demand paged
->88	belong			&0x00000002	pre-paged
->88	belong			&0x00000004	non-swapped
->88	belong			&0x00000008	POSIX
-#
->84	belong			&0x80000000	executable
->84	belong			&0x40000000	object
->84	belong&0x20000000	=0		not stripped
->84	belong&0x18000000	=0x00000000	native fpmode
->84	belong&0x18000000	=0x10000000	ieee fpmode
->84	belong&0x18000000	=0x18000000	undefined fpmode
-#
-0	belong			0605		Convex SOFF core
-#
-0	belong			0607		Convex SOFF checkpoint
->88	belong&0x000f0000	=0x00000000	c1
->88	belong			&0x00010000	c2
->88	belong			&0x00020000	c2mp
->88	belong			&0x00040000	parallel
->88	belong			&0x00080000	intrinsic
->88	belong			&0x00000008	POSIX
-#
->84	belong&0x18000000	=0x00000000	native fpmode
->84	belong&0x18000000	=0x10000000	ieee fpmode
->84	belong&0x18000000	=0x18000000	undefined fpmode
-
-#------------------------------------------------------------------------------
-# cracklib:  file (1) magic for cracklib v2.7
-
-0	lelong	0x70775631	Cracklib password index, little endian
->4	long	>0		(%i words)
->4	long	0		("64-bit")
->>8	long	>-1		(%i words)
-0	belong	0x70775631	Cracklib password index, big endian
->4	belong	>-1		(%i words)
-# really bellong 0x0000000070775631
-0	search/1	\0\0\0\0pwV1	Cracklib password index, big endian ("64-bit")
->12	belong	>0		(%i words)
-# ----------------------------------------------------------------------------
-# ctags:  file (1) magic for Exuberant Ctags files
-# From: Alexander Mai <mai@migdal.ikp.physik.tu-darmstadt.de>
-0	search/1	=!_TAG	Exuberant Ctags tag file text
-
-#------------------------------------------------------------------------------
-# dact:  file(1) magic for DACT compressed files
-#
-0	long		0x444354C3	DACT compressed data
->4	byte		>-1		(version %i.
->5	byte		>-1		$BS%i.
->6	byte		>-1		$BS%i)
->7	long		>0		$BS, original size: %i bytes
->15	long		>30		$BS, block size: %i bytes
-
-#------------------------------------------------------------------------------
-# database:  file(1) magic for various databases
-#
-# extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk)
-#
-#
-# GDBM magic numbers
-#  Will be maintained as part of the GDBM distribution in the future.
-#  <downsj@teeny.org>
-0	belong	0x13579ace	GNU dbm 1.x or ndbm database, big endian
-!:mime	application/x-gdbm
-0	lelong	0x13579ace	GNU dbm 1.x or ndbm database, little endian
-!:mime	application/x-gdbm
-0	string	GDBM		GNU dbm 2.x database
-!:mime	application/x-gdbm
-#
-# Berkeley DB
-#
-# Ian Darwin's file /etc/magic files: big/little-endian version.
-#
-# Hash 1.85/1.86 databases store metadata in network byte order.
-# Btree 1.85/1.86 databases store the metadata in host byte order.
-# Hash and Btree 2.X and later databases store the metadata in host byte order.
-
-0	long	0x00061561	Berkeley DB
-!:mime	application/x-dbm
->8	belong	4321
->>4	belong	>2		1.86
->>4	belong	<3		1.85
->>4	belong	>0		(Hash, version %d, native byte-order)
->8	belong	1234
->>4	belong	>2		1.86
->>4	belong	<3		1.85
->>4	belong	>0		(Hash, version %d, little-endian)
-
-0	belong	0x00061561	Berkeley DB
->8	belong	4321
->>4	belong	>2		1.86
->>4	belong	<3		1.85
->>4	belong	>0		(Hash, version %d, big-endian)
->8	belong	1234
->>4	belong	>2		1.86
->>4	belong	<3		1.85
->>4	belong	>0		(Hash, version %d, native byte-order)
-
-0	long	0x00053162	Berkeley DB 1.85/1.86
->4	long	>0		(Btree, version %d, native byte-order)
-0	belong	0x00053162	Berkeley DB 1.85/1.86
->4	belong	>0		(Btree, version %d, big-endian)
-0	lelong	0x00053162	Berkeley DB 1.85/1.86
->4	lelong	>0		(Btree, version %d, little-endian)
-
-12	long	0x00061561	Berkeley DB
->16	long	>0		(Hash, version %d, native byte-order)
-12	belong	0x00061561	Berkeley DB
->16	belong	>0		(Hash, version %d, big-endian)
-12	lelong	0x00061561	Berkeley DB
->16	lelong	>0		(Hash, version %d, little-endian)
-
-12	long	0x00053162	Berkeley DB
->16	long	>0		(Btree, version %d, native byte-order)
-12	belong	0x00053162	Berkeley DB
->16	belong	>0		(Btree, version %d, big-endian)
-12	lelong	0x00053162	Berkeley DB
->16	lelong	>0		(Btree, version %d, little-endian)
-
-12	long	0x00042253	Berkeley DB
->16	long	>0		(Queue, version %d, native byte-order)
-12	belong	0x00042253	Berkeley DB
->16	belong	>0		(Queue, version %d, big-endian)
-12	lelong	0x00042253	Berkeley DB
->16	lelong	>0		(Queue, version %d, little-endian)
-
-# From Max Bowsher.
-12	long	0x00040988	Berkeley DB
->16	long	>0		(Log, version %d, native byte-order)
-12	belong	0x00040988	Berkeley DB 
->16	belong	>0		(Log, version %d, big-endian)
-12	lelong	0x00040988	Berkeley DB
->16	lelong	>0		(Log, version %d, little-endian)
-
-#
-#
-# Round Robin Database Tool by Tobias Oetiker <oetiker@ee.ethz.ch>
-0	string	RRD		RRDTool DB
->4	string	x		version %s
-#----------------------------------------------------------------------
-# ROOT: file(1) magic for ROOT databases
-#
-0       string  root\0  ROOT file
->4      belong  x       Version %d
->33     belong  x       (Compression: %d)
-
-# XXX: Weak magic.
-# Alex Ott <ott@jet.msk.su>
-## Paradox file formats
-#2	  leshort	0x0800	Paradox 
-#>0x39	  byte		3	v. 3.0 
-#>0x39	  byte		4	v. 3.5 
-#>0x39	  byte		9	v. 4.x 
-#>0x39	  byte		10	v. 5.x 
-#>0x39	  byte		11	v. 5.x 
-#>0x39	  byte		12	v. 7.x 
-#>>0x04	  byte		0	indexed .DB data file 
-#>>0x04	  byte		1	primary index .PX file 
-#>>0x04	  byte		2	non-indexed .DB data file 
-#>>0x04	  byte		3	non-incrementing secondary index .Xnn file 
-#>>0x04	  byte		4	secondary index .Ynn file 
-#>>0x04	  byte		5	incrementing secondary index .Xnn file 
-#>>0x04	  byte		6	non-incrementing secondary index .XGn file 
-#>>0x04	  byte		7	secondary index .YGn file 
-#>>>0x04	  byte		8	incrementing secondary index .XGn file 
-
-## XBase database files
-#0      byte       0x02	
-#>8     leshort	  >0
-#>>12   leshort    0	FoxBase 
-#!:mime	application/x-dbf
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x03	
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	FoxBase+, FoxPro, dBaseIII+, dBaseIV, no memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x04	
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	dBASE IV no memo file 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x05	
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	dBASE V no memo file 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x30
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	Visual FoxPro 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x43
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	FlagShip with memo var size 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x7b
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	dBASEIV with memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x83	
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	FoxBase+, dBaseIII+ with memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x8b
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	dBaseIV with memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0x8e	
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	dBaseIV with SQL Table 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0xb3
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	FlagShip with .dbt memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0      byte       0xf5
-#!:mime	application/x-dbf
-#>8     leshort	  >0
-#>>12   leshort    0	FoxPro with memo 
-#>>>0x04	lelong		0		(no records)
-#>>>0x04	lelong		>0		(%ld records)
-#
-#0	leshort		0x0006		DBase 3 index file
-
-# MS Access database
-4	string	Standard\ Jet\ DB	Microsoft Access Database
-!:mime	application/x-msaccess
-
-# TDB database from Samba et al - Martin Pool <mbp@samba.org>
-0	string	TDB\ file		TDB database
->32	lelong	0x2601196D		version 6, little-endian
->>36	lelong	x			hash size %d bytes
-
-# SE Linux policy database
-0       lelong  0xf97cff8c      SE Linux policy
->16     lelong  x               v%d
->20     lelong  1      MLS
->24     lelong  x       %d symbols
->28     lelong  x       %d ocons
-
-# ICE authority file data (Wolfram Kleff)
-2	string		ICE		ICE authority data
-
-# X11 Xauthority file (Wolfram Kleff)
-10	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-11	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-12	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-13	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-14	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-15	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-16	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-17	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-18	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
-
-# From: Maxime Henrion <mux@FreeBSD.org>
-# PostgreSQL's custom dump format, Maxime Henrion <mux@FreeBSD.org>
-0	string		PGDMP		PostgreSQL custom database dump
->5	byte		x		- v%d
->6	byte		x		\b.%d
->5	beshort		<0x101		\b-0
->5	beshort		>0x100
->>7	byte		x		\b-%d
-
-# Type: Advanced Data Format (ADF) database
-# URL:  http://www.grc.nasa.gov/WWW/cgns/adf/
-# From: Nicolas Chauvat <nicolas.chauvat@logilab.fr>
-0	string	@(#)ADF\ Database	CGNS Advanced Data Format
-
-# Tokyo Cabinet magic data
-# http://tokyocabinet.sourceforge.net/index.html
-0	string		ToKyO\ CaBiNeT\n	Tokyo Cabinet
->14	string		x			\b (%s)
->32	byte		0			\b, Hash
-!:mime	application/x-tokyocabinet-hash
->32	byte		1			\b, B+ tree
-!:mime	application/x-tokyocabinet-btree
->32	byte		2			\b, Fixed-length
-!:mime	application/x-tokyocabinet-fixed
->32	byte		3			\b, Table
-!:mime	application/x-tokyocabinet-table
->33	byte		&1			\b, [open]
->33	byte		&2			\b, [fatal]
->34	byte		x			\b, apow=%d
->35	byte		x			\b, fpow=%d
->36	byte		&0x01			\b, [large]
->36	byte		&0x02			\b, [deflate]
->36	byte		&0x04			\b, [bzip]
->36	byte		&0x08			\b, [tcbs]
->36	byte		&0x10			\b, [excodec]
->40	lequad		x			\b, bnum=%lld
->48	lequad		x			\b, rnum=%lld
->56	lequad		x			\b, fsiz=%lld
-
-# Type:	QDBM Quick Database Manager
-# From:	Benoit Sibaud <bsibaud@april.org>
-0	string		\\[depot\\]\n\f		Quick Database Manager, little endian
-0	string		\\[DEPOT\\]\n\f		Quick Database Manager, big endian
-
-# Type:	TokyoCabinet database
-# URL:	http://tokyocabinet.sourceforge.net/
-# From:	Benoit Sibaud <bsibaud@april.org>
-0	string		ToKyO\ CaBiNeT\n	TokyoCabinet database
->14	string		x			(version %s)
-
-#------------------------------------------------------------------------------
-# diamond:  file(1) magic for Diamond system
-#
-# ... diamond is a multi-media mail and electronic conferencing system....
-#
-# XXX - I think it was either renamed Slate, or replaced by Slate....
-#
-#	The full deal is too long...
-#0	string	<list>\n<protocol\ bbn-multimedia-format>	Diamond Multimedia Document
-0	string	=<list>\n<protocol\ bbn-m	Diamond Multimedia Document
-#------------------------------------------------------------------------------
-# diff:  file(1) magic for diff(1) output
-#
-0	search/1	diff\ 		diff output text
-!:mime	text/x-diff
-0	search/1	***\ 		diff output text
-!:mime	text/x-diff
-0	search/1	Only\ in\ 	diff output text
-!:mime	text/x-diff
-0	search/1	Common\ subdirectories:\ 	diff output text
-!:mime	text/x-diff
-
-0	search/1	Index:		RCS/CVS diff output text
-!:mime	text/x-diff
-#  Digital UNIX - Info
-#
-0	string	=!<arch>\n________64E	Alpha archive
->22	string	X			-- out of date
-#
-# Alpha COFF Based Executables
-# The stripped stuff really needs to be an 8 byte (64 bit) compare,
-# but this works
-0	leshort		0x183		COFF format alpha
->22	leshort&020000	&010000		sharable library,
->22	leshort&020000	^010000		dynamically linked,
->24	leshort		0410		pure
->24	leshort		0413		demand paged
->8	lelong		>0		executable or object module, not stripped
->8	lelong		0
->>12	lelong		0		executable or object module, stripped
->>12	lelong		>0		executable or object module, not stripped
->27     byte            >0              - version %d.
->26     byte            >0              %d-
->28     leshort         >0              %d
-#
-# The next is incomplete, we could tell more about this format,
-# but its not worth it.
-0	leshort		0x188	Alpha compressed COFF
-0	leshort		0x18f	Alpha u-code object
-#
-#
-# Some other interesting Digital formats,
-0	string	\377\377\177		ddis/ddif
-0	string	\377\377\174		ddis/dots archive
-0	string	\377\377\176		ddis/dtif table data
-0	string	\033c\033		LN03 output
-0	long	04553207		X image
-#
-0	string	=!<PDF>!\n		profiling data file
-#
-# Locale data tables (MIPS and Alpha).
-#
-0	short		0x0501		locale data table
->6	short		0x24		for MIPS
->6	short		0x40		for Alpha
-# ATSC A/53 aka AC-3 aka Dolby Digital <ashitaka@gmx.at>
-# from http://www.atsc.org/standards/a_52a.pdf
-# corrections, additions, etc. are always welcome!
-#
-# syncword
-0       beshort         0x0b77  ATSC A/52 aka AC-3 aka Dolby Digital stream,
-# fscod
->4      byte&0xc0       0x00    48 kHz,
->4      byte&0xc0       0x40    44.1 kHz,
->4      byte&0xc0       0x80    32 kHz,
-# is this one used for 96 kHz?
->4      byte&0xc0       0xc0    reserved frequency,
-#
->5	byte&7 = 0		\b, complete main (CM)
->5	byte&7 = 1		\b, music and effects (ME)
->5	byte&7 = 2		\b, visually impaired (VI)
->5	byte&7 = 3		\b, hearing impaired (HI)
->5	byte&7 = 4		\b, dialogue (D)
->5	byte&7 = 5		\b, commentary (C)
->5	byte&7 = 6		\b, emergency (E)
-# acmod
->6      byte&0xe0       0x00    1+1 front,
->6      byte&0xe0       0x20    1 front/0 rear,
->6      byte&0xe0       0x40    2 front/0 rear,
->6      byte&0xe0       0x60    3 front/0 rear,
->6      byte&0xe0       0x80    2 front/1 rear,
->6      byte&0xe0       0xa0    3 front/1 rear,
->6      byte&0xe0       0xc0    2 front/2 rear,
->6      byte&0xe0       0xe0    3 front/2 rear,
-# lfeon (these may be incorrect)
->7      byte&0x40       0x00    LFE off,
->7      byte&0x40       0x40    LFE on,
-#
->4	byte&0x3e = 0x00	\b, 32 kbit/s
->4	byte&0x3e = 0x02        \b, 40 kbit/s
->4	byte&0x3e = 0x04        \b, 48 kbit/s
->4	byte&0x3e = 0x06        \b, 56 kbit/s
->4	byte&0x3e = 0x08        \b, 64 kbit/s
->4	byte&0x3e = 0x0a        \b, 80 kbit/s
->4	byte&0x3e = 0x0c        \b, 96 kbit/s
->4	byte&0x3e = 0x0e        \b, 112 kbit/s
->4	byte&0x3e = 0x10        \b, 128 kbit/s
->4	byte&0x3e = 0x12        \b, 160 kbit/s
->4	byte&0x3e = 0x14        \b, 192 kbit/s
->4	byte&0x3e = 0x16        \b, 224 kbit/s
->4	byte&0x3e = 0x18        \b, 256 kbit/s
->4	byte&0x3e = 0x1a        \b, 320 kbit/s
->4	byte&0x3e = 0x1c        \b, 384 kbit/s
->4	byte&0x3e = 0x1e        \b, 448 kbit/s
->4	byte&0x3e = 0x20        \b, 512 kbit/s
->4	byte&0x3e = 0x22        \b, 576 kbit/s
->4	byte&0x3e = 0x24        \b, 640 kbit/s
-# dsurmod (these may be incorrect)
->6      beshort&0x0180  0x0000  Dolby Surround not indicated
->6      beshort&0x0180  0x0080  not Dolby Surround encoded
->6      beshort&0x0180  0x0100  Dolby Surround encoded
->6      beshort&0x0180  0x0180  reserved Dolby Surround mode
-
-#------------------------------------------------------------------------------
-# dump:  file(1) magic for dump file format--for new and old dump filesystems
-#
-# We specify both byte orders in order to recognize byte-swapped dumps.
-#
-24	belong	60012		new-fs dump file (big endian),
->4	bedate	x		Previous dump %s,
->8	bedate	x		This dump %s,
->12	belong	>0		Volume %ld,
->692	belong	0		Level zero, type:
->692	belong	>0		Level %d, type:
->0	belong	1		tape header,
->0	belong	2		beginning of file record,
->0	belong	3		map of inodes on tape,
->0	belong	4		continuation of file record,
->0	belong	5		end of volume,
->0	belong	6		map of inodes deleted,
->0	belong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	belong	>0		Flags %x
-
-24	belong	60011		old-fs dump file (big endian),
-#>4	bedate	x		Previous dump %s,
-#>8	bedate	x		This dump %s,
->12	belong	>0		Volume %ld,
->692	belong	0		Level zero, type:
->692	belong	>0		Level %d, type:
->0	belong	1		tape header,
->0	belong	2		beginning of file record,
->0	belong	3		map of inodes on tape,
->0	belong	4		continuation of file record,
->0	belong	5		end of volume,
->0	belong	6		map of inodes deleted,
->0	belong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	belong	>0		Flags %x
-
-24	lelong	60012		new-fs dump file (little endian),
->4	ledate	x		This dump %s,
->8	ledate	x		Previous dump %s,
->12	lelong	>0		Volume %ld,
->692	lelong	0		Level zero, type:
->692	lelong	>0		Level %d, type:
->0	lelong	1		tape header,
->0	lelong	2		beginning of file record,
->0	lelong	3		map of inodes on tape,
->0	lelong	4		continuation of file record,
->0	lelong	5		end of volume,
->0	lelong	6		map of inodes deleted,
->0	lelong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	lelong	>0		Flags %x
-
-24	lelong	60011		old-fs dump file (little endian),
-#>4	ledate	x		Previous dump %s,
-#>8	ledate	x		This dump %s,
->12	lelong	>0		Volume %ld,
->692	lelong	0		Level zero, type:
->692	lelong	>0		Level %d, type:
->0	lelong	1		tape header,
->0	lelong	2		beginning of file record,
->0	lelong	3		map of inodes on tape,
->0	lelong	4		continuation of file record,
->0	lelong	5		end of volume,
->0	lelong	6		map of inodes deleted,
->0	lelong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	lelong	>0		Flags %x
-
-18	leshort	60011		old-fs dump file (16-bit, assuming PDP-11 endianness),
->2	medate	x		Previous dump %s,
->6	medate	x		This dump %s,
->10	leshort	>0		Volume %ld,
->0	leshort	1		tape header.
->0	leshort	2		beginning of file record.
->0	leshort	3		map of inodes on tape.
->0	leshort	4		continuation of file record.
->0	leshort	5		end of volume.
->0	leshort	6		map of inodes deleted.
->0	leshort	7		end of medium (for floppy).
-
-24	belong	0x19540119	new-fs dump file (ufs2, big endian),
->896	beqdate	x		Previous dump %s,
->904	beqdate	x		This dump %s,
->12	belong	>0		Volume %ld,
->692	belong	0		Level zero, type:
->692	belong	>0		Level %d, type:
->0	belong	1		tape header,
->0	belong	2		beginning of file record,
->0	belong	3		map of inodes on tape,
->0	belong	4		continuation of file record,
->0	belong	5		end of volume,
->0	belong	6		map of inodes deleted,
->0	belong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	belong	>0		Flags %x
-
-24	lelong	0x19540119	new-fs dump file (ufs2, little endian),
->896	leqdate	x		This dump %s,
->904	leqdate	x		Previous dump %s,
->12	lelong	>0		Volume %ld,
->692	lelong	0		Level zero, type:
->692	lelong	>0		Level %d, type:
->0	lelong	1		tape header,
->0	lelong	2		beginning of file record,
->0	lelong	3		map of inodes on tape,
->0	lelong	4		continuation of file record,
->0	lelong	5		end of volume,
->0	lelong	6		map of inodes deleted,
->0	lelong	7		end of medium (for floppy),
->676	string	>\0		Label %s,
->696	string	>\0		Filesystem %s,
->760	string	>\0		Device %s,
->824	string	>\0		Host %s,
->888	lelong	>0		Flags %x
-
-#------------------------------------------------------------------------------
-# Dyadic: file(1) magic for Dyalog APL.
-#
-0 	byte	0xaa
->1	byte	<4		Dyalog APL
->>1	byte	0x00		incomplete workspace
->>1	byte	0x01		component file
->>1	byte	0x02		external variable
->>1	byte	0x03		workspace
->>2	byte	x		version %d
->>3	byte	x		.%d
-
-#------------------------------------------------------------------------------
-# T602 editor documents 
-# by David Necas <yeti@physics.muni.cz>
-0	string	@CT\ 	T602 document data,
->4	string	0	Kamenicky
->4	string	1	CP 852
->4	string	2	KOI8-CS
->4	string	>2	unknown encoding
-
-# Vi IMproved Encrypted file 
-# by David Necas <yeti@physics.muni.cz>
-0	string	VimCrypt~	Vim encrypted file data
-# Vi IMproved Swap file
-# by Sven Wegener <swegener@gentoo.org>
-0	string	b0VIM\ 		Vim swap file
->&0	string	>\0		\b, version %s
-
-#------------------------------------------------------------------------------
-# efi:  file(1) magic for Universal EFI binaries
-
-0	lelong	0x0ef1fab9
->4	lelong	1		Universal EFI binary with 1 architecture
->>&0	lelong	7		\b, i386
->>&0	lelong	0x01000007	\b, x86_64
->4	lelong	2		Universal EFI binary with 2 architectures
->>&0	lelong	7		\b, i386
->>&0	lelong	0x01000007	\b, x86_64
->>&20	lelong	7		\b, i386
->>&20	lelong	0x01000007	\b, x86_64
->4	lelong	>2		Universal EFI binary with %ld architectures
-
-#------------------------------------------------------------------------------
-# elf:  file(1) magic for ELF executables
-#
-# We have to check the byte order flag to see what byte order all the
-# other stuff in the header is in.
-#
-# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
-#
-# Created by: unknown
-# Modified by (1): Daniel Quinlan <quinlan@yggdrasil.com>
-# Modified by (2): Peter Tobias <tobias@server.et-inf.fho-emden.de> (core support)
-# Modified by (3): Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de> (fix of core support)
-# Modified by (4): <gerardo.cacciari@gmail.com> (VMS Itanium)
-# Modified by (5): Matthias Urlichs <smurf@debian.org> (Listing of many architectures)
-0	string		\177ELF		ELF
->4	byte		0		invalid class
->4	byte		1		32-bit
->4	byte		2		64-bit
->5	byte		0		invalid byte order
->5	byte		1		LSB
->>16	leshort		0		no file type,
-!:strength *2
-!:mime	application/octet-stream
->>16	leshort		1		relocatable,
-!:mime	application/x-object
->>16	leshort		2		executable,
-!:mime	application/x-executable
->>16	leshort		3		shared object,
-!:mime	application/x-sharedlib
->>16	leshort		4		core file
-!:mime	application/x-coredump
-# Core file detection is not reliable.
-#>>>(0x38+0xcc) string	>\0		of '%s'
-#>>>(0x38+0x10) lelong	>0		(signal %d),
->>16	leshort		&0xff00		processor-specific,
->>18	leshort		0		no machine,
->>18	leshort		1		AT&T WE32100 - invalid byte order,
->>18	leshort		2		SPARC - invalid byte order,
->>18	leshort		3		Intel 80386,
->>18	leshort		4		Motorola
->>>36	lelong		&0x01000000	68000 - invalid byte order,
->>>36	lelong		&0x00810000	CPU32 - invalid byte order,
->>>36	lelong		0		68020 - invalid byte order,
->>18	leshort		5		Motorola 88000 - invalid byte order,
->>18	leshort		6		Intel 80486,
->>18	leshort		7		Intel 80860,
-# The official e_machine number for MIPS is now #8, regardless of endianness.
-# The second number (#10) will be deprecated later. For now, we still
-# say something if #10 is encountered, but only gory details for #8.
->>18	leshort		8		MIPS,
->>>36	lelong		&0x20		N32
->>18	leshort		10		MIPS,
->>>36	lelong		&0x20		N32
->>18	leshort		8
-# only for 32-bit
->>>4	byte		1
->>>>36  lelong&0xf0000000	0x00000000	MIPS-I
->>>>36  lelong&0xf0000000	0x10000000	MIPS-II
->>>>36  lelong&0xf0000000	0x20000000	MIPS-III
->>>>36  lelong&0xf0000000	0x30000000	MIPS-IV
->>>>36  lelong&0xf0000000	0x40000000	MIPS-V
->>>>36  lelong&0xf0000000	0x50000000	MIPS32
->>>>36  lelong&0xf0000000	0x60000000	MIPS64
->>>>36  lelong&0xf0000000	0x70000000	MIPS32 rel2
->>>>36  lelong&0xf0000000	0x80000000	MIPS64 rel2
-# only for 64-bit
->>>4	byte		2
->>>>48  lelong&0xf0000000	0x00000000	MIPS-I
->>>>48  lelong&0xf0000000	0x10000000	MIPS-II
->>>>48  lelong&0xf0000000	0x20000000	MIPS-III
->>>>48  lelong&0xf0000000	0x30000000	MIPS-IV
->>>>48  lelong&0xf0000000	0x40000000	MIPS-V
->>>>48  lelong&0xf0000000	0x50000000	MIPS32
->>>>48  lelong&0xf0000000	0x60000000	MIPS64
->>>>48  lelong&0xf0000000	0x70000000	MIPS32 rel2
->>>>48  lelong&0xf0000000	0x80000000	MIPS64 rel2
->>18	leshort		9		Amdahl - invalid byte order,
->>18	leshort		10		MIPS (deprecated),
->>18	leshort		11		RS6000 - invalid byte order,
->>18	leshort		15		PA-RISC - invalid byte order,
->>>50	leshort		0x0214		2.0
->>>48	leshort		&0x0008		(LP64),
->>18	leshort		16		nCUBE,
->>18	leshort		17		Fujitsu VPP500,
->>18	leshort		18		SPARC32PLUS - invalid byte order,
->>18	leshort		20		PowerPC,
->>18	leshort		22		IBM S/390,
->>18	leshort		36		NEC V800,
->>18	leshort		37		Fujitsu FR20,
->>18	leshort		38		TRW RH-32,
->>18	leshort		39		Motorola RCE,
->>18	leshort		40		ARM,
->>18	leshort		41		Alpha,
->>18	leshort		0xa390		IBM S/390 (obsolete),
->>18	leshort		42		Renesas SH,
->>18	leshort		43		SPARC V9 - invalid byte order,
->>18	leshort		44		Siemens Tricore Embedded Processor,
->>18	leshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
->>18	leshort		46		Renesas H8/300,
->>18	leshort		47		Renesas H8/300H,
->>18	leshort		48		Renesas H8S,
->>18	leshort		49		Renesas H8/500,
->>18	leshort		50		IA-64,
->>18	leshort		51		Stanford MIPS-X,
->>18	leshort		52		Motorola Coldfire,
->>18	leshort		53		Motorola M68HC12,
->>18	leshort		54		Fujitsu MMA,
->>18	leshort		55		Siemens PCP,
->>18	leshort		56		Sony nCPU,
->>18	leshort		57		Denso NDR1,
->>18	leshort		58		Start*Core,
->>18	leshort		59		Toyota ME16,
->>18	leshort		60		ST100,
->>18	leshort		61		Tinyj emb.,
->>18	leshort		62		x86-64,
->>18	leshort		63		Sony DSP,
->>18	leshort		66		FX66,
->>18	leshort		67		ST9+ 8/16 bit,
->>18	leshort		68		ST7 8 bit,
->>18	leshort		69		MC68HC16,
->>18	leshort		70		MC68HC11,
->>18	leshort		71		MC68HC08,
->>18	leshort		72		MC68HC05,
->>18	leshort		73		SGI SVx,
->>18	leshort		74		ST19 8 bit,
->>18	leshort		75		Digital VAX,
->>18	leshort		76		Axis cris,
->>18	leshort		77		Infineon 32-bit embedded,
->>18	leshort		78		Element 14 64-bit DSP,
->>18	leshort		79		LSI Logic 16-bit DSP,
->>18	leshort		80		MMIX,
->>18	leshort		81		Harvard machine-independent,
->>18	leshort		82		SiTera Prism,
->>18	leshort		83		Atmel AVR 8-bit,
->>18	leshort		84		Fujitsu FR30,
->>18	leshort		85		Mitsubishi D10V,
->>18	leshort		86		Mitsubishi D30V,
->>18	leshort		87		NEC v850,
->>18	leshort		88		Renesas M32R,
->>18	leshort		89		Matsushita MN10300,
->>18	leshort		90		Matsushita MN10200,
->>18	leshort		91		picoJava,
->>18	leshort		92		OpenRISC,
->>18	leshort		93		ARC Cores Tangent-A5,
->>18	leshort		94		Tensilica Xtensa,
->>18	leshort		97		NatSemi 32k,
->>18	leshort		106		Analog Devices Blackfin,
->>18	leshort		113		Altera Nios II,
->>18	leshort		0xae		META,
->>18	leshort		0x3426		OpenRISC (obsolete),
->>18	leshort		0x8472		OpenRISC (obsolete),
->>18	leshort		0x9026		Alpha (unofficial),
->>20	lelong		0		invalid version
->>20	lelong		1		version 1
->>36	lelong		1		MathCoPro/FPU/MAU Required
->5	byte		2		MSB
->>16	beshort		0		no file type,
-!:mime	application/octet-stream
->>16	beshort		1		relocatable,
-!:mime	application/x-object
->>16	beshort		2		executable,
-!:mime	application/x-executable
->>16	beshort		3		shared object,
-!:mime	application/x-sharedlib
->>16	beshort		4		core file,
-!:mime	application/x-coredump
-#>>>(0x38+0xcc) string	>\0		of '%s'
-#>>>(0x38+0x10) belong	>0		(signal %d),
->>16	beshort		&0xff00		processor-specific,
->>18	beshort		0		no machine,
->>18	beshort		1		AT&T WE32100,
->>18	beshort		2		SPARC,
->>18	beshort		3		Intel 80386 - invalid byte order,
->>18	beshort		4		Motorola
->>>36	belong		&0x01000000	68000,
->>>36	belong		&0x00810000	CPU32,
->>>36	belong		0		68020,
->>18	beshort		5		Motorola 88000,
->>18	beshort		6		Intel 80486 - invalid byte order,
->>18	beshort		7		Intel 80860,
-# only for MIPS - see comment in little-endian section above.
->>18	beshort		8		MIPS,
->>>36	belong		&0x20		N32
->>18	beshort		10		MIPS,
->>>36	belong		&0x20		N32
->>18	beshort		8
-# only for 32-bit
->>>4	byte		1
->>>>36  belong&0xf0000000	0x00000000	MIPS-I
->>>>36  belong&0xf0000000	0x10000000	MIPS-II
->>>>36  belong&0xf0000000	0x20000000	MIPS-III
->>>>36  belong&0xf0000000	0x30000000	MIPS-IV
->>>>36  belong&0xf0000000	0x40000000	MIPS-V
->>>>36  belong&0xf0000000	0x50000000	MIPS32
->>>>36  belong&0xf0000000	0x60000000	MIPS64
->>>>36  belong&0xf0000000	0x70000000	MIPS32 rel2
->>>>36  belong&0xf0000000	0x80000000	MIPS64 rel2
-# only for 64-bit
->>>4	byte		2
->>>>48	belong&0xf0000000	0x00000000	MIPS-I
->>>>48	belong&0xf0000000	0x10000000	MIPS-II
->>>>48	belong&0xf0000000	0x20000000	MIPS-III
->>>>48	belong&0xf0000000	0x30000000	MIPS-IV
->>>>48	belong&0xf0000000	0x40000000	MIPS-V
->>>>48	belong&0xf0000000	0x50000000	MIPS32
->>>>48	belong&0xf0000000	0x60000000	MIPS64
->>>>48	belong&0xf0000000	0x70000000	MIPS32 rel2
->>>>48	belong&0xf0000000	0x80000000	MIPS64 rel2
->>18	beshort		9		Amdahl,
->>18	beshort		10		MIPS (deprecated),
->>18	beshort		11		RS6000,
->>18	beshort		15		PA-RISC
->>>50	beshort		0x0214		2.0
->>>48	beshort		&0x0008		(LP64)
->>18	beshort		16		nCUBE,
->>18	beshort		17		Fujitsu VPP500,
->>18	beshort		18		SPARC32PLUS,
->>>36	belong&0xffff00	0x000100	V8+ Required,
->>>36	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
->>>36	belong&0xffff00	0x000400	HaL R1 Extensions Required,
->>>36	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
->>18	beshort		20		PowerPC or cisco 4500,
->>18	beshort		21		64-bit PowerPC or cisco 7500,
->>18	beshort		22		IBM S/390,
->>18	beshort		23		Cell SPU,
->>18	beshort		24		cisco SVIP,
->>18	beshort		25		cisco 7200,
->>18	beshort		36		NEC V800 or cisco 12000,
->>18	beshort		37		Fujitsu FR20,
->>18	beshort		38		TRW RH-32,
->>18	beshort		39		Motorola RCE,
->>18	beshort		40		ARM,
->>18	beshort		41		Alpha,
->>18	beshort		42		Renesas SH,
->>18	beshort		43		SPARC V9,
->>>48	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
->>>48	belong&0xffff00	0x000400	HaL R1 Extensions Required,
->>>48	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
->>>48	belong&0x3	0		total store ordering,
->>>48	belong&0x3	1		partial store ordering,
->>>48	belong&0x3	2		relaxed memory ordering,
->>18	beshort		44		Siemens Tricore Embedded Processor,
->>18	beshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
->>18	beshort		46		Renesas H8/300,
->>18	beshort		47		Renesas H8/300H,
->>18	beshort		48		Renesas H8S,
->>18	beshort		49		Renesas H8/500,
->>18	beshort		50		IA-64,
->>18	beshort		51		Stanford MIPS-X,
->>18	beshort		52		Motorola Coldfire,
->>18	beshort		53		Motorola M68HC12,
->>18	beshort		73		Cray NV1,
->>18	beshort		75		Digital VAX,
->>18	beshort		88		Renesas M32R,
->>18	leshort		92		OpenRISC,
->>18	leshort		0x3426		OpenRISC (obsolete),
->>18	leshort		0x8472		OpenRISC (obsolete),
->>18	beshort		94		Tensilica Xtensa,
->>18	beshort		97		NatSemi 32k,
->>18	beshort		0x18ad		AVR32 (unofficial),
->>18	beshort		0x9026		Alpha (unofficial),
->>18	beshort		0xa390		IBM S/390 (obsolete),
->>20	belong		0		invalid version
->>20	belong		1		version 1
->>36	belong		1		MathCoPro/FPU/MAU Required
-# Up to now only 0, 1 and 2 are defined; I've seen a file with 0x83, it seemed
-# like proper ELF, but extracting the string had bad results.
->4      byte            <0x80
->>8	string		>\0		(%s)
->8	string		\0
->>7	byte		0		(SYSV)
->>7	byte		1		(HP-UX)
->>7	byte		2		(NetBSD)
->>7	byte		3		(GNU/Linux)
->>7	byte		4		(GNU/Hurd)
->>7	byte		5		(86Open)
->>7	byte		6		(Solaris)
->>7	byte		7		(Monterey)
->>7	byte		8		(IRIX)
->>7	byte		9		(FreeBSD)
->>7	byte		10		(Tru64)
->>7	byte		11		(Novell Modesto)
->>7	byte		12		(OpenBSD)
->8      string          \2
->>7     byte            13              (OpenVMS)
->>7	byte		97		(ARM)
->>7	byte		255		(embedded)
-
-#------------------------------------------------------------------------------
-# encore:  file(1) magic for Encore machines
-#
-# XXX - needs to have the byte order specified (NS32K was little-endian,
-# dunno whether they run the 88K in little-endian mode or not).
-#
-0	short		0x154		Encore
->20	short		0x107		executable
->20	short		0x108		pure executable
->20	short		0x10b		demand-paged executable
->20	short		0x10f		unsupported executable
->12	long		>0		not stripped
->22	short		>0		- version %ld
->22	short		0		-
-#>4	date		x		stamp %s
-0	short		0x155		Encore unsupported executable
->12	long		>0		not stripped
->22	short		>0		- version %ld
->22	short		0		-
-#>4	date		x		stamp %s
-#------------------------------------------------------------------------------
-# EPOC : file(1) magic for EPOC documents [Psion Series 5/Osaris/Geofox 1]
-# Stefan Praszalowicz (hpicollo@worldnet.fr)
-# Useful information for improving this file can be found at:
-# http://software.frodo.looijaard.name/psiconv/formats/Index.html
-0	lelong		0x10000037
->4	lelong		0x1000006D
->>8	lelong		0x1000007F	Psion Word
->>8	lelong		0x10000088	Psion Sheet
->>8	lelong		0x1000007D	Psion Sketch
->>8	lelong		0x10000085	Psion TextEd
-
-#------------------------------------------------------------------------------
-# erlang:  file(1) magic for Erlang JAM and BEAM files
-# URL:  http://www.erlang.org/faq/x779.html#AEN812
-
-# OTP R3-R4
-0	string	\0177BEAM!	Old Erlang BEAM file
->6	short	>0		- version %d
-
-# OTP R5 and onwards
-0	string	FOR1
->8	string	BEAM		Erlang BEAM file
-
-# 4.2 version may have a copyright notice!
-4	string	Tue\ Jan\ 22\ 14:32:44\ MET\ 1991	Erlang JAM file - version 4.2
-79	string	Tue\ Jan\ 22\ 14:32:44\ MET\ 1991	Erlang JAM file - version 4.2
-
-4	string	1.0\ Fri\ Feb\ 3\ 09:55:56\ MET\ 1995	Erlang JAM file - version 4.3
-
-#------------------------------------------------------------------------------
-# ESRI Shapefile format (.shp .shx .dbf=DBaseIII)
-# Based on info from
-# <URL:http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf>
-0	belong	9994	ESRI Shapefile
->4	belong	=0
->8	belong	=0
->12	belong	=0
->16	belong	=0
->20	belong	=0
->28	lelong	x	version %d
->24	belong	x	length %d
->32	lelong	=0	type Null Shape
->32	lelong	=1	type Point
->32	lelong	=3	type PolyLine
->32	lelong	=5	type Polygon
->32	lelong	=8	type MultiPoint
->32	lelong	=11	type PointZ
->32	lelong	=13	type PolyLineZ
->32	lelong	=15	type PolygonZ
->32	lelong	=18	type MultiPointZ
->32	lelong	=21	type PointM
->32	lelong	=23	type PolyLineM
->32	lelong	=25	type PolygonM
->32	lelong	=28	type MultiPointM
->32	lelong	=31	type MultiPatch
-
-#------------------------------------------------------------------------------
-# fcs: file(1) magic for FCS (Flow Cytometry Standard) data files
-# From Roger Leigh <roger@whinlatter.uklinux.net>
-0       string          FCS1.0          Flow Cytometry Standard (FCS) data, version 1.0
-0       string          FCS2.0          Flow Cytometry Standard (FCS) data, version 2.0
-0       string          FCS3.0          Flow Cytometry Standard (FCS) data, version 3.0
-
-
-#------------------------------------------------------------------------------
-# filesystems:  file(1) magic for different filesystems
-#
-0	string	\366\366\366\366	PC formatted floppy with no filesystem
-# Sun disk labels
-# From /usr/include/sun/dklabel.h:
-0774	beshort		0xdabe		
-# modified by Joerg Jenderek, because original test
-# succeeds for Cabinet archive dao360.dl_ with negative blocks
->0770	long		>0		Sun disk label
->>0	string		x		'%s
->>>31	string		>\0		\b%s
->>>>63	string		>\0		\b%s
->>>>>95	string		>\0		\b%s
->>0	string		x		\b'
->>0734	short		>0		%d rpm,
->>0736	short		>0		%d phys cys,
->>0740	short		>0		%d alts/cyl,
->>0746	short		>0		%d interleave,
->>0750	short		>0		%d data cyls,
->>0752	short		>0		%d alt cyls,
->>0754	short		>0		%d heads/partition,
->>0756	short		>0		%d sectors/track,
->>0764	long		>0		start cyl %ld,
->>0770	long		x		%ld blocks
-# Is there a boot block written 1 sector in?
->512    belong&077777777	0600407	\b, boot block present
-# Joerg Jenderek: Smart Boot Manager backup file is 41 byte header + first sectors of disc
-# (http://btmgr.sourceforge.net/docs/user-guide-3.html)
-0		string	SBMBAKUP_	Smart Boot Manager backup file
->9		string	x		\b, version %-5.5s
->>14		string	=_		
->>>15		string	x		%-.1s
->>>>16		string	=_		\b.
->>>>>17		string	x		\b%-.1s
->>>>>>18	string	=_		\b.
->>>>>>>19	string	x		\b%-.1s
->>>22		ubyte	0		
->>>>21		ubyte	x		\b, from drive 0x%x
->>>22		ubyte	>0		
->>>>21		string	x		\b, from drive %s
-
-# Joerg Jenderek
-# DOS Emulator image is 128 byte, null right padded header + harddisc image
-0	string	DOSEMU\0			
->0x27E	leshort	0xAA55			
-#offset is 128
->>19	ubyte	128			
->>>(19.b-1)	ubyte	0x0	DOS Emulator image
->>>>7	ulelong	>0		\b, %u heads
->>>>11	ulelong	>0		\b, %d sectors/track
->>>>15	ulelong	>0		\b, %d cylinders
-
-# updated by Joerg Jenderek at Sep 2007
-# only for sector sizes with 512 or more Bytes
-0x1FE	leshort	0xAA55			x86 boot sector
-# to do also for sectors < than 512 Bytes and some other files, GRR
-#30	search/481	\x55\xAA	x86 boot sector
-# not for BeOS floppy 1440k, MBRs
-#(11.s-2) uleshort	0xAA55		x86 boot sector
->2	string	OSBS			\b, OS/BS MBR
-# J\xf6rg Jenderek <joerg dot jenderek at web dot de>
->0x8C	string	Invalid\ partition\ table	\b, MS-DOS MBR
-# dr-dos with some upper-, lowercase variants
->0x9D	string	Invalid\ partition\ table$	
->>181	string	No\ Operating\ System$		
->>>201	string	Operating\ System\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
->0x9D	string	Invalid\ partition\ table$	
->>181	string	No\ operating\ system$		
->>>201	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, Version 7.01 to 7.03
->342	string	Invalid\ partition\ table$	
->>366	string	No\ operating\ system$		
->>>386	string	Operating\ system\ load\ error$	\b, DR-DOS MBR, version 7.01 to 7.03
->295	string	NEWLDR\0				
->>302	string	Bad\ PT\ $				
->>>310	string	No\ OS\ $				
->>>>317	string	OS\ load\ err$				
->>>>>329	string	Moved\ or\ missing\ IBMBIO.LDR\n\r	
->>>>>>358	string	Press\ any\ key\ to\ continue.\n\r$	
->>>>>>>387	string	Copyright\ (c)\ 1984,1998	
->>>>>>>>411	string	Caldera\ Inc.\0		\b, DR-DOS MBR (IBMBIO.LDR)
->0x10F	string	Ung\201ltige\ Partitionstabelle	\b, MS-DOS MBR, german version 4.10.1998, 4.10.2222
->>0x1B8	ubelong	>0				\b, Serial 0x%-.4x
->0x8B	string	Ung\201ltige\ Partitionstabelle	\b, MS-DOS MBR, german version 5.00 to 4.00.950
->271	string	Invalid\ partition\ table\0		
->>295	string	Error\ loading\ operating\ system\0	
->>>326	string	Missing\ operating\ system\0		\b, mbr
-#
->139	string	Invalid\ partition\ table\0		
->>163	string	Error\ loading\ operating\ system\0	
->>>194	string	Missing\ operating\ system\0		\b, Microsoft Windows XP mbr
-# http://www.heise.de/ct/05/09/006/ page 184
-#HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\DosDevices\?:=Serial4Bytes+8Bytes
->>>>0x1B8	ulelong	>0				\b,Serial 0x%-.4x
->300	string	Invalid\ partition\ table\0	
->>324	string	Error\ loading\ operating\ system\0
->>>355	string	Missing\ operating\ system\0		\b, Microsoft Windows XP MBR
-#??>>>389	string	Invalid\ system\ disk		
->>>>0x1B8	ulelong	>0				\b, Serial 0x%-.4x
->300	string	Ung\201ltige\ Partitionstabelle
-#split string to avoid error: String too long
->>328	string	Fehler\ beim\ Laden\ 	
->>>346	string	des\ Betriebssystems	
->>>>366	string	Betriebssystem\ nicht\ vorhanden	\b, Microsoft Windows XP MBR (german)
->>>>>0x1B8	ulelong	>0				\b, Serial 0x%-.4x
-#>0x145	string	Default:\ F				\b, FREE-DOS MBR
-#>0x14B	string	Default:\ F				\b, FREE-DOS 1.0 MBR
->0x145	search/7	Default:\ F			\b, FREE-DOS MBR
-#>>313		string	F0\ .\ .\ .			
-#>>>322		string	disk\ 1				
-#>>>>382	string	FAT3				
->64	string	no\ active\ partition\ found	
->>96	string	read\ error\ while\ reading\ drive	\b, FREE-DOS Beta 0.9 MBR
-# Ranish Partition Manager http://www.ranish.com/part/
->387	search/4	\0\ Error!\r			
->>378	search/7	Virus! 				
->>>397	search/4	Booting\ 			
->>>>408	search/4	HD1/\0	 			\b, Ranish MBR (
->>>>>416	string	Writing\ changes...		\b2.37
->>>>>>438	ubyte		x			\b,0x%x dots
->>>>>>440	ubyte		>0			\b,virus check
->>>>>>441	ubyte		>0			\b,partition %c
-#2.38,2.42,2.44
->>>>>416	string	!Writing\ changes...		\b
->>>>>>418	ubyte	1				\bvirus check,
->>>>>>419	ubyte	x				\b0x%x seconds
->>>>>>420	ubyte&0x0F	>0			\b,partition
->>>>>>>420	ubyte&0x0F	<5			\b %x
->>>>>>>420	ubyte&0x0F	0Xf			\b ask
->>>>>420	ubyte		x			\b)
-#
->271	string	Operating\ system\ loading 		
->>296	string	error\r					\b, SYSLINUX MBR (2.10)
-# http://www.acronis.de/
->362	string	MBR\ Error\ \0\r			
->>376	string	ress\ any\ key\ to\ 			
->>>392	string	boot\ from\ floppy...\0			\b, Acronis MBR
-# added by Joerg Jenderek
-# http://www.visopsys.org/
-# http://partitionlogic.org.uk/
->309	string	No\ bootable\ partition\ found\r	
->>339	string	I/O\ Error\ reading\ boot\ sector\r	\b, Visopsys MBR
->349	string	No\ bootable\ partition\ found\r	
->>379	string	I/O\ Error\ reading\ boot\ sector\r	\b, simple Visopsys MBR
-# bootloader, bootmanager
->0x40	string	SBML				
-# label with 11 characters of FAT 12 bit filesystem
->>43	string	SMART\ BTMGR			
->>>430	string	SBMK\ Bad!\r			\b, Smart Boot Manager
-# OEM-ID not always "SBM"
-#>>>>3	strings	SBM				
->>>>6	string	>\0                             \b, version %s
->382	string	XOSLLOADXCF			\b, eXtended Operating System Loader
->6	string	LILO				\b, LInux i386 boot LOader
->>120	string	LILO				\b, version 22.3.4 SuSe
->>172	string	LILO				\b, version 22.5.8 Debian
-# updated by Joerg Jenderek at Oct 2008
-# variables according to grub-0.97/stage1/stage1.S or
-# http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
-# usual values are marked with comments to get only informations of strange GRUB loaders
->342		search/60	\0Geom\0	
-#>0		ulelong		x		%x=0x009048EB ,	0x2a9048EB  0
->>0x41		ubyte		<2		
->>>0x3E		ubyte		>2		\b; GRand Unified Bootloader
-# 0x3 for 0.5.95,0.93,0.94,0.96 0x4 for 1.90 
->>>>0x3E	ubyte		x		\b, stage1 version 0x%x
-#If it is 0xFF, use a drive passed by BIOS
->>>>0x40	ubyte		<0xFF		\b, boot drive 0x%x
-# in most case 0,1,0x2e for GRUB 0.5.95
->>>>0x41	ubyte		>0		\b, LBA flag 0x%x
->>>>0x42	uleshort	<0x8000		\b, stage2 address 0x%x
-#>>>>0x42	uleshort	=0x8000		\b, stage2 address 0x%x (usual)
->>>>0x42	uleshort	>0x8000		\b, stage2 address 0x%x
-#>>>>0x44	ulelong		=1		\b, 1st sector stage2 0x%x (default)
->>>>0x44	ulelong		>1		\b, 1st sector stage2 0x%x
->>>>0x48	uleshort	<0x800		\b, stage2 segment 0x%x
-#>>>>0x48	uleshort	=0x800		\b, stage2 segment 0x%x (usual)
->>>>0x48	uleshort	>0x800		\b, stage2 segment 0x%x
->>>>402		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>>394	string	stage1			\b, GRUB version 0.5.95
->>>>382		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>>376	string	GRUB\ \0		\b, GRUB version 0.93 or 1.94
->>>>383		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>>377	string	GRUB\ \0		\b, GRUB version 0.94
->>>>385		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>>379	string	GRUB\ \0		\b, GRUB version 0.95 or 0.96
->>>>391		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>>385	string	GRUB\ \0		\b, GRUB version 0.97
-#unkown version
->>>343		string	Geom\0Read\0\ Error\0	
->>>>321		string	Loading\ stage1.5	\b, GRUB version x.y
->>>380		string	Geom\0Hard\ Disk\0Read\0\ Error\0
->>>>374		string	GRUB\ \0		\b, GRUB version n.m
-# http://syslinux.zytor.com/
->478	string	Boot\ failed\r			
->>495	string	LDLINUX\ SYS			\b, SYSLINUX bootloader (1.62)
->480	string	Boot\ failed\r			
->>495	string	LDLINUX\ SYS			\b, SYSLINUX bootloader (2.06 or 2.11)
->484	string	Boot\ error\r			\b, SYSLINUX bootloader (3.11)
->395	string	chksum\0\ ERROR!\0		\b, Gujin bootloader
-# http://www.bcdwb.de/bcdw/index_e.htm
->3	string	BCDL				
->>498	string	BCDL\ \ \ \ BIN			\b, Bootable CD Loader (1.50Z)
-# mbr partion table entries
-# OEM-ID does not contain MicroSoft,NEWLDR,DOS,SYSLINUX,or MTOOLs
->3			string		!MS
->>3			string		!SYSLINUX
->>>3			string		!MTOOL
->>>>3			string		!NEWLDR
->>>>>5			string		!DOS
-# not FAT (32 bit)
->>>>>>82		string		!FAT32
-#not Linux kernel
->>>>>>>514		string		!HdrS
-#not BeOS
->>>>>>>>422		string		!Be\ Boot\ Loader
-# active flag 0 or 0x80 and type > 0
->>>>>>>>>446		ubyte		<0x81	
->>>>>>>>>>446		ubyte&0x7F	0	
->>>>>>>>>>>450		ubyte		>0	\b; partition 1: ID=0x%x
->>>>>>>>>>>>446		ubyte		0x80	\b, active
->>>>>>>>>>>>447		ubyte		x	\b, starthead %u
-#>>>>>>>>>>>>448		ubyte		x	\b, start C_S: 0x%x
-#>>>>>>>>>>>>448		ubeshort&1023	x	\b, startcylinder? %d
->>>>>>>>>>>>454		ulelong		x	\b, startsector %u
->>>>>>>>>>>>458		ulelong		x	\b, %u sectors
-#
->>>>>>>>>462		ubyte		<0x81	
->>>>>>>>>>462		ubyte&0x7F	0		
->>>>>>>>>>>466		ubyte		>0	\b; partition 2: ID=0x%x
->>>>>>>>>>>>462		ubyte		0x80	\b, active
->>>>>>>>>>>>463		ubyte		x	\b, starthead %u
-#>>>>>>>>>>>>464		ubyte		x	\b, start C_S: 0x%x
-#>>>>>>>>>>>>464		ubeshort&1023	x	\b, startcylinder? %d
->>>>>>>>>>>>470		ulelong		x	\b, startsector %u
->>>>>>>>>>>>474		ulelong		x	\b, %u sectors
-#
->>>>>>>>>478		ubyte		<0x81		
->>>>>>>>>>478		ubyte&0x7F	0		
->>>>>>>>>>>482		ubyte		>0	\b; partition 3: ID=0x%x
->>>>>>>>>>>>478		ubyte		0x80	\b, active
->>>>>>>>>>>>479		ubyte		x	\b, starthead %u
-#>>>>>>>>>>>>480		ubyte		x	\b, start C_S: 0x%x
-#>>>>>>>>>>>>481		ubyte		x	\b, start C2S: 0x%x
-#>>>>>>>>>>>>480		ubeshort&1023	x	\b, startcylinder? %d
->>>>>>>>>>>>486		ulelong		x	\b, startsector %u
->>>>>>>>>>>>490		ulelong		x	\b, %u sectors
-#
->>>>>>>>>494		ubyte		<0x81	
->>>>>>>>>>494		ubyte&0x7F	0		
->>>>>>>>>>>498		ubyte		>0	\b; partition 4: ID=0x%x
->>>>>>>>>>>>494		ubyte		0x80	\b, active
->>>>>>>>>>>>495		ubyte		x	\b, starthead %u
-#>>>>>>>>>>>>496		ubyte		x	\b, start C_S: 0x%x
-#>>>>>>>>>>>>496		ubeshort&1023	x	\b, startcylinder? %d
->>>>>>>>>>>>502		ulelong		x	\b, startsector %u
->>>>>>>>>>>>506		ulelong		x	\b, %u sectors
-# mbr partion table entries end
-# http://www.acronis.de/
-#FAT label=ACRONIS\ SZ
-#OEM-ID=BOOTWIZ0
->442	string	Non-system\ disk,\ 	
->>459	string	press\ any\ key...\x7\0		\b, Acronis Startup Recovery Loader
-# DOS names like F11.SYS are 8 right space padded bytes+3 bytes
->>>477		ubyte&0xDF	>0		
->>>>477		string		x 		\b %-.3s
->>>>>480	ubyte&0xDF	>0		
->>>>>>480	string		x 		\b%-.5s
->>>>485		ubyte&0xDF	>0		
->>>>>485	string		x 		\b.%-.3s
-#
->185	string	FDBOOT\ Version\ 			
->>204	string	\rNo\ Systemdisk.\ 			
->>>220	string	Booting\ from\ harddisk.\n\r		
->>>245	string	Cannot\ load\ from\ harddisk.\n\r	
->>>>273 string	Insert\ Systemdisk\ 			
->>>>>291 string and\ press\ any\ key.\n\r		\b, FDBOOT harddisk Bootloader
->>>>>>200 string	>\0                             \b, version %-3s
->242	string	Bootsector\ from\ C.H.\ Hochst\204	
->>278	string	No\ Systemdisk.\ 			
->>>293	string	Booting\ from\ harddisk.\n\r		
->>>441	string	Cannot\ load\ from\ harddisk.\n\r	
->>>>469 string	Insert\ Systemdisk\ 			
->>>>>487 string and\ press\ any\ key.\n\r		\b, WinImage harddisk Bootloader
->>>>>>209 string	>\0                             \b, version %-4.4s
->(1.b+2)	ubyte		0xe			
->>(1.b+3)	ubyte		0x1f			
->>>(1.b+4)	ubyte		0xbe			
->>>>(1.b+5)	ubyte		0x77			
->>>>(1.b+6)	ubyte		0x7c			
->>>>>(1.b+7)	ubyte		0xac			
->>>>>>(1.b+8)	ubyte		0x22			
->>>>>>>(1.b+9)	ubyte		0xc0			
->>>>>>>>(1.b+10)	ubyte	0x74			
->>>>>>>>>(1.b+11)	ubyte	0xb			
->>>>>>>>>>(1.b+12)	ubyte	0x56			
->>>>>>>>>>(1.b+13)	ubyte	0xb4			\b, mkdosfs boot message display
->214	string	Please\ try\ to\ install\ FreeDOS\ 	\b, DOS Emulator boot message display
-#>>244	string	from\ dosemu-freedos-*-bin.tgz\r	
-#>>>170	string	Sorry,\ could\ not\ load\ an\ 		
-#>>>>195	string	operating\ system.\r\n		
-#
->103	string	This\ is\ not\ a\ bootable\ disk.\ 	
->>132	string	Please\ insert\ a\ bootable\ 		
->>>157	string	floppy\ and\r\n				
->>>>169	string	press\ any\ key\ to\ try\ again...\r	\b, FREE-DOS message display
-#
->66	string	Solaris\ Boot\ Sector    		
->>99	string	Incomplete\ MDBoot\ load.		
->>>89	string	Version 				\b, Sun Solaris Bootloader
->>>>97	byte	x					version %c
-#
->408	string	OS/2\ !!\ SYS01475\r\0			
->>429	string	OS/2\ !!\ SYS02025\r\0			
->>>450	string	OS/2\ !!\ SYS02027\r\0			
->>>469	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp bootloader
-#
->409	string	OS/2\ !!\ SYS01475\r\0			
->>430	string	OS/2\ !!\ SYS02025\r\0			
->>>451	string	OS/2\ !!\ SYS02027\r\0			
->>>470	string	OS2BOOT\ \ \ \ 				\b, IBM OS/2 Warp Bootloader
->112		string	This\ disk\ is\ not\ bootable\r			
->>142		string	If\ you\ wish\ to\ make\ it\ bootable		
->>>176		string	run\ the\ DOS\ program\ SYS\  			
->>>200		string	after\ the\r					
->>>>216		string	system\ has\ been\ loaded\r\n			
->>>>>242	string	Please\ insert\ a\ DOS\ diskette\ 		
->>>>>271	string	into\r\n\ the\ drive\ and\ 			
->>>>>>292	string	strike\ any\ key...\0		\b, IBM OS/2 Warp message display
-# XP
->430	string	NTLDR\ is\ missing\xFF\r\n		
->>449	string	Disk\ error\xFF\r\n			
->>>462	string	Press\ any\ key\ to\ restart\r		\b, Microsoft Windows XP Bootloader
-# DOS names like NTLDR,CMLDR,$LDR$ are 8 right space padded bytes+3 bytes
->>>>417		ubyte&0xDF	>0			
->>>>>417	string		x			%-.5s
->>>>>>422	ubyte&0xDF	>0			
->>>>>>>422	string		x 			\b%-.3s
->>>>>425	ubyte&0xDF	>0			
->>>>>>425	string		>\ 			\b.%-.3s
-#
->>>>371		ubyte		>0x20			
->>>>>368	ubyte&0xDF	>0			
->>>>>>368	string		x 			%-.5s
->>>>>>>373	ubyte&0xDF	>0			
->>>>>>>>373	string		x 			\b%-.3s
->>>>>>376	ubyte&0xDF	>0			
->>>>>>>376	string		x 			\b.%-.3s
-#
->430	string	NTLDR\ nicht\ gefunden\xFF\r\n		
->>453	string	Datentr\204gerfehler\xFF\r\n		
->>>473	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (german)
->>>>417		ubyte&0xDF	>0			
->>>>>417	string		x			%-.5s
->>>>>>422	ubyte&0xDF	>0			
->>>>>>>422	string		x 			\b%-.3s
->>>>>425	ubyte&0xDF	>0			
->>>>>>425	string		>\ 			\b.%-.3s
-# offset variant
->>>>379	string	\0					
->>>>>368	ubyte&0xDF	>0			
->>>>>>368	string		x 			%-.5s
->>>>>>>373	ubyte&0xDF	>0			
->>>>>>>>373	string		x 			\b%-.3s
-#
->430	string	NTLDR\ fehlt\xFF\r\n			
->>444	string	Datentr\204gerfehler\xFF\r\n		
->>>464	string	Neustart\ mit\ beliebiger\ Taste\r	\b, Microsoft Windows XP Bootloader (2.german)
->>>>417		ubyte&0xDF	>0			
->>>>>417	string		x			%-.5s
->>>>>>422	ubyte&0xDF	>0			
->>>>>>>422	string		x 			\b%-.3s
->>>>>425	ubyte&0xDF	>0			
->>>>>>425	string		>\ 			\b.%-.3s
-# variant
->>>>371		ubyte		>0x20			
->>>>>368	ubyte&0xDF	>0			
->>>>>>368	string		x 			%-.5s
->>>>>>>373	ubyte&0xDF	>0			
->>>>>>>>373	string		x 			\b%-.3s
->>>>>>376	ubyte&0xDF	>0			
->>>>>>>376	string		x 			\b.%-.3s
-#
->430	string	NTLDR\ fehlt\xFF\r\n			
->>444	string	Medienfehler\xFF\r\n			
->>>459	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (3.german)
->>>>371		ubyte		>0x20			
->>>>>368	ubyte&0xDF	>0			
->>>>>>368	string		x 			%-.5s
->>>>>>>373	ubyte&0xDF	>0			
->>>>>>>>373	string		x 			\b%-.3s
->>>>>>376	ubyte&0xDF	>0			
->>>>>>>376	string		x 			\b.%-.3s
-# variant
->>>>417		ubyte&0xDF	>0			
->>>>>417	string		x			%-.5s
->>>>>>422	ubyte&0xDF	>0			
->>>>>>>422	string		x 			\b%-.3s
->>>>>425	ubyte&0xDF	>0			
->>>>>>425	string		>\ 			\b.%-.3s
-#
->430	string	Datentr\204ger\ entfernen\xFF\r\n	
->>454	string	Medienfehler\xFF\r\n			
->>>469	string	Neustart:\ Taste\ dr\201cken\r		\b, Microsoft Windows XP Bootloader (4.german)
->>>>379		string		\0			
->>>>>368	ubyte&0xDF	>0			
->>>>>>368	string		x 			%-.5s
->>>>>>>373	ubyte&0xDF	>0			
->>>>>>>>373	string		x 			\b%-.3s
->>>>>>376	ubyte&0xDF	>0			
->>>>>>>376	string		x 			\b.%-.3s
-# variant
->>>>417		ubyte&0xDF	>0			
->>>>>417	string		x			%-.5s
->>>>>>422	ubyte&0xDF	>0			
->>>>>>>422	string		x 			\b%-.3s
->>>>>425	ubyte&0xDF	>0			
->>>>>>425	string		>\ 			\b.%-.3s
-#
-
-#>3	string	NTFS\ \ \ \ 				
->389	string	Fehler\ beim\ Lesen\ 
->>407	string	des\ Datentr\204gers
->>>426	string	NTLDR\ fehlt				
->>>>440	string	NTLDR\ ist\ komprimiert
->>>>>464 string	Neustart\ mit\ Strg+Alt+Entf\r		\b, Microsoft Windows XP Bootloader NTFS (german)
-#>3	string	NTFS\ \ \ \ 				
->313	string	A\ disk\ read\ error\ occurred.\r
->>345	string	A\ kernel\ file\ is\ missing\ 	
->>>370	string	from\ the\ disk.\r		
->>>>484	string	NTLDR\ is\ compressed		
->>>>>429 string	Insert\ a\ system\ diskette\ 	
->>>>>>454 string and\ restart\r\nthe\ system.\r		\b, Microsoft Windows XP Bootloader NTFS
-# DOS loader variants different languages,offsets
->472	ubyte&0xDF	>0
->>389	string	Invalid\ system\ disk\xFF\r\n		
->>>411	string	Disk\ I/O\ error			
->>>>428	string	Replace\ the\ disk,\ and\ 		
->>>>>455 string	press\ any\ key				\b, Microsoft Windows 98 Bootloader
-#IO.SYS
->>>>>>472	ubyte&0xDF	>0			
->>>>>>>472	string		x 			\b %-.2s
->>>>>>>>474	ubyte&0xDF	>0			
->>>>>>>>>474	string		x 			\b%-.5s
->>>>>>>>>>479	ubyte&0xDF	>0			
->>>>>>>>>>>479 string		x 			\b%-.1s
->>>>>>>480	ubyte&0xDF	>0			
->>>>>>>>480	string		x 			\b.%-.3s
-#MSDOS.SYS
->>>>>>>483	ubyte&0xDF	>0			\b+
->>>>>>>>483	string		x 			\b%-.5s
->>>>>>>>>488	ubyte&0xDF	>0			
->>>>>>>>>>488	string		x 			\b%-.3s
->>>>>>>>491	ubyte&0xDF	>0			
->>>>>>>>>491	string		x 			\b.%-.3s
-#
->>390	string	Invalid\ system\ disk\xFF\r\n		
->>>412	string	Disk\ I/O\ error\xFF\r\n		
->>>>429	string	Replace\ the\ disk,\ and\ 		
->>>>>451 string	then\ press\ any\ key\r			\b, Microsoft Windows 98 Bootloader
->>388	string	Ungueltiges\ System\ \xFF\r\n		
->>>410	string	E/A-Fehler\ \ \ \ \xFF\r\n		
->>>>427	string	Datentraeger\ wechseln\ und\ 		
->>>>>453 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (german)
-#WINBOOT.SYS only not spaces (0xDF)
->>>>>>497	ubyte&0xDF	>0			
->>>>>>>497	string		x 			%-.5s
->>>>>>>>502	ubyte&0xDF	>0			
->>>>>>>>>502	string		x 			\b%-.1s
->>>>>>>>>>503	ubyte&0xDF	>0			
->>>>>>>>>>>503	string		x 			\b%-.1s
->>>>>>>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>>>>>>504 string		x 			\b%-.1s
->>>>>>505	ubyte&0xDF	>0			
->>>>>>>505	string		x 			\b.%-.3s
-#IO.SYS
->>>>>>472	ubyte&0xDF	>0			or
->>>>>>>472	string		x 			\b %-.2s
->>>>>>>>474	ubyte&0xDF	>0			
->>>>>>>>>474	string		x 			\b%-.5s
->>>>>>>>>>479	ubyte&0xDF	>0			
->>>>>>>>>>>479 string		x 			\b%-.1s
->>>>>>>480	ubyte&0xDF	>0			
->>>>>>>>480	string		x 			\b.%-.3s
-#MSDOS.SYS
->>>>>>>483	ubyte&0xDF	>0			\b+
->>>>>>>>483	string		x 			\b%-.5s
->>>>>>>>>488	ubyte&0xDF	>0			
->>>>>>>>>>488	string		x 			\b%-.3s
->>>>>>>>491	ubyte&0xDF	>0			
->>>>>>>>>491	string		x 			\b.%-.3s
-#
->>390	string	Ungueltiges\ System\ \xFF\r\n		
->>>412	string	E/A-Fehler\ \ \ \ \xFF\r\n		
->>>>429	string	Datentraeger\ wechseln\ und\ 		
->>>>>455 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (German)
-#WINBOOT.SYS only not spaces (0xDF)
->>>>>>497	ubyte&0xDF	>0			
->>>>>>>497	string		x 			%-.7s
->>>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>>504	string		x 			\b%-.1s
->>>>>>505	ubyte&0xDF	>0			
->>>>>>>505	string		x 			\b.%-.3s
-#IO.SYS
->>>>>>472	ubyte&0xDF	>0			or
->>>>>>>472	string		x 			\b %-.2s
->>>>>>>>474	ubyte&0xDF	>0			
->>>>>>>>>474	string		x 			\b%-.6s
->>>>>>>480	ubyte&0xDF	>0			
->>>>>>>>480	string		x 			\b.%-.3s
-#MSDOS.SYS
->>>>>>>483	ubyte&0xDF	>0			\b+
->>>>>>>>483	string		x 			\b%-.5s
->>>>>>>>>488	ubyte&0xDF	>0			
->>>>>>>>>>488	string		x 			\b%-.3s
->>>>>>>>491	ubyte&0xDF	>0			
->>>>>>>>>491	string		x 			\b.%-.3s
-#
->>389	string	Ungueltiges\ System\ \xFF\r\n		
->>>411	string	E/A-Fehler\ \ \ \ \xFF\r\n		
->>>>428	string	Datentraeger\ wechseln\ und\ 		
->>>>>454 string	Taste\ druecken\r			\b, Microsoft Windows 95/98/ME Bootloader (GERMAN)
-# DOS names like IO.SYS,WINBOOT.SYS,MSDOS.SYS,WINBOOT.INI are 8 right space padded bytes+3 bytes
->>>>>>472	string		x 			%-.2s
->>>>>>>474	ubyte&0xDF	>0			
->>>>>>>>474	string		x 			\b%-.5s
->>>>>>>>479	ubyte&0xDF	>0			
->>>>>>>>>479	string		x 			\b%-.1s
->>>>>>480	ubyte&0xDF	>0			
->>>>>>>480	string		x 			\b.%-.3s
->>>>>>483	ubyte&0xDF	>0			\b+
->>>>>>>483	string		x 			\b%-.5s
->>>>>>>488	ubyte&0xDF	>0			
->>>>>>>>488	string		x 			\b%-.2s
->>>>>>>>490	ubyte&0xDF	>0			
->>>>>>>>>490	string		x 			\b%-.1s
->>>>>>>491	ubyte&0xDF	>0			
->>>>>>>>491	string		x 			\b.%-.3s
->479	ubyte&0xDF	>0
->>416	string	Kein\ System\ oder\ 			
->>>433	string	Laufwerksfehler				
->>>>450	string	Wechseln\ und\ Taste\ dr\201cken	\b, Microsoft DOS Bootloader (german)
-#IO.SYS
->>>>>479	string		x 			\b %-.2s
->>>>>>481	ubyte&0xDF	>0			
->>>>>>>481	string		x 			\b%-.6s
->>>>>487	ubyte&0xDF	>0			
->>>>>>487	string		x 			\b.%-.3s
-#MSDOS.SYS
->>>>>>490	ubyte&0xDF	>0			\b+
->>>>>>>490	string		x 			\b%-.5s
->>>>>>>>495	ubyte&0xDF	>0			
->>>>>>>>>495	string		x 			\b%-.3s
->>>>>>>498	ubyte&0xDF	>0			
->>>>>>>>498	string		x 			\b.%-.3s
-#
->376	search/41	Non-System\ disk\ or\ 		
->>395	search/41	disk\ error\r			
->>>407	search/41	Replace\ and\ 			
->>>>419	search/41	press\ 				\b,
->>>>419	search/41	strike\ 			\b, old
->>>>426	search/41	any\ key\ when\ ready\r		MS or PC-DOS bootloader
-#449			Disk\ Boot\ failure\r		MS 3.21
-#466			Boot\ Failure\r			MS 3.30
->>>>>468 search/18	\0				
-#IO.SYS,IBMBIO.COM
->>>>>>&0	string		x 			\b %-.2s
->>>>>>>&-20	ubyte&0xDF	>0			
->>>>>>>>&-1	string		x 			\b%-.4s
->>>>>>>>>&-16	ubyte&0xDF	>0			
->>>>>>>>>>&-1	string		x 			\b%-.2s
->>>>>>&8	ubyte&0xDF	>0			\b.
->>>>>>>&-1	string		x 			\b%-.3s
-#MSDOS.SYS,IBMDOS.COM
->>>>>>&11	ubyte&0xDF	>0			\b+
->>>>>>>&-1	string		x 			\b%-.5s
->>>>>>>>&-6	ubyte&0xDF	>0			
->>>>>>>>>&-1	string		x 			\b%-.1s
->>>>>>>>>>&-5	ubyte&0xDF	>0			
->>>>>>>>>>>&-1	string		x 			\b%-.2s
->>>>>>>&7	ubyte&0xDF	>0			\b.
->>>>>>>>&-1	string		x 			\b%-.3s
->441	string	Cannot\ load\ from\ harddisk.\n\r
->>469	string	Insert\ Systemdisk\ 			
->>>487	string	and\ press\ any\ key.\n\r		\b, MS (2.11) DOS bootloader
-#>43	string	\224R-LOADER\ \ SYS			=label					
->54	string	SYS
->>324	string	VASKK
->>>495	string	NEWLDR\0				\b, DR-DOS Bootloader (LOADER.SYS)
-#
->98	string	Press\ a\ key\ to\ retry\0\r		
->>120	string	Cannot\ find\ file\ \0\r		
->>>139	string	Disk\ read\ error\0\r			
->>>>156	string	Loading\ ...\0				\b, DR-DOS (3.41) Bootloader
-#DRBIOS.SYS
->>>>>44		ubyte&0xDF	>0			
->>>>>>44	string		x			\b %-.6s
->>>>>>>50	ubyte&0xDF	>0			
->>>>>>>>50	string		x 			\b%-.2s
->>>>>>52	ubyte&0xDF	>0			
->>>>>>>52	string		x 			\b.%-.3s
-#
->70	string	IBMBIO\ \ COM				
->>472	string	Cannot\ load\ DOS!\ 			
->>>489	string	Any\ key\ to\ retry			\b, DR-DOS Bootloader
->>471	string	Cannot\ load\ DOS\ 			
->>487	string	press\ key\ to\ retry			\b, Open-DOS Bootloader
-#??
->444	string	KERNEL\ \ SYS					
->>314	string	BOOT\ error!				\b, FREE-DOS Bootloader
->499	string	KERNEL\ \ SYS				
->>305	string	BOOT\ err!\0				\b, Free-DOS Bootloader
->449	string	KERNEL\ \ SYS				
->>319	string	BOOT\ error!				\b, FREE-DOS 0.5 Bootloader
-#
->449	string	Loading\ FreeDOS			
->>0x1AF		ulelong		>0			\b, FREE-DOS 0.95,1.0 Bootloader
->>>497		ubyte&0xDF	>0			
->>>>497		string		x 			\b %-.6s
->>>>>503	ubyte&0xDF	>0			
->>>>>>503	string		x 			\b%-.1s
->>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>504	string		x 			\b%-.1s
->>>>505		ubyte&0xDF	>0			
->>>>>505	string		x 			\b.%-.3s
-#
->331	string	Error!.0				\b, FREE-DOS 1.0 bootloader
-#
->125	string	Loading\ FreeDOS...\r			
->>311	string	BOOT\ error!\r				\b, FREE-DOS bootloader
->>>441		ubyte&0xDF	>0			
->>>>441		string		x 			\b %-.6s
->>>>>447	ubyte&0xDF	>0			
->>>>>>447	string		x 			\b%-.1s
->>>>>>>448	ubyte&0xDF	>0			
->>>>>>>>448	string		x 			\b%-.1s
->>>>449		ubyte&0xDF	>0			
->>>>>449	string		x 			\b.%-.3s
->124	string	FreeDOS\0				
->>331	string	\ err\0					\b, FREE-DOS BETa 0.9 Bootloader
-# DOS names like KERNEL.SYS,KERNEL16.SYS,KERNEL32.SYS,METAKERN.SYS are 8 right space padded bytes+3 bytes
->>>497		ubyte&0xDF	>0			
->>>>497		string		x 			\b %-.6s
->>>>>503	ubyte&0xDF	>0			
->>>>>>503	string		x 			\b%-.1s
->>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>504	string		x 			\b%-.1s
->>>>505		ubyte&0xDF	>0			
->>>>>505	string		x 			\b.%-.3s
->>333	string	\ err\0					\b, FREE-DOS BEta 0.9 Bootloader
->>>497		ubyte&0xDF	>0			
->>>>497		string		x 			\b %-.6s
->>>>>503	ubyte&0xDF	>0			
->>>>>>503	string		x 			\b%-.1s
->>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>504	string		x 			\b%-.1s
->>>>505		ubyte&0xDF	>0			
->>>>>505	string		x 			\b.%-.3s
->>334	string	\ err\0					\b, FREE-DOS Beta 0.9 Bootloader
->>>497		ubyte&0xDF	>0			
->>>>497		string		x 			\b %-.6s
->>>>>503	ubyte&0xDF	>0			
->>>>>>503	string		x 			\b%-.1s
->>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>504	string		x 			\b%-.1s
->>>>505		ubyte&0xDF	>0			
->>>>>505	string		x 			\b.%-.3s
->336	string	Error!\ 				
->>343	string	Hit\ a\ key\ to\ reboot.		\b, FREE-DOS Beta 0.9sr1 Bootloader
->>>497		ubyte&0xDF	>0			
->>>>497		string		x 			\b %-.6s
->>>>>503	ubyte&0xDF	>0			
->>>>>>503	string		x 			\b%-.1s
->>>>>>>504	ubyte&0xDF	>0			
->>>>>>>>504	string		x 			\b%-.1s
->>>>505		ubyte&0xDF	>0			
->>>>>505	string		x 			\b.%-.3s
-# added by Joerg Jenderek
-# http://www.visopsys.org/
-# http://partitionlogic.org.uk/
-# OEM-ID=Visopsys
->478		ulelong	0					
->>(1.b+326)	string	I/O\ Error\ reading\ 			
->>>(1.b+344)	string	Visopsys\ loader\r			
->>>>(1.b+361)	string	Press\ any\ key\ to\ continue.\r	\b, Visopsys loader
-# http://alexfru.chat.ru/epm.html#bootprog
->494	ubyte	>0x4D					
->>495	string	>E					
->>>495	string	<S					
-#OEM-ID is not reliable
->>>>3	string	BootProg				
-# It just looks for a program file name at the root directory
-# and loads corresponding file with following execution.
-# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
->>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
->>>>>499		string		x 		\b %-.1s
->>>>>>500		ubyte&0xDF	>0		
->>>>>>>500		string		x 		\b%-.1s
->>>>>>>>501		ubyte&0xDF	>0		
->>>>>>>>>501		string		x 		\b%-.1s
->>>>>>>>>>502		ubyte&0xDF	>0		
->>>>>>>>>>>502		string		x 		\b%-.1s
->>>>>>>>>>>>503		ubyte&0xDF	>0		
->>>>>>>>>>>>>503	string		x 		\b%-.1s
->>>>>>>>>>>>>>504	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>504	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>505	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>505	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>>>506	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>>>506	string		x 		\b%-.1s
-#name extension
->>>>>507		ubyte&0xDF	>0		\b.
->>>>>>507		string		x 		\b%-.1s
->>>>>>>508		ubyte&0xDF	>0		
->>>>>>>>508		string		x 		\b%-.1s
->>>>>>>>>509		ubyte&0xDF	>0		
->>>>>>>>>>509		string		x 		\b%-.1s
-#If the boot sector fails to read any other sector,
-#it prints a very short message ("RE") to the screen and hangs the computer.
-#If the boot sector fails to find needed program in the root directory,
-#it also hangs with another message ("NF").
->>>>>492		string		RENF		\b, FAT (12 bit)
->>>>>495		string		RENF		\b, FAT (16 bit)
-# http://alexfru.chat.ru/epm.html#bootprog
->494	ubyte	>0x4D					
->>495	string	>E					
->>>495	string	<S					
-#OEM-ID is not reliable
->>>>3	string	BootProg				
-# It just looks for a program file name at the root directory
-# and loads corresponding file with following execution.
-# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
->>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
->>>>>499		string		x 		\b %-.1s
->>>>>>500		ubyte&0xDF	>0		
->>>>>>>500		string		x 		\b%-.1s
->>>>>>>>501		ubyte&0xDF	>0		
->>>>>>>>>501		string		x 		\b%-.1s
->>>>>>>>>>502		ubyte&0xDF	>0		
->>>>>>>>>>>502		string		x 		\b%-.1s
->>>>>>>>>>>>503		ubyte&0xDF	>0		
->>>>>>>>>>>>>503	string		x 		\b%-.1s
->>>>>>>>>>>>>>504	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>504	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>505	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>505	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>>>506	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>>>506	string		x 		\b%-.1s
-#name extension
->>>>>507		ubyte&0xDF	>0		\b.
->>>>>>507		string		x 		\b%-.1s
->>>>>>>508		ubyte&0xDF	>0		
->>>>>>>>508		string		x 		\b%-.1s
->>>>>>>>>509		ubyte&0xDF	>0		
->>>>>>>>>>509		string		x 		\b%-.1s
-#If the boot sector fails to read any other sector,
-#it prints a very short message ("RE") to the screen and hangs the computer.
-#If the boot sector fails to find needed program in the root directory,
-#it also hangs with another message ("NF").
->>>>>492		string		RENF		\b, FAT (12 bit)
->>>>>495		string		RENF		\b, FAT (16 bit)
-# x86 bootloader end
-# updated by Joerg Jenderek at Sep 2007
->3	ubyte	0			
-#no active flag
->>446	ubyte	0			
-# partition 1 not empty
->>>450	ubyte	>0			
-# partitions 3,4 empty
->>>>482		ubyte	0			
->>>>>498	ubyte	0			
-# partition 2 ID=0,5,15
->>>>>>466	ubyte	<0x10			
->>>>>>>466	ubyte	0x05			\b, extended partition table
->>>>>>>466	ubyte	0x0F			\b, extended partition table (LBA)
->>>>>>>466	ubyte	0x0			\b, extended partition table (last)	
-# JuMP short     bootcodeoffset NOP assembler instructions will usually be EB xx 90
-# http://mirror.href.com/thestarman/asm/2bytejumps.htmm#FWD
-# older drives may use Near JuMP instruction E9 xx xx
->0		lelong&0x009000EB	0x009000EB 
->0		lelong&0x000000E9	0x000000E9 
-# minimal short forward jump found 03cx??
-# maximal short forward jump is 07fx
->1		ubyte			<0xff	\b, code offset 0x%x
-# mtools-3.9.8/msdos.h
-# usual values are marked with comments to get only informations of strange FAT systems
-# valid sectorsize must be a power of 2 from 32 to 32768
->>11		uleshort&0x000f	x		
->>>11		uleshort	<32769		
->>>>11		uleshort	>31		
->>>>>21		ubyte&0xf0	0xF0		
->>>>>>3		string		>\0		\b, OEM-ID "%8.8s"
-#http://mirror.href.com/thestarman/asm/debug/debug2.htm#IHC
->>>>>>>8	string		IHC		\b cached by Windows 9M
->>>>>>11	uleshort	>512		\b, Bytes/sector %u
-#>>>>>>11	uleshort	=512		\b, Bytes/sector %u=512 (usual)
->>>>>>11	uleshort	<512		\b, Bytes/sector %u
->>>>>>13	ubyte		>1		\b, sectors/cluster %u
-#>>>>>>13	ubyte		=1		\b, sectors/cluster %u (usual on Floppies)
->>>>>>14	uleshort	>32		\b, reserved sectors %u
-#>>>>>>14	uleshort	=32		\b, reserved sectors %u (usual Fat32)
-#>>>>>>14	uleshort	>1		\b, reserved sectors %u
-#>>>>>>14	uleshort	=1		\b, reserved sectors %u (usual FAT12,FAT16)
->>>>>>14	uleshort	<1		\b, reserved sectors %u
->>>>>>16	ubyte		>2		\b, FATs %u
-#>>>>>>16	ubyte		=2		\b, FATs %u (usual)
->>>>>>16	ubyte		=1		\b, FAT  %u
->>>>>>16	ubyte		>0
->>>>>>17	uleshort	>0		\b, root entries %u
-#>>>>>>17	uleshort	=0		\b, root entries %u=0 (usual Fat32)
->>>>>>19	uleshort	>0		\b, sectors %u (volumes <=32 MB) 
-#>>>>>>19	uleshort	=0		\b, sectors %u=0 (usual Fat32)
->>>>>>21	ubyte		>0xF0		\b, Media descriptor 0x%x
-#>>>>>>21	ubyte		=0xF0		\b, Media descriptor 0x%x (usual floppy)
->>>>>>21	ubyte		<0xF0		\b, Media descriptor 0x%x
->>>>>>22	uleshort	>0		\b, sectors/FAT %u
-#>>>>>>22	uleshort	=0		\b, sectors/FAT %u=0 (usual Fat32)
->>>>>>26	ubyte		>2		\b, heads %u
-#>>>>>>26	ubyte		=2		\b, heads %u (usual floppy)
->>>>>>26	ubyte		=1		\b, heads %u
-#skip for Digital Research DOS (version 3.41) 1440 kB Bootdisk
->>>>>>38	ubyte		!0x70		
->>>>>>>28	ulelong		>0		\b, hidden sectors %u
-#>>>>>>>28	ulelong		=0		\b, hidden sectors %u (usual floppy)
->>>>>>>32	ulelong		>0		\b, sectors %u (volumes > 32 MB) 
-#>>>>>>>32	ulelong		=0		\b, sectors %u (volumes > 32 MB)
-# FAT<32 specific 
->>>>>>82	string		!FAT32
-#>>>>>>>36	ubyte		0x80		\b, physical drive 0x%x=0x80 (usual harddisk)
-#>>>>>>>36	ubyte		0		\b, physical drive 0x%x=0 (usual floppy)
->>>>>>>36	ubyte		!0x80		
->>>>>>>>36	ubyte		!0		\b, physical drive 0x%x
->>>>>>>37	ubyte		>0		\b, reserved 0x%x
-#>>>>>>>37	ubyte		=0		\b, reserved 0x%x
->>>>>>>38	ubyte		>0x29		\b, dos < 4.0 BootSector (0x%x)
->>>>>>>38	ubyte		<0x29		\b, dos < 4.0 BootSector (0x%x)
->>>>>>>38	ubyte		=0x29
->>>>>>>>39	ulelong		x		\b, serial number 0x%x
->>>>>>>>43	string		<NO\ NAME	\b, label: "%11.11s"
->>>>>>>>43	string		>NO\ NAME	\b, label: "%11.11s"
->>>>>>>>43	string		=NO\ NAME	\b, unlabeled
->>>>>>>54	string		FAT		\b, FAT
->>>>>>>>54	string		FAT12		\b (12 bit)
->>>>>>>>54	string		FAT16		\b (16 bit)
-# FAT32 specific
->>>>>>82	string		FAT32		\b, FAT (32 bit)
->>>>>>>36	ulelong		x		\b, sectors/FAT %u
->>>>>>>40	uleshort	>0		\b, extension flags %u
-#>>>>>>>40	uleshort	=0		\b, extension flags %u
->>>>>>>42	uleshort	>0		\b, fsVersion %u
-#>>>>>>>42	uleshort	=0		\b, fsVersion %u (usual)
->>>>>>>44	ulelong		>2		\b, rootdir cluster %u
-#>>>>>>>44	ulelong		=2		\b, rootdir cluster %u
-#>>>>>>>44	ulelong		=1		\b, rootdir cluster %u
->>>>>>>48	uleshort	>1		\b, infoSector %u
-#>>>>>>>48	uleshort	=1		\b, infoSector %u (usual)
->>>>>>>48	uleshort	<1		\b, infoSector %u
->>>>>>>50	uleshort	>6		\b, Backup boot sector %u
-#>>>>>>>50	uleshort	=6		\b, Backup boot sector %u (usual) 
->>>>>>>50	uleshort	<6		\b, Backup boot sector %u
->>>>>>>54	ulelong		>0		\b, reserved1 0x%x
->>>>>>>58	ulelong		>0		\b, reserved2 0x%x
->>>>>>>62	ulelong		>0		\b, reserved3 0x%x
-# same structure as FAT1X 
->>>>>>>64	ubyte		>0x80		\b, physical drive 0x%x
-#>>>>>>>64	ubyte		=0x80		\b, physical drive 0x%x=80 (usual harddisk)
->>>>>>>64	ubyte&0x7F	>0		\b, physical drive 0x%x
-#>>>>>>>64	ubyte		=0		\b, physical drive 0x%x=0 (usual floppy)
->>>>>>>65	ubyte		>0		\b, reserved 0x%x
->>>>>>>66	ubyte		>0x29		\b, dos < 4.0 BootSector (0x%x)
->>>>>>>66	ubyte		<0x29		\b, dos < 4.0 BootSector (0x%x)
->>>>>>>66	ubyte		=0x29
->>>>>>>>67	ulelong		x		\b, serial number 0x%x
->>>>>>>>71	string		<NO\ NAME	\b, label: "%11.11s"
->>>>>>>71	string		>NO\ NAME	\b, label: "%11.11s"
->>>>>>>71	string		=NO\ NAME	\b, unlabeled
-### FATs end
->0x200	lelong	0x82564557		\b, BSD disklabel
-# FATX 
-0		string		FATX		FATX filesystem data
-
-
-# Minix filesystems - Juan Cespedes <cespedes@debian.org>
-0x410	leshort		0x137f		Minix filesystem
-0x410	beshort		0x137f		Minix filesystem (big endian)
->0x402	beshort		!0		\b, %d zones
->0x1e	string		minix		\b, bootable
-0x410	leshort		0x138f		Minix filesystem, 30 char names
-0x410	leshort		0x2468		Minix filesystem, version 2
-0x410	leshort		0x2478		Minix filesystem, version 2, 30 char names
-
-# romfs filesystems - Juan Cespedes <cespedes@debian.org>
-0	string		-rom1fs-	romfs filesystem, version 1
->8	belong	x			%d bytes,
->16	string	x			named %s.
-
-# netboot image - Juan Cespedes <cespedes@debian.org>
-0	lelong		0x1b031336L	Netboot image,
->4	lelong&0xFFFFFF00	0
->>4	lelong&0x100	0x000		mode 2
->>4	lelong&0x100	0x100		mode 3
->4	lelong&0xFFFFFF00	!0	unknown mode
-
-0x18b	string	OS/2	OS/2 Boot Manager
-
-# updated by Joerg Jenderek at Oct 2008!!
-# http://syslinux.zytor.com/iso.php
-0	ulelong	0x7c40eafa		isolinux Loader
-# http://syslinux.zytor.com/pxe.php
-0	ulelong	0x007c05ea		pxelinux Loader
-0	ulelong	0x60669c66		pxelinux Loader
-
-# added by Joerg Jenderek
-# In the second sector (+0x200) are variables according to grub-0.97/stage2/asm.S or
-# grub-1.94/kern/i386/pc/startup.S
-# http://www.gnu.org/software/grub/manual/grub.html#Embedded-data
-# usual values are marked with comments to get only informations of strange GRUB loaders
-0x200	uleshort		0x70EA		
-# found only version 3.{1,2}
->0x206		ubeshort	>0x0300		
-# GRUB version (0.5.)95,0.93,0.94,0.96,0.97 > "00"
->>0x212 	ubyte		>0x29		
->>>0x213 	ubyte		>0x29		
-# not iso9660_stage1_5
-#>>>0	ulelong&0x00BE5652	0x00BE5652	
->>>>0x213 	ubyte		>0x29		GRand Unified Bootloader
-# config_file for stage1_5 is 0xffffffff + default "/boot/grub/stage2"
->>>>0x217 	ubyte		0xFF		stage1_5
->>>>0x217 	ubyte		<0xFF		stage2
->>>>0x206	ubyte		x		\b version %u
->>>>0x207	ubyte		x		\b.%u
-# module_size for 1.94
->>>>0x208	ulelong		<0xffffff	\b, installed partition %u
-#>>>>0x208	ulelong		=0xffffff	\b, %u (default)
->>>>0x208	ulelong		>0xffffff	\b, installed partition %u
-# GRUB 0.5.95 unofficial
->>>>0x20C	ulelong&0x2E300000 0x2E300000	
-# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs
->>>>>0x20C	ubyte		x		\b, identifier 0x%x
-#>>>>>0x20D	ubyte		=0		\b, LBA flag 0x%x (default)
->>>>>0x20D	ubyte		>0		\b, LBA flag 0x%x
-# GRUB version as string
->>>>>0x20E 	string		>\0		\b, GRUB version %-s
-# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
->>>>>>0x215 	ulong		0xffffffff	
->>>>>>>0x219 	string		>\0		\b, configuration file %-s
->>>>>>0x215 	ulong		!0xffffffff	
->>>>>>>0x215 	string		>\0		\b, configuration file %-s
-# newer GRUB versions
->>>>0x20C	ulelong&0x2E300000 !0x2E300000	
-##>>>>>0x20C	ulelong		=0		\b, saved entry %d (usual)
->>>>>0x20C	ulelong		>0		\b, saved entry %d
-# for 1.94 contains kernel image size
-# for 0.93,0.94,0.96,0.97
-# 0=stage2	1=ffs	2=e2fs	3=fat	4=minix	5=reiserfs	6=vstafs	7=jfs	8=xfs	9=iso9660	a=ufs2	
->>>>>0x210	ubyte		x		\b, identifier 0x%x
-# The flag for LBA forcing is in most cases 0
-#>>>>>0x211	ubyte		=0		\b, LBA flag 0x%x (default)
->>>>>0x211	ubyte		>0		\b, LBA flag 0x%x
-# GRUB version as string
->>>>>0x212 	string		>\0		\b, GRUB version %-s
-# for stage1_5 is 0xffffffff + config_file "/boot/grub/stage2" default
->>>>>0x217 	ulong		0xffffffff	
->>>>>>0x21b 	string		>\0		\b, configuration file %-s
->>>>>0x217 	ulong		!0xffffffff	
->>>>>>0x217 	string		>\0		\b, configuration file %-s
-
-9564	lelong		0x00011954	Unix Fast File system [v1] (little-endian),
->8404	string		x		last mounted on %s,
-#>9504	ledate		x		last checked at %s,
->8224	ledate		x		last written at %s,
->8401	byte		x		clean flag %d,
->8228	lelong		x		number of blocks %d,
->8232	lelong		x		number of data blocks %d,
->8236	lelong		x		number of cylinder groups %d,
->8240	lelong		x		block size %d,
->8244	lelong		x		fragment size %d,
->8252	lelong		x		minimum percentage of free blocks %d,
->8256	lelong		x		rotational delay %dms,
->8260	lelong		x		disk rotational speed %drps,
->8320	lelong		0		TIME optimization
->8320	lelong		1		SPACE optimization
-
-42332	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
->&-1164	string		x		last mounted on %s,
->&-696	string		>\0		volume name %s,
->&-304	leqldate	x		last written at %s,
->&-1167	byte		x		clean flag %d,
->&-1168	byte		x		readonly flag %d,
->&-296	lequad		x		number of blocks %lld,
->&-288	lequad		x		number of data blocks %lld,
->&-1332	lelong		x		number of cylinder groups %d,
->&-1328	lelong		x		block size %d,
->&-1324	lelong		x		fragment size %d,
->&-180	lelong		x		average file size %d,
->&-176	lelong		x		average number of files in dir %d,
->&-272	lequad		x		pending blocks to free %lld,
->&-264	lelong		x		pending inodes to free %ld,
->&-664	lequad		x		system-wide uuid %0llx,
->&-1316	lelong		x		minimum percentage of free blocks %d,
->&-1248	lelong		0		TIME optimization
->&-1248	lelong		1		SPACE optimization
-
-66908	lelong		0x19540119	Unix Fast File system [v2] (little-endian)
->&-1164	string		x		last mounted on %s,
->&-696	string		>\0		volume name %s,
->&-304	leqldate	x		last written at %s,
->&-1167	byte		x		clean flag %d,
->&-1168	byte		x		readonly flag %d,
->&-296	lequad		x		number of blocks %lld,
->&-288	lequad		x		number of data blocks %lld,
->&-1332	lelong		x		number of cylinder groups %d,
->&-1328	lelong		x		block size %d,
->&-1324	lelong		x		fragment size %d,
->&-180	lelong		x		average file size %d,
->&-176	lelong		x		average number of files in dir %d,
->&-272	lequad		x		pending blocks to free %lld,
->&-264	lelong		x		pending inodes to free %ld,
->&-664	lequad		x		system-wide uuid %0llx,
->&-1316	lelong		x		minimum percentage of free blocks %d,
->&-1248	lelong		0		TIME optimization
->&-1248	lelong		1		SPACE optimization
-
-9564	belong		0x00011954	Unix Fast File system [v1] (big-endian),
->7168   belong		0x4c41424c	Apple UFS Volume
->>7186  string		x		named %s,
->>7176  belong		x		volume label version %d,
->>7180  bedate		x		created on %s,
->8404	string		x		last mounted on %s,
-#>9504	bedate		x		last checked at %s,
->8224	bedate		x		last written at %s,
->8401	byte		x		clean flag %d,
->8228	belong		x		number of blocks %d,
->8232	belong		x		number of data blocks %d,
->8236	belong		x		number of cylinder groups %d,
->8240	belong		x		block size %d,
->8244	belong		x		fragment size %d,
->8252	belong		x		minimum percentage of free blocks %d,
->8256	belong		x		rotational delay %dms,
->8260	belong		x		disk rotational speed %drps,
->8320	belong		0		TIME optimization
->8320	belong		1		SPACE optimization
-
-42332	belong		0x19540119	Unix Fast File system [v2] (big-endian)
->&-1164	string		x		last mounted on %s,
->&-696	string		>\0		volume name %s,
->&-304	beqldate	x		last written at %s,
->&-1167	byte		x		clean flag %d,
->&-1168	byte		x		readonly flag %d,
->&-296	bequad		x		number of blocks %lld,
->&-288	bequad		x		number of data blocks %lld,
->&-1332	belong		x		number of cylinder groups %d,
->&-1328	belong		x		block size %d,
->&-1324	belong		x		fragment size %d,
->&-180	belong		x		average file size %d,
->&-176	belong		x		average number of files in dir %d,
->&-272	bequad		x		pending blocks to free %lld,
->&-264	belong		x		pending inodes to free %ld,
->&-664	bequad		x		system-wide uuid %0llx,
->&-1316	belong		x		minimum percentage of free blocks %d,
->&-1248	belong		0		TIME optimization
->&-1248	belong		1		SPACE optimization
-
-66908	belong		0x19540119	Unix Fast File system [v2] (big-endian)
->&-1164	string		x		last mounted on %s,
->&-696	string		>\0		volume name %s,
->&-304	beqldate	x		last written at %s,
->&-1167	byte		x		clean flag %d,
->&-1168	byte		x		readonly flag %d,
->&-296	bequad		x		number of blocks %lld,
->&-288	bequad		x		number of data blocks %lld,
->&-1332	belong		x		number of cylinder groups %d,
->&-1328	belong		x		block size %d,
->&-1324	belong		x		fragment size %d,
->&-180	belong		x		average file size %d,
->&-176	belong		x		average number of files in dir %d,
->&-272	bequad		x		pending blocks to free %lld,
->&-264	belong		x		pending inodes to free %ld,
->&-664	bequad		x		system-wide uuid %0llx,
->&-1316	belong		x		minimum percentage of free blocks %d,
->&-1248	belong		0		TIME optimization
->&-1248	belong		1		SPACE optimization
-
-# ext2/ext3 filesystems - Andreas Dilger <adilger@dilger.ca>
-# ext4 filesystem - Eric Sandeen <sandeen@sandeen.net>
-# volume label and UUID Russell Coker
-# http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
-0x438   leshort         0xEF53          Linux
->0x44c  lelong          x               rev %d
->0x43e  leshort         x               \b.%d
-# No journal?  ext2
->0x45c  lelong          ^0x0000004      ext2 filesystem data
->>0x43a leshort         ^0x0000001      (mounted or unclean)
-# Has a journal?  ext3 or ext4
->0x45c  lelong          &0x0000004
-#  and small INCOMPAT?
->>0x460 lelong          <0x0000040
-#   and small RO_COMPAT?
->>>0x464 lelong         <0x0000008      ext3 filesystem data
-#   else large RO_COMPAT?
->>>0x464 lelong         >0x0000007      ext4 filesystem data
-#  else large INCOMPAT?
->>0x460	lelong          >0x000003f      ext4 filesystem data
->0x468	belong		x		\b, UUID=%08x
->0x46c	beshort		x		\b-%04x
->0x46e	beshort		x		\b-%04x
->0x470	beshort		x		\b-%04x
->0x472	belong		x		\b-%08x
->0x476	beshort		x		\b%04x
->0x478	string		>0		\b, volume name "%s"
-# General flags for any ext* fs
->0x460	lelong          &0x0000004      (needs journal recovery)
->0x43a	leshort         &0x0000002      (errors)
-# INCOMPAT flags
->0x460	lelong          &0x0000001      (compressed)
-#>0x460	lelong          &0x0000002      (filetype)
-#>0x460	lelong          &0x0000010      (meta bg)
->0x460	lelong          &0x0000040      (extents)
->0x460	lelong          &0x0000080      (64bit)
-#>0x460	lelong          &0x0000100      (mmp)
-#>0x460	lelong          &0x0000200      (flex bg)
-# RO_INCOMPAT flags
-#>0x464	lelong          &0x0000001      (sparse super)
->0x464	lelong          &0x0000002      (large files)
->0x464	lelong          &0x0000008      (huge files)
-#>0x464	lelong          &0x0000010      (gdt checksum)
-#>0x464	lelong          &0x0000020      (many subdirs)
-#>0x463	lelong          &0x0000040      (extra isize)
-
-# SGI disk labels - Nathan Scott <nathans@debian.org>
-0	belong		0x0BE5A941	SGI disk label (volume header)
-
-# SGI XFS filesystem - Nathan Scott <nathans@debian.org>
-0	belong		0x58465342	SGI XFS filesystem data
->0x4	belong		x		(blksz %d,
->0x68	beshort		x		inosz %d,
->0x64	beshort		^0x2004		v1 dirs)
->0x64	beshort		&0x2004		v2 dirs)
-
-############################################################################
-# Minix-ST kernel floppy
-0x800	belong		0x46fc2700	Atari-ST Minix kernel image
->19	string		\240\5\371\5\0\011\0\2\0	\b, 720k floppy
->19	string		\320\2\370\5\0\011\0\1\0	\b, 360k floppy
-
-############################################################################
-# Hmmm, is this a better way of detecting _standard_ floppy images ?
-19	string		\320\2\360\3\0\011\0\1\0	DOS floppy 360k
->0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
-19	string		\240\5\371\3\0\011\0\2\0	DOS floppy 720k
->0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
-19	string		\100\013\360\011\0\022\0\2\0	DOS floppy 1440k
->0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
-
-19	string		\240\5\371\5\0\011\0\2\0	DOS floppy 720k, IBM
->0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
-19	string		\100\013\371\5\0\011\0\2\0	DOS floppy 1440k, mkdosfs
->0x1FE	leshort		0xAA55		\b, x86 hard disk boot sector
-
-19	string		\320\2\370\5\0\011\0\1\0	Atari-ST floppy 360k
-19	string		\240\5\371\5\0\011\0\2\0	Atari-ST floppy 720k
-
-#  Valid media descriptor bytes for MS-DOS:
-#
-#     Byte   Capacity   Media Size and Type
-#     -------------------------------------------------
-#
-#     F0     2.88 MB    3.5-inch, 2-sided, 36-sector
-#     F0     1.44 MB    3.5-inch, 2-sided, 18-sector
-#     F9     720K       3.5-inch, 2-sided, 9-sector
-#     F9     1.2 MB     5.25-inch, 2-sided, 15-sector
-#     FD     360K       5.25-inch, 2-sided, 9-sector
-#     FF     320K       5.25-inch, 2-sided, 8-sector
-#     FC     180K       5.25-inch, 1-sided, 9-sector
-#     FE     160K       5.25-inch, 1-sided, 8-sector
-#     FE     250K       8-inch, 1-sided, single-density
-#     FD     500K       8-inch, 2-sided, single-density
-#     FE     1.2 MB     8-inch, 2-sided, double-density
-#     F8     -----      Fixed disk 
-#
-#     FC     xxxK       Apricot 70x1x9 boot disk.
-#
-# Originally a bitmap:
-#  xxxxxxx0	Not two sided
-#  xxxxxxx1	Double sided
-#  xxxxxx0x	Not 8 SPT
-#  xxxxxx1x	8 SPT
-#  xxxxx0xx	Not Removable drive
-#  xxxxx1xx	Removable drive
-#  11111xxx	Must be one.
-#
-# But now it's rather random:
-#  111111xx	Low density disk
-#        00	SS, Not 8 SPT
-#        01	DS, Not 8 SPT
-#        10	SS, 8 SPT
-#        11	DS, 8 SPT
-#
-#  11111001	Double density 3� floppy disk, high density 5�
-#  11110000	High density 3� floppy disk
-#  11111000	Hard disk any format
-#
-
-# CDROM Filesystems
-# Modified for UDF by gerardo.cacciari@gmail.com
-32769	string    CD001
-!:mime	application/x-iso9660-image
->38913	string   !NSR0      ISO 9660 CD-ROM filesystem data
->38913	string    NSR0      UDF filesystem data
->>38917	string    1         (version 1.0)
->>38917	string    2         (version 1.5)
->>38917	string    3         (version 2.0)
->>38917	byte     >0x33      (unknown version, ID 0x%X)
->>38917	byte     <0x31      (unknown version, ID 0x%X)
-# "application id" which appears to be used as a volume label
->32808	string    >\0       '%s'
->34816	string    \000CD001\001EL\ TORITO\ SPECIFICATION    (bootable)
-37633	string    CD001     ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
-!:mime	application/x-iso9660-image
-32776	string    CDROM     High Sierra CD-ROM filesystem data
-
-# cramfs filesystem - russell@coker.com.au
-0       lelong    0x28cd3d45      Linux Compressed ROM File System data, little endian
->4      lelong  x size %lu
->8      lelong  &1 version #2
->8      lelong  &2 sorted_dirs
->8      lelong  &4 hole_support
->32     lelong  x CRC 0x%x,
->36     lelong  x edition %lu,
->40     lelong  x %lu blocks,
->44     lelong  x %lu files
-
-0       belong    0x28cd3d45      Linux Compressed ROM File System data, big endian
->4      belong  x size %lu
->8      belong  &1 version #2
->8      belong  &2 sorted_dirs
->8      belong  &4 hole_support
->32     belong  x CRC 0x%x,
->36     belong  x edition %lu,
->40     belong  x %lu blocks,
->44     belong  x %lu files
-
-# reiserfs - russell@coker.com.au
-0x10034		string	ReIsErFs	ReiserFS V3.5
-0x10034		string	ReIsEr2Fs	ReiserFS V3.6
-0x10034		string	ReIsEr3Fs	ReiserFS V3.6.19
->0x1002c 	leshort	x		block size %d
->0x10032	leshort	&2		(mounted or unclean)
->0x10000	lelong	x		num blocks %d
->0x10040	lelong	1		tea hash
->0x10040	lelong	2		yura hash
->0x10040	lelong	3		r5 hash
-
-# JFFS - russell@coker.com.au
-0	lelong	0x34383931	Linux Journalled Flash File system, little endian
-0	belong	0x34383931	Linux Journalled Flash File system, big endian
-
-# EST flat binary format (which isn't, but anyway)
-# From: Mark Brown <broonie@sirena.org.uk>
-0	string	ESTFBINR	EST flat binary
-
-# Aculab VoIP firmware
-# From: Mark Brown <broonie@sirena.org.uk>
-0	string	VoIP\ Startup\ and	Aculab VoIP firmware
->35	string	x	format %s
-
-# u-boot/PPCBoot image file
-# From: Mark Brown <broonie@sirena.org.uk>
-0	belong	0x27051956	u-boot/PPCBoot image
->4	string  PPCBoot
->>12	string  x		version %s
-
-# JFFS2 file system
-0	leshort	0x1984		Linux old jffs2 filesystem data little endian
-0	leshort	0x1985		Linux jffs2 filesystem data little endian
-
-# Squashfs
-0	string	sqsh	Squashfs filesystem, big endian,
->28	beshort	x	version %d.
->30	beshort x	\b%d,
->28	beshort <3
->>8	belong	x	%d bytes,
->28	beshort >2
->>63	bequad x	%lld bytes,
-#>>67	belong	x	%d bytes,
->4	belong	x	%d inodes,
->28	beshort <2
->>32	beshort	x	blocksize: %d bytes,
->28	beshort >1
->>51	belong	x	blocksize: %d bytes,
->39	bedate	x	created: %s
-0	string	hsqs	Squashfs filesystem, little endian,
->28	leshort	x	version %d.
->30	leshort	x	\b%d,
->28	leshort <3
->>8	lelong	x	%d bytes,
->28	leshort >2
->>63	lequad x	%lld bytes,
-#>>63	lelong	x	%d bytes,
->4	lelong	x	%d inodes,
->28	leshort <2
->>32	leshort	x	blocksize: %d bytes,
->28	leshort >1
->>51	lelong	x	blocksize: %d bytes,
->39	ledate	x	created: %s
-
-0	string		td\000		floppy image data (TeleDisk)
-
-# AFS Dump Magic
-# From: Ty Sarna <tsarna@sarna.org> 
-0       string                  \x01\xb3\xa1\x13\x22    AFS Dump
->&0     belong                  x                       (v%d)
->>&0    byte                    0x76
->>>&0   belong                  x                       Vol %d,
->>>>&0  byte                    0x6e
->>>>>&0 string                  x                       %s
->>>>>>&1        byte            0x74
->>>>>>>&0       beshort         2
->>>>>>>>&4      bedate          x                       on: %s
->>>>>>>>&0      bedate          =0                      full dump
->>>>>>>>&0      bedate          !0                      incremental since: %s
-
-#----------------------------------------------------------
-# VMS backup savesets - gerardo.cacciari@gmail.com
-#
-4            string  \x01\x00\x01\x00\x01\x00
->(0.s+16)    string  \x01\x01
->>&(&0.b+8)  byte    0x42       OpenVMS backup saveset data
->>>40        lelong  x          (block size %d,
->>>49        string  >\0        original name '%s',
->>>2         short   1024       VAX generated)
->>>2         short   2048       AXP generated)
->>>2         short   4096       I64 generated)
-
-# Summary: Oracle Clustered Filesystem
-# Created by: Aaron Botsis <redhat@digitalmafia.org>
-8	string		OracleCFS	Oracle Clustered Filesystem,
->4	long		x		rev %d
->0	long		x		\b.%d,
->560	string		x		label: %.64s,
->136	string		x		mountpoint: %.128s
-
-# Summary: Oracle ASM tagged volume
-# Created by: Aaron Botsis <redhat@digitalmafia.org>
-32	string		ORCLDISK	Oracle ASM Volume,
->40	string		x		Disk Name: %0.12s
-32	string		ORCLCLRD	Oracle ASM Volume (cleared),
->40	string		x		Disk Name: %0.12s
-
-# Oracle Clustered Filesystem - Aaron Botsis <redhat@digitalmafia.org>
-8	string		OracleCFS	Oracle Clustered Filesystem,
->4	long		x		rev %d
->0	long		x		\b.%d,
->560	string		x		label: %.64s,
->136	string		x		mountpoint: %.128s
-
-# Oracle ASM tagged volume - Aaron Botsis <redhat@digitalmafia.org>
-32	string		ORCLDISK	Oracle ASM Volume,
->40	string		x		Disk Name: %0.12s
-32	string		ORCLCLRD	Oracle ASM Volume (cleared),
->40	string		x		Disk Name: %0.12s
-
-# Compaq/HP RILOE floppy image
-# From: Dirk Jagdmann <doj@cubic.org>
-0	string	CPQRFBLO	Compaq/HP RILOE floppy image
-
-#------------------------------------------------------------------------------
-# Files-11 On-Disk Structure (OpenVMS file system) - gerardo.cacciari@gmail.com
-# These bits come from LBN 1 (home block) of ODS-2 and ODS-5 volumes, which is
-# mapped to VBN 2 of [000000]INDEXF.SYS;1
-#
-1008    string          DECFILE11B      Files-11 On-Disk Structure
->525    byte            x               Level %d
->525    byte            x               (ODS-%d OpenVMS file system),
->984    string          x               volume label is '%-12.12s'
-
-# From: Thomas Klausner <wiz@NetBSD.org>
-# http://filext.com/file-extension/DAA
-# describes the daa file format. The magic would be:
-0	string		DAA\x0\x0\x0\x0\x0	PowerISO Direct-Access-Archive
-
-# From Albert Cahalan <acahalan@gmail.com>
-# really le32 operation,destination,payloadsize (but quite predictable)
-# 01 00 00 00 00 00 00 c0 00 02 00 00
-0	string		\1\0\0\0\0\0\0\300\0\2\0\0	Marvell Libertas firmware
-
-# From Eric Sandeen
-# GFS2
-0x10000         belong          0x01161970      GFS2 Filesystem
->0x10024        belong          x               (blocksize %d,
->0x10060        string          >\0             lockproto %s)
-
-# BTRFS
-0x10040         string          _BHRfS_M        BTRFS Filesystem
->0x1012b        string          >\0             (label "%s",
->0x10090        lelong          x               sectorsize %d,
->0x10094        lelong          x               nodesize %d,
->0x10098        lelong          x               leafsize %d)
-
-
-# dvdisaster's .ecc
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-0	string	*dvdisaster*	dvdisaster error correction file
-
-# Type:	CROM filesystem
-# From:	Werner Fink <werner@suse.de>
-0	string	CROMFS	CROMFS
->6	string	>\0	\b version %2.2s,
->8	ulequad	>0	\b block data at %lld,
->16	ulequad	>0	\b fblock table at %lld,
->24	ulequad	>0	\b inode table at %lld,
->32	ulequad	>0	\b root at %lld,
->40	ulelong	>0	\b fblock size = %ld,
->44	ulelong	>0	\b block size = %ld,
->48	ulequad	>0	\b bytes = %lld
-
-#------------------------------------------------------------------------------
-# flash:	file(1) magic for Macromedia Flash file format
-#
-# See
-#
-#	http://www.macromedia.com/software/flash/open/
-#
-0	string		FWS		Macromedia Flash data,
->3	byte		x		version %d
-!:mime	application/x-shockwave-flash
-0	string		CWS		Macromedia Flash data (compressed),
-!:mime	application/x-shockwave-flash
->3	byte		x		version %d
-# From: Cal Peake <cp@absolutedigital.net>
-0	string		FLV		Macromedia Flash Video
-!:mime	video/x-flv
-
-#
-# From Dave Wilson
-0	string AGD4\xbe\xb8\xbb\xcb\x00	Macromedia Freehand 9 Document
-#------------------------------------------------------------------------------
-# fonts:  file(1) magic for font data
-#
-0	search/1	FONT		ASCII vfont text
-0	short		0436		Berkeley vfont data
-0	short		017001		byte-swapped Berkeley vfont data
-
-# PostScript fonts (must precede "printer" entries), quinlan@yggdrasil.com
-0	string		%!PS-AdobeFont-1.	PostScript Type 1 font text
->20	string		>\0			(%s)
-6	string		%!PS-AdobeFont-1.	PostScript Type 1 font program data
-
-# X11 font files in SNF (Server Natural Format) format
-0	belong		00000004		X11 SNF font data, MSB first
-0	lelong		00000004		X11 SNF font data, LSB first
-
-# X11 Bitmap Distribution Format, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	search/1	STARTFONT\ 		X11 BDF font text
-
-# X11 fonts, from Daniel Quinlan (quinlan@yggdrasil.com)
-# PCF must come before SGI additions ("MIPSEL MIPS-II COFF" collides)
-0	string		\001fcp			X11 Portable Compiled Font data
->12	byte		0x02			\b, LSB first
->12	byte		0x0a			\b, MSB first
-0	string		D1.0\015		X11 Speedo font data
-
-#------------------------------------------------------------------------------
-# FIGlet fonts and controlfiles
-# From figmagic supplied with Figlet version 2.2
-# "David E. O'Brien" <obrien@FreeBSD.ORG>
-0	string		flf		FIGlet font
->3	string		>2a		version %-2.2s
-0	string		flc		FIGlet controlfile
->3	string		>2a		version %-2.2s
-
-# libGrx graphics lib fonts, from Albert Cahalan (acahalan@cs.uml.edu)
-# Used with djgpp (DOS Gnu C++), sometimes Linux or Turbo C++
-0	belong		0x14025919	libGrx font data,
->8	leshort		x		%dx
->10	leshort		x		\b%d
->40	string		x		%s
-# Misc. DOS VGA fonts, from Albert Cahalan (acahalan@cs.uml.edu)
-0	belong		0xff464f4e	DOS code page font data collection
-7	belong		0x00454741	DOS code page font data
-7	belong		0x00564944	DOS code page font data (from Linux?)
-4098	string		DOSFONT		DOSFONT2 encrypted font data
-
-# downloadable fonts for browser (prints type) anthon@mnt.org
-0	string		PFR1		PFR1 font
->102	string		>0		\b: %s
-
-# True Type fonts
-0	string	\000\001\000\000\000	TrueType font data
-
-0	string		\007\001\001\000Copyright\ (c)\ 199	Adobe Multiple Master font
-0	string		\012\001\001\000Copyright\ (c)\ 199	Adobe Multiple Master font
-
-0	string		ttcf		TrueType font collection data
-
-# Opentype font data from Avi Bercovich
-0	string		OTTO		OpenType font data 
-
-# Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu 
-0	string		SplineFontDB:	Spline Font Database 
->14	string		x		version %s
-# FORTRAN source
-0	regex/100	\^[Cc][\ \t]	FORTRAN program
-!:mime	text/x-fortran
-#------------------------------------------------------------------------------
-# frame:  file(1) magic for FrameMaker files
-#
-# This stuff came on a FrameMaker demo tape, most of which is
-# copyright, but this file is "published" as witness the following:
-#
-# Note that this is the Framemaker Maker Interchange Format, not the
-# Normal format which would be application/vnd.framemaker.
-#
-0	string		\<MakerFile	FrameMaker document
-!:mime	application/x-mif
->11	string		5.5		 (5.5
->11	string		5.0		 (5.0
->11	string		4.0		 (4.0
->11	string		3.0		 (3.0
->11	string		2.0		 (2.0
->11	string		1.0		 (1.0
->14	byte		x		  %c)
-0	string		\<MIFFile	FrameMaker MIF (ASCII) file
-!:mime	application/x-mif
->9	string		4.0		 (4.0)
->9	string		3.0		 (3.0)
->9	string		2.0		 (2.0)
->9	string		1.0		 (1.x)
-0	search/1	\<MakerDictionary	FrameMaker Dictionary text
-!:mime	application/x-mif
->17	string		3.0		 (3.0)
->17	string		2.0		 (2.0)
->17	string		1.0		 (1.x)
-0	string		\<MakerScreenFont	FrameMaker Font file
-!:mime	application/x-mif
->17	string		1.01		 (%s)
-0	string		\<MML		FrameMaker MML file
-!:mime	application/x-mif
-0	string		\<BookFile	FrameMaker Book file
-!:mime	application/x-mif
->10	string		3.0		 (3.0
->10	string		2.0		 (2.0
->10	string		1.0		 (1.0
->13	byte		x		  %c)
-# XXX - this book entry should be verified, if you find one, uncomment this
-#0	string		\<Book\ 	FrameMaker Book (ASCII) file
-#!:mime	application/x-mif
-#>6	string		3.0		 (3.0)
-#>6	string		2.0		 (2.0)
-#>6	string		1.0		 (1.0)
-0	string		\<Maker	Intermediate Print File	FrameMaker IPL file
-!:mime	application/x-mif
-
-#------------------------------------------------------------------------------
-# freebsd:  file(1) magic for FreeBSD objects
-#
-# All new-style FreeBSD magic numbers are in host byte order (i.e.,
-# little-endian on x86).
-#
-# XXX - this comes from the file "freebsd" in a recent FreeBSD version of
-# "file"; it, and the NetBSD stuff in "netbsd", appear to use different
-# schemes for distinguishing between executable images, shared libraries,
-# and object files.
-#
-# FreeBSD says:
-#
-#    Regardless of whether it's pure, demand-paged, or none of the
-#    above:
-#
-#	if the entry point is < 4096, then it's a shared library if
-#	the "has run-time loader information" bit is set, and is
-#	position-independent if the "is position-independent" bit
-#	is set;
-#
-#	if the entry point is >= 4096 (or >4095, same thing), then it's
-#	an executable, and is dynamically-linked if the "has run-time
-#	loader information" bit is set.
-#
-# On x86, NetBSD says:
-#
-#    If it's neither pure nor demand-paged:
-#
-#	if it has the "has run-time loader information" bit set, it's
-#	a dynamically-linked executable;
-#
-#	if it doesn't have that bit set, then:
-#
-#	    if it has the "is position-independent" bit set, it's
-#	    position-independent;
-#
-#	    if the entry point is non-zero, it's an executable, otherwise
-#	    it's an object file.
-#
-#    If it's pure:
-#
-#	if it has the "has run-time loader information" bit set, it's
-#	a dynamically-linked executable, otherwise it's just an
-#	executable.
-#
-#    If it's demand-paged:
-#
-#	if it has the "has run-time loader information" bit set,
-#	then:
-#
-#	    if the entry point is < 4096, it's a shared library;
-#
-#	    if the entry point is = 4096 or > 4096 (i.e., >= 4096),
-#	    it's a dynamically-linked executable);
-#
-#	if it doesn't have the "has run-time loader information" bit
-#	set, then it's just an executable.
-#
-# (On non-x86, NetBSD does much the same thing, except that it uses
-# 8192 on 68K - except for "68k4k", which is presumably "68K with 4K
-# pages - SPARC, and MIPS, presumably because Sun-3's and Sun-4's
-# had 8K pages; dunno about MIPS.)
-#
-# I suspect the two will differ only in perverse and uninteresting cases
-# ("shared" libraries that aren't demand-paged and whose pages probably
-# won't actually be shared, executables with entry points <4096).
-#
-# I leave it to those more familiar with FreeBSD and NetBSD to figure out
-# what the right answer is (although using ">4095", FreeBSD-style, is
-# probably better than separately checking for "=4096" and ">4096",
-# NetBSD-style).  (The old "netbsd" file analyzed FreeBSD demand paged
-# executables using the NetBSD technique.)
-#
-0	lelong&0377777777	041400407	FreeBSD/i386
->20	lelong			<4096
->>3	byte&0xC0		&0x80		shared library
->>3	byte&0xC0		0x40		PIC object
->>3	byte&0xC0		0x00		object
->20	lelong			>4095
->>3	byte&0x80		0x80		dynamically linked executable
->>3	byte&0x80		0x00		executable
->16	lelong			>0		not stripped
-
-0	lelong&0377777777	041400410	FreeBSD/i386 pure
->20	lelong			<4096
->>3	byte&0xC0		&0x80		shared library
->>3	byte&0xC0		0x40		PIC object
->>3	byte&0xC0		0x00		object
->20	lelong			>4095
->>3	byte&0x80		0x80		dynamically linked executable
->>3	byte&0x80		0x00		executable
->16	lelong			>0		not stripped
-
-0	lelong&0377777777	041400413	FreeBSD/i386 demand paged
->20	lelong			<4096
->>3	byte&0xC0		&0x80		shared library
->>3	byte&0xC0		0x40		PIC object
->>3	byte&0xC0		0x00		object
->20	lelong			>4095
->>3	byte&0x80		0x80		dynamically linked executable
->>3	byte&0x80		0x00		executable
->16	lelong			>0		not stripped
-
-0	lelong&0377777777	041400314	FreeBSD/i386 compact demand paged
->20	lelong			<4096
->>3	byte&0xC0		&0x80		shared library
->>3	byte&0xC0		0x40		PIC object
->>3	byte&0xC0		0x00		object
->20	lelong			>4095
->>3	byte&0x80		0x80		dynamically linked executable
->>3	byte&0x80		0x00		executable
->16	lelong			>0		not stripped
-
-# XXX gross hack to identify core files
-# cores start with a struct tss; we take advantage of the following:
-# byte 7:     highest byte of the kernel stack pointer, always 0xfe
-#      8/9:   kernel (ring 0) ss value, always 0x0010
-#      10 - 27: ring 1 and 2 ss/esp, unused, thus always 0
-#      28:    low order byte of the current PTD entry, always 0 since the
-#             PTD is page-aligned
-#
-7	string	\357\020\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0	FreeBSD/i386 a.out core file
->1039	string	>\0	from '%s'
-
-# /var/run/ld.so.hints
-# What are you laughing about?
-0	lelong			011421044151	ld.so hints file (Little Endian
->4	lelong			>0		\b, version %d)
->4	belong			<1		\b)
-0	belong			011421044151	ld.so hints file (Big Endian
->4	belong			>0		\b, version %d)
->4	belong			<1		\b)
-
-#
-# Files generated by FreeBSD scrshot(1)/vidcontrol(1) utilities
-#
-0	string	SCRSHOT_	scrshot(1) screenshot,
->8	byte	x		version %d,
->9	byte	2		%d bytes in header,
->>10	byte	x		%d chars wide by
->>11	byte	x		%d chars high
-
-#------------------------------------------------------------------------------
-# fsav:  file(1) magic for datafellows fsav virus definition files
-# Anthon van der Neut (anthon@mnt.org)
-
-# ftp://ftp.f-prot.com/pub/{macrdef2.zip,nomacro.def}
-0	beshort		0x1575		fsav macro virus signatures
->8	leshort		>0		(%d-
->11	byte		>0		\b%02d-
->10	byte		>0		\b%02d)
-# ftp://ftp.f-prot.com/pub/sign.zip
-#10	ubyte		<12
-#>9	ubyte		<32
-#>>8	ubyte		0x0a
-#>>>12	ubyte		0x07
-#>>>>11	uleshort	>0		fsav DOS/Windows virus signatures (%d-
-#>>>>10	byte		0		\b01-
-#>>>>10	byte		1		\b02-
-#>>>>10	byte		2		\b03-
-#>>>>10	byte		3		\b04-
-#>>>>10	byte		4		\b05-
-#>>>>10	byte		5		\b06-
-#>>>>10	byte		6		\b07-
-#>>>>10	byte		7		\b08-
-#>>>>10	byte		8		\b09-
-#>>>>10	byte		9		\b10-
-#>>>>10	byte		10		\b11-
-#>>>>10	byte		11		\b12-
-#>>>>9	ubyte		>0		\b%02d)
-# ftp://ftp.f-prot.com/pub/sign2.zip
-#0	ubyte		0x62		
-#>1	ubyte		0xF5		
-#>>2	ubyte		0x1		
-#>>>3	ubyte		0x1		
-#>>>>4	ubyte		0x0e		
-#>>>>>13		ubyte	>0		fsav virus signatures
-#>>>>>>11	ubyte	x		size 0x%02x
-#>>>>>>12	ubyte	x		\b%02x
-#>>>>>>13	ubyte	x		\b%02x bytes
-
-# Joerg Jenderek: joerg dot jenderek at web dot de
-# http://www.clamav.net/doc/latest/html/node45.html
-# .cvd files start with a 512 bytes colon separated header
-# ClamAV-VDB:buildDate:version:signaturesNumbers:functionalityLevelRequired:MD5:Signature:builder:buildTime
-# + gzipped tarball files
-0	string		ClamAV-VDB:	
->11	string		>\0		Clam AntiVirus database %-.23s
->>34	string		:		
->>>35		string		!:	\b, version 
->>>>35		string		x 	\b%-.1s
->>>>>36		string 		!:	
->>>>>>36	string		x 	\b%-.1s
->>>>>>>37	string		!:	
->>>>>>>>37	string		x 	\b%-.1s
->>>>>>>>>38	string		!:	
->>>>>>>>>>38	string		x 	\b%-.1s
->512	string		\037\213	\b, gzipped
->769	string		ustar\0		\b, tarred
-
-# Type: Grisoft AVG AntiVirus
-# From: David Newgas <david@newgas.net>
-0	string	AVG7_ANTIVIRUS_VAULT_FILE	AVG 7 Antivirus vault file data
-#------------------------------------------------------------------------------
-# games:  file(1) for games
-
-# Fabio Bonelli <fabiobonelli@libero.it>
-# Quake II - III data files
-0       string  IDP2        	Quake II 3D Model file,
->20     long    x               %lu skin(s),
->8      long    x               (%lu x
->12     long    x 		%lu),
->40     long    x               %lu frame(s),
->16     long    x               Frame size %lu bytes,
->24     long  	x               %lu vertices/frame,
->28     long    x            	%lu texture coordinates,
->32     long    x               %lu triangles/frame
-
-0       string  IBSP            Quake
->4      long    0x26            II Map file (BSP)
->4      long    0x2E      	III Map file (BSP)
-
-0       string  IDS2            Quake II SP2 sprite file
-
-#---------------------------------------------------------------------------
-# Doom and Quake
-# submitted by Nicolas Patrois
-
-0       string  \xcb\x1dBoom\xe6\xff\x03\x01    Boom or linuxdoom demo
-# some doom lmp files don't match, I've got one beginning with \x6d\x02\x01\x01
-
-24      string  LxD\ 203        Linuxdoom save
->0      string  x       , name=%s
->44     string  x       , world=%s
-
-# Quake
-
-0       string  PACK    Quake I or II world or extension
->8	lelong	>0	\b, %d entries
-
-#0       string  -1\x0a  Quake I demo
-#>30     string  x        version %.4s
-#>61     string  x        level %s       
-
-#0       string  5\x0a   Quake I save
-
-# The levels
-
-# Quake 1
-
-0	string	5\x0aIntroduction             Quake I save: start Introduction
-0	string	5\x0athe_Slipgate_Complex     Quake I save: e1m1 The slipgate complex
-0	string	5\x0aCastle_of_the_Damned     Quake I save: e1m2 Castle of the damned
-0	string	5\x0athe_Necropolis           Quake I save: e1m3 The necropolis
-0	string	5\x0athe_Grisly_Grotto        Quake I save: e1m4 The grisly grotto
-0	string	5\x0aZiggurat_Vertigo         Quake I save: e1m8 Ziggurat vertigo (secret)
-0	string	5\x0aGloom_Keep               Quake I save: e1m5 Gloom keep
-0	string	5\x0aThe_Door_To_Chthon       Quake I save: e1m6 The door to Chthon
-0	string	5\x0aThe_House_of_Chthon      Quake I save: e1m7 The house of Chthon
-0	string	5\x0athe_Installation         Quake I save: e2m1 The installation
-0	string	5\x0athe_Ogre_Citadel         Quake I save: e2m2 The ogre citadel
-0	string	5\x0athe_Crypt_of_Decay       Quake I save: e2m3 The crypt of decay (dopefish lives!)
-0	string	5\x0aUnderearth               Quake I save: e2m7 Underearth (secret)
-0	string	5\x0athe_Ebon_Fortress        Quake I save: e2m4 The ebon fortress
-0	string	5\x0athe_Wizard's_Manse       Quake I save: e2m5 The wizard's manse
-0	string	5\x0athe_Dismal_Oubliette     Quake I save: e2m6 The dismal oubliette
-0	string	5\x0aTermination_Central      Quake I save: e3m1 Termination central
-0	string	5\x0aVaults_of_Zin            Quake I save: e3m2 Vaults of Zin
-0	string	5\x0athe_Tomb_of_Terror       Quake I save: e3m3 The tomb of terror
-0	string	5\x0aSatan's_Dark_Delight     Quake I save: e3m4 Satan's dark delight
-0	string	5\x0athe_Haunted_Halls        Quake I save: e3m7 The haunted halls (secret)
-0	string	5\x0aWind_Tunnels             Quake I save: e3m5 Wind tunnels
-0	string	5\x0aChambers_of_Torment      Quake I save: e3m6 Chambers of torment
-0	string	5\x0athe_Sewage_System        Quake I save: e4m1 The sewage system
-0	string	5\x0aThe_Tower_of_Despair     Quake I save: e4m2 The tower of despair
-0	string	5\x0aThe_Elder_God_Shrine     Quake I save: e4m3 The elder god shrine
-0	string	5\x0athe_Palace_of_Hate       Quake I save: e4m4 The palace of hate
-0	string	5\x0aHell's_Atrium            Quake I save: e4m5 Hell's atrium
-0	string	5\x0athe_Nameless_City        Quake I save: e4m8 The nameless city (secret)
-0	string	5\x0aThe_Pain_Maze            Quake I save: e4m6 The pain maze
-0	string	5\x0aAzure_Agony              Quake I save: e4m7 Azure agony
-0	string	5\x0aShub-Niggurath's_Pit     Quake I save: end Shub-Niggurath's pit
-
-# Quake DeathMatch levels
-
-0	string	5\x0aPlace_of_Two_Deaths	 Quake I save: dm1 Place of two deaths
-0	string	5\x0aClaustrophobopolis		 Quake I save: dm2 Claustrophobopolis
-0	string	5\x0aThe_Abandoned_Base		 Quake I save: dm3 The abandoned base
-0	string	5\x0aThe_Bad_Place		 Quake I save: dm4 The bad place
-0	string	5\x0aThe_Cistern		 Quake I save: dm5 The cistern
-0	string	5\x0aThe_Dark_Zone		 Quake I save: dm6 The dark zone
-
-# Scourge of Armagon
-
-0	string	5\x0aCommand_HQ               Quake I save: start Command HQ
-0	string	5\x0aThe_Pumping_Station      Quake I save: hip1m1 The pumping station
-0	string	5\x0aStorage_Facility         Quake I save: hip1m2 Storage facility
-0	string	5\x0aMilitary_Complex         Quake I save: hip1m5 Military complex (secret)
-0	string	5\x0athe_Lost_Mine            Quake I save: hip1m3 The lost mine
-0	string	5\x0aResearch_Facility        Quake I save: hip1m4 Research facility
-0	string	5\x0aAncient_Realms           Quake I save: hip2m1 Ancient realms
-0	string	5\x0aThe_Gremlin's_Domain     Quake I save: hip2m6 The gremlin's domain (secret)
-0	string	5\x0aThe_Black_Cathedral      Quake I save: hip2m2 The black cathedral
-0	string	5\x0aThe_Catacombs            Quake I save: hip2m3 The catacombs
-0	string	5\x0athe_Crypt__              Quake I save: hip2m4 The crypt
-0	string	5\x0aMortum's_Keep            Quake I save: hip2m5 Mortum's keep
-0	string	5\x0aTur_Torment              Quake I save: hip3m1 Tur torment
-0	string	5\x0aPandemonium              Quake I save: hip3m2 Pandemonium
-0	string	5\x0aLimbo                    Quake I save: hip3m3 Limbo
-0	string	5\x0athe_Edge_of_Oblivion     Quake I save: hipdm1 The edge of oblivion (secret)
-0	string	5\x0aThe_Gauntlet             Quake I save: hip3m4 The gauntlet
-0	string	5\x0aArmagon's_Lair           Quake I save: hipend Armagon's lair
-
-# Malice
-
-0	string	5\x0aThe_Academy      Quake I save: start The academy
-0	string	5\x0aThe_Lab          Quake I save: d1 The lab
-0	string	5\x0aArea_33          Quake I save: d1b Area 33
-0	string	5\x0aSECRET_MISSIONS  Quake I save: d3b Secret missions
-0	string	5\x0aThe_Hospital     Quake I save: d10 The hospital (secret)
-0	string	5\x0aThe_Genetics_Lab Quake I save: d11 The genetics lab (secret)
-0	string	5\x0aBACK_2_MALICE    Quake I save: d4b Back to Malice
-0	string	5\x0aArea44           Quake I save: d1c Area 44
-0	string	5\x0aTakahiro_Towers  Quake I save: d2 Takahiro towers
-0	string	5\x0aA_Rat's_Life     Quake I save: d3 A rat's life
-0	string	5\x0aInto_The_Flood   Quake I save: d4 Into the flood
-0	string	5\x0aThe_Flood        Quake I save: d5 The flood
-0	string	5\x0aNuclear_Plant    Quake I save: d6 Nuclear plant
-0	string	5\x0aThe_Incinerator_Plant    Quake I save: d7 The incinerator plant
-0	string	5\x0aThe_Foundry              Quake I save: d7b The foundry
-0	string	5\x0aThe_Underwater_Base      Quake I save: d8 The underwater base
-0	string	5\x0aTakahiro_Base            Quake I save: d9 Takahiro base
-0	string	5\x0aTakahiro_Laboratories    Quake I save: d12 Takahiro laboratories
-0	string	5\x0aStayin'_Alive    Quake I save: d13 Stayin' alive
-0	string	5\x0aB.O.S.S._HQ      Quake I save: d14 B.O.S.S. HQ
-0	string	5\x0aSHOWDOWN!        Quake I save: d15 Showdown!
-
-# Malice DeathMatch levels
-
-0	string	5\x0aThe_Seventh_Precinct	 Quake I save: ddm1 The seventh precinct
-0	string	5\x0aSub_Station		 Quake I save: ddm2 Sub station
-0	string	5\x0aCrazy_Eights!		 Quake I save: ddm3 Crazy eights!
-0	string	5\x0aEast_Side_Invertationa	 Quake I save: ddm4 East side invertationa
-0	string	5\x0aSlaughterhouse		 Quake I save: ddm5 Slaughterhouse
-0	string	5\x0aDOMINO			 Quake I save: ddm6 Domino
-0	string	5\x0aSANDRA'S_LADDER		 Quake I save: ddm7 Sandra's ladder
-
-
-0	string	MComprHD	MAME CHD compressed hard disk image,
->12	belong	x		version %lu
-
-# doom - submitted by Jon Dowland
-
-0	string	=IWAD		doom main IWAD data
->4	lelong	x		containing %d lumps
-0	string	=PWAD		doom patch PWAD data
->4	lelong	x		containing %d lumps
-
-
-# Summary: Warcraft 3 save
-# Extension: .w3g
-# Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
-0	string		Warcraft\ III\ recorded\ game	%s
-
-
-# Summary: Warcraft 3 map
-# Extension: .w3m
-# Created by: "Nelson A. de Oliveira" <naoliv@gmail.com>
-0	string		HM3W		Warcraft III map file
-
-
-# Summary: SGF Smart Game Format
-# Extension: .sgf
-# Reference: http://www.red-bean.com/sgf/
-# Created by: Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
-# Modified by (1): Abel Cheung (regex, more game format)
-# FIXME: Some games don't have GM (game type)
-0	regex		\\(;.*GM\\[[0-9]{1,2}\\]	Smart Game Format
->2	search/0x200	GM[
->>&0	string		1]	(Go)
->>&0	string		2]	(Othello)
->>&0	string		3]	(chess)
->>&0	string		4]	(Gomoku+Renju)
->>&0	string		5]	(Nine Men's Morris)
->>&0	string		6]	(Backgammon)
->>&0	string		7]	(Chinese chess)
->>&0	string		8]	(Shogi)
->>&0	string		9]	(Lines of Action)
->>&0	string		10]	(Ataxx)
->>&0	string		11]	(Hex)
->>&0	string		12]	(Jungle)
->>&0	string		13]	(Neutron)
->>&0	string		14]	(Philosopher's Football)
->>&0	string		15]	(Quadrature)
->>&0	string		16]	(Trax)
->>&0	string		17]	(Tantrix)
->>&0	string		18]	(Amazons)
->>&0	string		19]	(Octi)
->>&0	string		20]	(Gess)
->>&0	string		21]	(Twixt)
->>&0	string		22]	(Zertz)
->>&0	string		23]	(Plateau)
->>&0	string		24]	(Yinsh)
->>&0	string		25]	(Punct)
->>&0	string		26]	(Gobblet)
->>&0	string		27]	(hive)
->>&0	string		28]	(Exxit)
->>&0	string		29]	(Hnefatal)
->>&0	string		30]	(Kuba)
->>&0	string		31]	(Tripples)
->>&0	string		32]	(Chase)
->>&0	string		33]	(Tumbling Down)
->>&0	string		34]	(Sahara)
->>&0	string		35]	(Byte)
->>&0	string		36]	(Focus)
->>&0	string		37]	(Dvonn)
->>&0	string		38]	(Tamsk)
->>&0	string		39]	(Gipf)
->>&0	string		40]	(Kropki)
-
-
-# Summary: Civilization 4 video
-# Extension: .bik
-# Created by: Abel Cheung <abelcheung@gmail.com>
-0	string	BIKi	Civilization 4 Video
-
-
-##############################################
-# NetImmerse/Gamebryo game engine entries
-
-# Summary: Gamebryo game engine file
-# Extension: .nif, .kf
-# Created by: Abel Cheung <abelcheung@gmail.com>
-0		string		Gamebryo\ File\ Format,\ Version\ 	Gamebryo game engine file
->&0		regex		[0-9a-z.]+				\b, version %s
-
-# Summary: Gamebryo game engine file
-# Extension: .kfm
-# Created by: Abel Cheung <abelcheung@gmail.com>
-0		string		;Gamebryo\ KFM\ File\ Version\ 		Gamebryo game engine animation File
->&0		regex		[0-9a-z.]+				\b, version %s
-
-# Summary: NetImmerse game engine file
-# Extension .nif
-# Created by: Abel Cheung <abelcheung@gmail.com>
-0		string		NetImmerse\ File\ Format,\ Versio		
->&0		string		n\ 					NetImmerse game engine file
->>&0		regex		[0-9a-z.]+				\b, version %s
-
-# Type:	SGF Smart Game Format
-# URL:	http://www.red-bean.com/sgf/
-# From:	Eduardo Sabbatella <eduardo_sabbatella@yahoo.com.ar>
-2	regex/c	\\(;.*GM\\[[0-9]{1,2}\\]	Smart Game Format
->2	regex/c	GM\\[1\\]			- Go Game
->2	regex/c	GM\\[6\\]			- BackGammon Game
->2	regex/c	GM\\[11\\]			- Hex Game
->2	regex/c	GM\\[18\\]			- Amazons Game
->2	regex/c	GM\\[19\\]			- Octi Game
->2	regex/c	GM\\[20\\]			- Gess Game
->2	regex/c	GM\\[21\\]			- twix Game
-
-#------------------------------------------------------------------------------
-# gcc:  file(1) magic for GCC special files
-#
-0	string		gpch		GCC precompiled header
-
-# The version field is annoying.  It's 3 characters, not zero-terminated.
->5	byte		x			(version %c
->6	byte		x			\b%c
->7	byte		x			\b%c)
-
-# 67 = 'C', 111 = 'o', 43 = '+', 79 = 'O'
->4	byte		67			for C
->4	byte		111			for Objective C
->4	byte		43			for C++
->4	byte		79			for Objective C++
-
-#------------------------------------------------------------------------------
-# GEOS files (Vidar Madsen, vidar@gimp.org)
-# semi-commonly used in embedded and handheld systems.
-0	belong	0xc745c153	GEOS
->40	byte	1	executable
->40	byte	2	VMFile
->40	byte	3	binary
->40	byte	4	directory label
->40	byte	<1	unknown
->40	byte	>4	unknown
->4	string	>\0	\b, name "%s"
-#>44	short	x	\b, version %d
-#>46	short	x	\b.%d
-#>48	short	x	\b, rev %d
-#>50	short	x	\b.%d
-#>52	short	x	\b, proto %d
-#>54	short	x	\br%d
-#>168	string	>\0	\b, copyright "%s"
-#------------------------------------------------------------------------------
-# GIMP Gradient: file(1) magic for the GIMP's gradient data files
-# by Federico Mena <federico@nuclecu.unam.mx>
-
-0       string          GIMP\ Gradient  GIMP gradient data
-
-#------------------------------------------------------------------------------
-# XCF:  file(1) magic for the XCF image format used in the GIMP developed
-#       by Spencer Kimball and Peter Mattis
-#       ('Bucky' LaDieu, nega@vt.edu)
-
-0	string		gimp\ xcf	GIMP XCF image data,
-!:mime	image/x-xcf
->9	string		file		version 0,
->9	string		v		version
->>10	string		>\0		%s,
->14	belong		x		%lu x
->18	belong		x		%lu,
->22     belong          0               RGB Color
->22     belong          1               Greyscale
->22     belong          2               Indexed Color
->22	belong		>2		Unknown Image Type.
-
-#------------------------------------------------------------------------------
-# XCF:  file(1) magic for the patterns used in the GIMP, developed
-#       by Spencer Kimball and Peter Mattis
-#       ('Bucky' LaDieu, nega@vt.edu)
-
-20      string          GPAT            GIMP pattern data,
->24     string          x               %s
-
-#------------------------------------------------------------------------------
-# XCF:  file(1) magic for the brushes used in the GIMP, developed
-#       by Spencer Kimball and Peter Mattis
-#       ('Bucky' LaDieu, nega@vt.edu)
-
-20      string          GIMP            GIMP brush data
-
-# GIMP Curves File
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-0	string	#\040GIMP\040Curves\040File	GIMP curve file
-# GNOME keyring
-# Contributed by Josh Triplett
-# FIXME: Could be simplified if pstring supported two-byte counts
-0         string   GnomeKeyring\n\r\0\n GNOME keyring
->&0       ubyte    0                    \b, major version 0
->>&0      ubyte    0                    \b, minor version 0
->>>&0     ubyte    0                    \b, crypto type 0 (AEL)
->>>&0     ubyte    >0                   \b, crypto type %hhu (unknown)
->>>&1     ubyte    0                    \b, hash type 0 (MD5)
->>>&1     ubyte    >0                   \b, hash type %hhu (unknown)
->>>&2     ubelong  0xFFFFFFFF           \b, name NULL
->>>&2     ubelong  !0xFFFFFFFF
->>>>&-4   ubelong  >255                 \b, name too long for file's pstring type
->>>>&-4   ubelong  <256
->>>>>&-1  pstring  x                    \b, name "%s"
->>>>>>&0  ubeqdate x                    \b, last modified %s
->>>>>>&8  ubeqdate x                    \b, created %s
->>>>>>&16 ubelong  &1
->>>>>>>&0 ubelong  x                    \b, locked if idle for %u seconds
->>>>>>&16 ubelong  ^1                   \b, not locked if idle
->>>>>>&24 ubelong  x                    \b, hash iterations %u
->>>>>>&28 ubequad  x                    \b, salt %llu
->>>>>>&52 ubelong  x                    \b, %u item(s)
-#------------------------------------------------------------------------------
-# gnu:  file(1) magic for various GNU tools
-#
-# GNU nlsutils message catalog file format
-#
-0	string		\336\22\4\225	GNU message catalog (little endian),
->4	lelong		x		revision %d,
->8	lelong		x		%d messages
-0	string		\225\4\22\336	GNU message catalog (big endian),
->4	belong		x		revision %d,
->8	belong		x		%d messages
-# message catalogs, from Mitchum DSouza <m.dsouza@mrc-apu.cam.ac.uk>
-0	string		*nazgul*	Nazgul style compiled message catalog
->8	lelong		>0		\b, version %ld
-
-# GnuPG
-# The format is very similar to pgp
-0	string          \001gpg                 GPG key trust database
->4	byte            x                       version %d
-# Note: magic.mime had 0x8501 for the next line instead of 0x8502
-0	beshort		0x8502			GPG encrypted data
-!:mime	text/PGP # encoding: data
-
-# This magic is not particularly good, as the keyrings don't have true
-# magic. Nevertheless, it covers many keyrings.
-0       beshort         0x9901                  GPG key public ring
-!:mime	application/x-gnupg-keyring
-
-# Gnumeric spreadsheet
-# This entry is only semi-helpful, as Gnumeric compresses its files, so
-# they will ordinarily reported as "compressed", but at least -z helps
-39      string          =<gmr:Workbook           Gnumeric spreadsheet
-
-# From: James Youngman <jay@gnu.org> 
-# gnu find magic
-0	string	\0LOCATE	GNU findutils locate database data
->7	string	>\0		\b, format %s
->7	string	02		\b (frcode)
-
-# Files produced by GNU gettext
-0	long	0xDE120495		GNU-format message catalog data
-0	long	0x950412DE		GNU-format message catalog data
-
-#------------------------------------------------------------------------------
-# gnumeric:  file(1) magic for Gnumeric spreadsheet
-# This entry is only semi-helpful, as Gnumeric compresses its files, so
-# they will ordinarily reported as "compressed", but at least -z helps
-39	string	=<gmr:Workbook	Gnumeric spreadsheet
-!:mime	application/x-gnumeric
-
-#------------------------------------------------------------------------------
-# ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
-#
-# ACE/gr binary
-0	string	\000\000\0001\000\000\0000\000\000\0000\000\000\0002\000\000\0000\000\000\0000\000\000\0003		old ACE/gr binary file
->39	byte	>0			- version %c
-# ACE/gr ascii
-0	string	#\ xvgr\ parameter\ file	ACE/gr ascii file
-0	string	#\ xmgr\ parameter\ file	ACE/gr ascii file
-0	string	#\ ACE/gr\ parameter\ file	ACE/gr ascii file
-# Grace projects
-0	string	#\ Grace\ project\ file		Grace project file
->23	string	@version\  			(version
->>32	byte	>0 				%c
->>33	string	>\0 				\b.%.2s
->>35	string	>\0 				\b.%.2s)
-# ACE/gr fit description files
-0	string	#\ ACE/gr\ fit\ description\ 	ACE/gr fit description file
-# end of ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
-#------------------------------------------------------------------------------
-# graphviz:  file(1) magic for http://www.graphviz.org/
-
-# FIXME: These patterns match too generally. For example, the first
-# line matches a LaTeX file containing the word "graph" (with a {
-# following later) and the second line matches this file.
-#0	regex/100	[\r\n\t\ ]*graph[\r\n\t\ ]+.*\\{	graphviz graph text
-#!:mime	text/vnd.graphviz
-#0	regex/100	[\r\n\t\ ]*digraph[\r\n\t\ ]+.*\\{	graphviz digraph text
-#!:mime	text/vnd.graphviz
-
-#------------------------------------------------------------------------------
-# gringotts:  file(1) magic for Gringotts
-# http://devel.pluto.linux.it/projects/Gringotts/
-# author: Germano Rizzo <mano@pluto.linux.it>
-#GRG3????Y
-0	string	GRG		Gringotts data file
-#file format 1
->3	string		1		v.1, MCRYPT S2K, SERPENT crypt, SHA-256 hash, ZLib lvl.9
-#file format 2
->3	string		2		v.2, MCRYPT S2K, 
->>8	byte&0x70	0x00		RIJNDAEL-128 crypt,
->>8	byte&0x70	0x10		SERPENT crypt,
->>8	byte&0x70	0x20		TWOFISH crypt, 
->>8	byte&0x70	0x30		CAST-256 crypt,
->>8	byte&0x70	0x40		SAFER+ crypt,
->>8	byte&0x70	0x50		LOKI97 crypt,
->>8	byte&0x70	0x60		3DES crypt,
->>8	byte&0x70	0x70		RIJNDAEL-256 crypt,
->>8	byte&0x08	0x00		SHA1 hash,
->>8	byte&0x08	0x08		RIPEMD-160 hash,
->>8	byte&0x04	0x00		ZLib
->>8	byte&0x04	0x04		BZip2
->>8	byte&0x03	0x00		lvl.0
->>8	byte&0x03	0x01		lvl.3
->>8	byte&0x03	0x02		lvl.6
->>8	byte&0x03	0x03		lvl.9
-#file format 3
->3	string		3		v.3, OpenPGP S2K, 
->>8	byte&0x70	0x00		RIJNDAEL-128 crypt,
->>8	byte&0x70	0x10		SERPENT crypt,
->>8	byte&0x70	0x20		TWOFISH crypt, 
->>8	byte&0x70	0x30		CAST-256 crypt,
->>8	byte&0x70	0x40		SAFER+ crypt,
->>8	byte&0x70	0x50		LOKI97 crypt,
->>8	byte&0x70	0x60		3DES crypt,
->>8	byte&0x70	0x70		RIJNDAEL-256 crypt,
->>8	byte&0x08	0x00		SHA1 hash,
->>8	byte&0x08	0x08		RIPEMD-160 hash,
->>8	byte&0x04	0x00		ZLib
->>8	byte&0x04	0x04		BZip2
->>8	byte&0x03	0x00		lvl.0
->>8	byte&0x03	0x01		lvl.3
->>8	byte&0x03	0x02		lvl.6
->>8	byte&0x03	0x03		lvl.9
-#file format >3
->3	string		>3		v.%.1s (unknown details)
-
-#------------------------------------------------------------------------------
-# hitach-sh: file(1) magic for Hitachi Super-H
-#
-# Super-H COFF
-#
-0	beshort		0x0500		Hitachi SH big-endian COFF
->18	beshort&0x0002	=0x0000		object
->18	beshort&0x0002	=0x0002		executable
->18	beshort&0x0008	=0x0008		\b, stripped
->18	beshort&0x0008	=0x0000		\b, not stripped
-#
-0	leshort		0x0550		Hitachi SH little-endian COFF
->18	leshort&0x0002	=0x0000		object
->18	leshort&0x0002	=0x0002		executable
->18	leshort&0x0008	=0x0008		\b, stripped
->18	leshort&0x0008	=0x0000		\b, not stripped
-
-#------------------------------------------------------------------------------
-# hp:  file(1) magic for Hewlett Packard machines (see also "printer")
-#
-# XXX - somebody should figure out whether any byte order needs to be
-# applied to the "TML" stuff; I'm assuming the Apollo stuff is
-# big-endian as it was mostly 68K-based.
-#
-# I think the 500 series was the old stack-based machines, running a
-# UNIX environment atop the "SUN kernel"; dunno whether it was
-# big-endian or little-endian.
-#
-# Daniel Quinlan (quinlan@yggdrasil.com): hp200 machines are 68010 based;
-# hp300 are 68020+68881 based; hp400 are also 68k.  The following basic
-# HP magic is useful for reference, but using "long" magic is a better
-# practice in order to avoid collisions.
-#
-# Guy Harris (guy@netapp.com): some additions to this list came from
-# HP-UX 10.0's "/usr/include/sys/unistd.h" (68030, 68040, PA-RISC 1.1,
-# 1.2, and 2.0).  The 1.2 and 2.0 stuff isn't in the HP-UX 10.0
-# "/etc/magic", though, except for the "archive file relocatable library"
-# stuff, and the 68030 and 68040 stuff isn't there at all - are they not
-# used in executables, or have they just not yet updated "/etc/magic"
-# completely?
-#
-# 0	beshort		200		hp200 (68010) BSD binary
-# 0	beshort		300		hp300 (68020+68881) BSD binary
-# 0	beshort		0x20c		hp200/300 HP-UX binary
-# 0	beshort		0x20d		hp400 (68030) HP-UX binary
-# 0	beshort		0x20e		hp400 (68040?) HP-UX binary
-# 0	beshort		0x20b		PA-RISC1.0 HP-UX binary
-# 0	beshort		0x210		PA-RISC1.1 HP-UX binary
-# 0	beshort		0x211		PA-RISC1.2 HP-UX binary
-# 0	beshort		0x214		PA-RISC2.0 HP-UX binary
-
-#
-# The "misc" stuff needs a byte order; the archives look suspiciously
-# like the old 177545 archives (0xff65 = 0177545).
-#
-#### Old Apollo stuff
-0	beshort		0627		Apollo m68k COFF executable
->18	beshort		^040000		not stripped
->22	beshort		>0		- version %ld
-0	beshort		0624		apollo a88k COFF executable
->18	beshort		^040000		not stripped
->22	beshort		>0		- version %ld
-0       long            01203604016     TML 0123 byte-order format
-0       long            01702407010     TML 1032 byte-order format
-0       long            01003405017     TML 2301 byte-order format
-0       long            01602007412     TML 3210 byte-order format
-#### PA-RISC 1.1
-0	belong 		0x02100106	PA-RISC1.1 relocatable object
-0	belong 		0x02100107	PA-RISC1.1 executable
->168	belong		&0x00000004	dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x02100108	PA-RISC1.1 shared executable
->168	belong&0x4	0x4		dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x0210010b	PA-RISC1.1 demand-load executable
->168	belong&0x4	0x4		dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x0210010e	PA-RISC1.1 shared library
->96	belong		>0		- not stripped
-
-0	belong 		0x0210010d	PA-RISC1.1 dynamic load library
->96	belong		>0		- not stripped
-
-#### PA-RISC 2.0
-0	belong		0x02140106	PA-RISC2.0 relocatable object
-
-0       belong		0x02140107	PA-RISC2.0 executable
->168	belong		&0x00000004	dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0       belong		0x02140108	PA-RISC2.0 shared executable
->168	belong		&0x00000004	dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0       belong		0x0214010b	PA-RISC2.0 demand-load executable
->168	belong		&0x00000004	dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0       belong		0x0214010e	PA-RISC2.0 shared library
->96	belong		>0		- not stripped
-
-0       belong		0x0214010d	PA-RISC2.0 dynamic load library
->96	belong		>0		- not stripped
-
-#### 800
-0	belong 		0x020b0106	PA-RISC1.0 relocatable object
-
-0	belong 		0x020b0107	PA-RISC1.0 executable
->168	belong&0x4	0x4		dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x020b0108	PA-RISC1.0 shared executable
->168	belong&0x4	0x4		dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x020b010b	PA-RISC1.0 demand-load executable
->168	belong&0x4	0x4		dynamically linked
->(144)	belong		0x054ef630	dynamically linked
->96	belong		>0		- not stripped
-
-0	belong 		0x020b010e	PA-RISC1.0 shared library
->96	belong		>0		- not stripped
-
-0	belong 		0x020b010d	PA-RISC1.0 dynamic load library
->96	belong		>0		- not stripped
-
-0	belong		0x213c6172	archive file
->68	belong 		0x020b0619	- PA-RISC1.0 relocatable library
->68	belong	 	0x02100619	- PA-RISC1.1 relocatable library
->68	belong 		0x02110619	- PA-RISC1.2 relocatable library
->68	belong 		0x02140619	- PA-RISC2.0 relocatable library
-
-#### 500
-0	long		0x02080106	HP s500 relocatable executable
->16	long		>0		- version %ld
-
-0	long		0x02080107	HP s500 executable
->16	long		>0		- version %ld
-
-0	long		0x02080108	HP s500 pure executable
->16	long		>0		- version %ld
-
-#### 200
-0	belong 		0x020c0108	HP s200 pure executable
->4	beshort		>0		- version %ld
->8	belong		&0x80000000	save fp regs
->8	belong		&0x40000000	dynamically linked
->8	belong		&0x20000000	debuggable
->36	belong		>0		not stripped
-
-0	belong		0x020c0107	HP s200 executable
->4	beshort		>0		- version %ld
->8	belong		&0x80000000	save fp regs
->8	belong		&0x40000000	dynamically linked
->8	belong		&0x20000000	debuggable
->36	belong		>0		not stripped
-
-0	belong		0x020c010b	HP s200 demand-load executable
->4	beshort		>0		- version %ld
->8	belong		&0x80000000	save fp regs
->8	belong		&0x40000000	dynamically linked
->8	belong		&0x20000000	debuggable
->36	belong		>0		not stripped
-
-0	belong		0x020c0106	HP s200 relocatable executable
->4	beshort		>0		- version %ld
->6	beshort		>0		- highwater %d
->8	belong		&0x80000000	save fp regs
->8	belong		&0x20000000	debuggable
->8	belong		&0x10000000	PIC
-
-0	belong 		0x020a0108	HP s200 (2.x release) pure executable
->4	beshort		>0		- version %ld
->36	belong		>0		not stripped
-
-0	belong		0x020a0107	HP s200 (2.x release) executable
->4	beshort		>0		- version %ld
->36	belong		>0		not stripped
-
-0	belong		0x020c010e	HP s200 shared library
->4	beshort		>0		- version %ld
->6	beshort		>0		- highwater %d
->36	belong		>0		not stripped
-
-0	belong		0x020c010d	HP s200 dynamic load library
->4	beshort		>0		- version %ld
->6	beshort		>0		- highwater %d
->36	belong		>0		not stripped
-
-#### MISC
-0	long		0x0000ff65	HP old archive
-0	long		0x020aff65	HP s200 old archive
-0	long		0x020cff65	HP s200 old archive
-0	long		0x0208ff65	HP s500 old archive
-
-0	long		0x015821a6	HP core file
-
-0	long		0x4da7eee8	HP-WINDOWS font
->8	byte		>0		- version %ld
-0	string		Bitmapfile	HP Bitmapfile
-
-0	string		IMGfile	CIS 	compimg HP Bitmapfile
-# XXX - see "lif"
-#0	short		0x8000		lif file
-0	long		0x020c010c	compiled Lisp
-
-0	string		msgcat01	HP NLS message catalog,
->8	long		>0		%d messages
-
-# Summary: HP-48/49 calculator
-# Created by: phk@data.fls.dk
-# Modified by (1): AMAKAWA Shuhei <sa264@cam.ac.uk>
-# Modified by (2): Samuel Thibault <samuel.thibault@ens-lyon.org> (HP49 support)
-0	string		HPHP		HP
->4	string		48		48 binary
->4	string		49		49 binary
->7	byte		>64		- Rev %c
->8	leshort		0x2911		(ADR)
->8	leshort		0x2933		(REAL)
->8	leshort		0x2955		(LREAL)
->8	leshort		0x2977		(COMPLX)
->8	leshort		0x299d		(LCOMPLX)
->8	leshort		0x29bf		(CHAR)
->8	leshort		0x29e8		(ARRAY)
->8	leshort		0x2a0a		(LNKARRAY)
->8	leshort		0x2a2c		(STRING)
->8	leshort		0x2a4e		(HXS)
->8	leshort		0x2a74		(LIST)
->8	leshort		0x2a96		(DIR)
->8	leshort		0x2ab8		(ALG)
->8	leshort		0x2ada		(UNIT)
->8	leshort		0x2afc		(TAGGED)
->8	leshort		0x2b1e		(GROB)
->8	leshort		0x2b40		(LIB)
->8	leshort		0x2b62		(BACKUP)
->8	leshort		0x2b88		(LIBDATA)
->8	leshort		0x2d9d		(PROG)
->8	leshort		0x2dcc		(CODE)
->8	leshort		0x2e48		(GNAME)
->8	leshort		0x2e6d		(LNAME)
->8	leshort		0x2e92		(XLIB)
-
-0	string		%%HP:		HP text
->6	string		T(0)		- T(0)
->6	string		T(1)		- T(1)
->6	string		T(2)		- T(2)
->6	string		T(3)		- T(3)
->10	string		A(D)		A(D)
->10	string		A(R)		A(R)
->10	string		A(G)		A(G)
->14	string		F(.)		F(.);
->14	string		F(,)		F(,);
-
-
-# Summary: HP-38/39 calculator
-# Created by: Samuel Thibault <samuel.thibault@ens-lyon.org>
-0	string		HP3
->3	string		8		HP 38
->3	string		9		HP 39
->4	string		Bin		binary
->4	string		Asc		ASCII
->7	string		A		(Directory List)
->7	string		B		(Zaplet)
->7	string		C		(Note)
->7	string		D		(Program)
->7	string		E		(Variable)
->7	string		F		(List)
->7	string		G		(Matrix)
->7	string		H		(Library)
->7	string		I		(Target List)
->7	string		J		(ASCII Vector specification)
->7	string		K		(wildcard)
-
-# Summary: HP-38/39 calculator
-# Created by: Samuel Thibault <samuel.thibault@ens-lyon.org>
-0	string		HP3
->3	string		8		HP 38
->3	string		9		HP 39
->4	string		Bin		binary
->4	string		Asc		ASCII
->7	string		A		(Directory List)
->7	string		B		(Zaplet)
->7	string		C		(Note)
->7	string		D		(Program)
->7	string		E		(Variable)
->7	string		F		(List)
->7	string		G		(Matrix)
->7	string		H		(Library)
->7	string		I		(Target List)
->7	string		J		(ASCII Vector specification)
->7	string		K		(wildcard)
-
-# hpBSD magic numbers
-0	beshort		200		hp200 (68010) BSD
->2	beshort		0407		impure binary
->2	beshort		0410		read-only binary
->2	beshort		0413		demand paged binary
-0	beshort		300		hp300 (68020+68881) BSD
->2	beshort		0407		impure binary
->2	beshort		0410		read-only binary
->2	beshort		0413		demand paged binary
-#
-# From David Gero <dgero@nortelnetworks.com>
-# HP-UX 10.20 core file format from /usr/include/sys/core.h
-# Unfortunately, HP-UX uses corehead blocks without specifying the order
-# There are four we care about:
-#     CORE_KERNEL, which starts with the string "HP-UX"
-#     CORE_EXEC, which contains the name of the command
-#     CORE_PROC, which contains the signal number that caused the core dump
-#     CORE_FORMAT, which contains the version of the core file format (== 1)
-# The only observed order in real core files is KERNEL, EXEC, FORMAT, PROC
-# but we include all 6 variations of the order of the first 3, and
-# assume that PROC will always be last
-# Order 1: KERNEL, EXEC, FORMAT, PROC
-0x10		string	HP-UX
->0		belong	2
->>0xC		belong	0x3C
->>>0x4C		belong	0x100
->>>>0x58	belong	0x44
->>>>>0xA0	belong	1
->>>>>>0xAC	belong	4
->>>>>>>0xB0	belong	1
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0x90	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-# Order 2: KERNEL, FORMAT, EXEC, PROC
->>>0x4C		belong	1
->>>>0x58	belong	4
->>>>>0x5C	belong	1
->>>>>>0x60	belong	0x100
->>>>>>>0x6C	belong	0x44
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0xA4	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-# Order 3: FORMAT, KERNEL, EXEC, PROC
-0x24		string	HP-UX
->0		belong	1
->>0xC		belong	4
->>>0x10		belong	1
->>>>0x14	belong	2
->>>>>0x20	belong	0x3C
->>>>>>0x60	belong	0x100
->>>>>>>0x6C	belong	0x44
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0xA4	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-# Order 4: EXEC, KERNEL, FORMAT, PROC
-0x64		string	HP-UX
->0		belong	0x100
->>0xC		belong	0x44
->>>0x54		belong	2
->>>>0x60	belong	0x3C
->>>>>0xA0	belong	1
->>>>>>0xAC	belong	4
->>>>>>>0xB0	belong	1
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0x44	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-# Order 5: FORMAT, EXEC, KERNEL, PROC
-0x78		string	HP-UX
->0		belong	1
->>0xC		belong	4
->>>0x10		belong	1
->>>>0x14	belong	0x100
->>>>>0x20	belong	0x44
->>>>>>0x68	belong	2
->>>>>>>0x74	belong	0x3C
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0x58	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-# Order 6: EXEC, FORMAT, KERNEL, PROC
->0		belong	0x100
->>0xC		belong	0x44
->>>0x54		belong	1
->>>>0x60	belong	4
->>>>>0x64	belong	1
->>>>>>0x68	belong	2
->>>>>>>0x74	belong	0x2C
->>>>>>>>0xB4	belong	4		core file
->>>>>>>>>0x44	string	>\0		from '%s'
->>>>>>>>>0xC4	belong	3		- received SIGQUIT
->>>>>>>>>0xC4	belong	4		- received SIGILL
->>>>>>>>>0xC4	belong	5		- received SIGTRAP
->>>>>>>>>0xC4	belong	6		- received SIGABRT
->>>>>>>>>0xC4	belong	7		- received SIGEMT
->>>>>>>>>0xC4	belong	8		- received SIGFPE
->>>>>>>>>0xC4	belong	10		- received SIGBUS
->>>>>>>>>0xC4	belong	11		- received SIGSEGV
->>>>>>>>>0xC4	belong	12		- received SIGSYS
->>>>>>>>>0xC4	belong	33		- received SIGXCPU
->>>>>>>>>0xC4	belong	34		- received SIGXFSZ
-
-
-
-#------------------------------------------------------------------------------
-# human68k:  file(1) magic for Human68k (X680x0 DOS) binary formats
-# Magic too short!
-#0		string	HU		Human68k
-#>68		string	LZX		LZX compressed
-#>>72		string	>\0		(version %s)
-#>(8.L+74)	string	LZX		LZX compressed
-#>>(8.L+78)	string	>\0		(version %s)
-#>60		belong	>0		binded
-#>(8.L+66)	string	#HUPAIR		hupair
-#>0		string	HU		X executable
-#>(8.L+74)	string	#LIBCV1		- linked PD LIBC ver 1
-#>4		belong	>0		- base address 0x%x
-#>28		belong	>0		not stripped
-#>32		belong	>0		with debug information
-#0		beshort	0x601a		Human68k Z executable
-#0		beshort	0x6000		Human68k object file
-#0		belong	0xd1000000	Human68k ar binary archive
-#0		belong	0xd1010000	Human68k ar ascii archive
-#0		beshort	0x0068		Human68k lib archive
-#4		string	LZX		Human68k LZX compressed
-#>8		string	>\0		(version %s)
-#>4		string	LZX		R executable
-#2		string	#HUPAIR		Human68k hupair R executable
-
-#------------------------------------------------------------------------------
-# ibm370:  file(1) magic for IBM 370 and compatibles.
-#
-# "ibm370" said that 0x15d == 0535 was "ibm 370 pure executable".
-# What the heck *is* "USS/370"?
-# AIX 4.1's "/etc/magic" has
-#
-#	0	short		0535		370 sysV executable 
-#	>12	long		>0		not stripped
-#	>22	short		>0		- version %d
-#	>30	long		>0		- 5.2 format
-#	0	short		0530		370 sysV pure executable 
-#	>12	long		>0		not stripped
-#	>22	short		>0		- version %d
-#	>30	long		>0		- 5.2 format
-#
-# instead of the "USS/370" versions of the same magic numbers.
-#
-0	beshort		0537		370 XA sysV executable 
->12	belong		>0		not stripped
->22	beshort		>0		- version %d
->30	belong		>0		- 5.2 format
-0	beshort		0532		370 XA sysV pure executable 
->12	belong		>0		not stripped
->22	beshort		>0		- version %d
->30	belong		>0		- 5.2 format
-0	beshort		054001		370 sysV pure executable
->12	belong		>0		not stripped
-0	beshort		055001		370 XA sysV pure executable
->12	belong		>0		not stripped
-0	beshort		056401		370 sysV executable
->12	belong		>0		not stripped
-0	beshort		057401		370 XA sysV executable
->12	belong		>0		not stripped
-0       beshort		0531		SVR2 executable (Amdahl-UTS)
->12	belong		>0		not stripped
->24     belong		>0		- version %ld
-0	beshort		0534		SVR2 pure executable (Amdahl-UTS)
->12	belong		>0		not stripped
->24	belong		>0		- version %ld
-0	beshort		0530		SVR2 pure executable (USS/370)
->12	belong		>0		not stripped
->24	belong		>0		- version %ld
-0	beshort		0535		SVR2 executable (USS/370)
->12	belong		>0		not stripped
->24	belong		>0		- version %ld
-
-#------------------------------------------------------------------------------
-# ibm6000:  file(1) magic for RS/6000 and the RT PC.
-#
-0	beshort		0x01df		executable (RISC System/6000 V3.1) or obj module
->12	belong		>0		not stripped
-# Breaks sun4 statically linked execs.
-#0      beshort		0x0103		executable (RT Version 2) or obj module
-#>2	byte		0x50		pure
-#>28	belong		>0		not stripped
-#>6	beshort		>0		- version %ld
-0	beshort		0x0104		shared library
-0	beshort		0x0105		ctab data
-0	beshort		0xfe04		structured file
-0	string		0xabcdef	AIX message catalog
-0	belong		0x000001f9	AIX compiled message catalog
-0	string		\<aiaff>	archive
-0	string		\<bigaf>	archive (big format)
-
-
-#------------------------------------------------------------------------------
-# iff:	file(1) magic for Interchange File Format (see also "audio" & "images")
-#
-# Daniel Quinlan (quinlan@yggdrasil.com) -- IFF was designed by Electronic
-# Arts for file interchange.  It has also been used by Apple, SGI, and
-# especially Commodore-Amiga.
-#
-# IFF files begin with an 8 byte FORM header, followed by a 4 character
-# FORM type, which is followed by the first chunk in the FORM.
-
-0	string		FORM		IFF data
-#>4	belong		x		\b, FORM is %d bytes long
-# audio formats
->8	string		AIFF		\b, AIFF audio
-!:mime	audio/x-aiff
->8	string		AIFC		\b, AIFF-C compressed audio
-!:mime	audio/x-aiff
->8	string		8SVX		\b, 8SVX 8-bit sampled sound voice
-!:mime	audio/x-aiff
->8	string		16SV		\b, 16SV 16-bit sampled sound voice
->8	string		SAMP		\b, SAMP sampled audio
->8	string		MAUD		\b, MAUD MacroSystem audio
->8	string		SMUS		\b, SMUS simple music
->8	string		CMUS		\b, CMUS complex music
-# image formats
->8	string		ILBMBMHD	\b, ILBM interleaved image
->>20	beshort		x		\b, %d x
->>22	beshort		x		%d
->8	string		RGBN		\b, RGBN 12-bit RGB image
->8	string		RGB8		\b, RGB8 24-bit RGB image
->8	string		DEEP		\b, DEEP TVPaint/XiPaint image
->8	string		DR2D		\b, DR2D 2-D object
->8	string		TDDD		\b, TDDD 3-D rendering
->8	string		LWOB		\b, LWOB 3-D object
->8	string		LWO2		\b, LWO2 3-D object, v2
->8	string		LWLO		\b, LWLO 3-D layered object
->8	string		REAL		\b, REAL Real3D rendering
->8	string		MC4D		\b, MC4D MaxonCinema4D rendering
->8	string		ANIM		\b, ANIM animation
->8	string		YAFA		\b, YAFA animation
->8	string		SSA\ 		\b, SSA super smooth animation
->8	string		ACBM		\b, ACBM continuous image
->8	string		FAXX		\b, FAXX fax image
-# other formats
->8	string		FTXT		\b, FTXT formatted text
->8	string		CTLG		\b, CTLG message catalog
->8	string		PREF		\b, PREF preferences
->8	string		DTYP		\b, DTYP datatype description
->8	string		PTCH		\b, PTCH binary patch
->8	string		AMFF		\b, AMFF AmigaMetaFile format
->8	string		WZRD		\b, WZRD StormWIZARD resource
->8	string		DOC\ 		\b, DOC desktop publishing document
-
-# These go at the end of the iff rules
-#
-# I don't see why these might collide with anything else.
-#
-# Interactive Fiction related formats
-#
->8	string		IFRS		\b, Blorb Interactive Fiction
->>24	string		Exec		with executable chunk
->8	string          IFZS		\b, Z-machine or Glulx saved game file (Quetzal)
-#------------------------------------------------------------------------------
-# images:  file(1) magic for image formats (see also "iff", and "c-lang" for
-# XPM bitmaps)
-#
-# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
-# additions by janl@ifi.uio.no as well as others. Jan also suggested
-# merging several one- and two-line files into here.
-#
-# little magic: PCX (first byte is 0x0a)
-
-# Targa - matches `povray', `ppmtotga' and `xv' outputs
-# by Philippe De Muyter <phdm@macqel.be>
-# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11
-# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise
-# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs
-# `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
-# `tgatoppm' recognizes a superset (Index may be anything)
-1	belong&0xfff7ffff	0x01010000	Targa image data - Map
->2	byte&8			8		- RLE
->12	leshort			>0		%hd x
->14	leshort			>0		%hd
-1	belong&0xfff7ffff	0x00020000	Targa image data - RGB
->2	byte&8			8		- RLE
->12	leshort			>0		%hd x
->14	leshort			>0		%hd
-1	belong&0xfff7ffff	0x00030000	Targa image data - Mono
->2	byte&8			8		- RLE
->12	leshort			>0		%hd x
->14	leshort			>0		%hd
-
-# PBMPLUS images
-# The next byte following the magic is always whitespace.
-0	search/1	P1		Netpbm PBM image text
-!:mime	image/x-portable-bitmap
-0	search/1	P2		Netpbm PGM image text
-!:mime	image/x-portable-greymap
-0	search/1	P3		Netpbm PPM image text
-!:mime	image/x-portable-pixmap
-0	string		P4		Netpbm PBM "rawbits" image data
-!:mime	image/x-portable-bitmap
-0	string		P5		Netpbm PGM "rawbits" image data
-!:mime	image/x-portable-greymap
-0	string		P6		Netpbm PPM "rawbits" image data
-!:mime	image/x-portable-pixmap
-0	string		P7		Netpbm PAM image file
-!:mime	image/x-portable-pixmap
-
-# From: bryanh@giraffe-data.com (Bryan Henderson)
-0	string		\117\072	Solitaire Image Recorder format
->4	string		\013		MGI Type 11
->4	string		\021		MGI Type 17
-0	string		.MDA		MicroDesign data
->21	byte		48		version 2
->21	byte		51		version 3
-0	string		.MDP		MicroDesign page data
->21	byte		48		version 2
->21	byte		51		version 3
-
-# NIFF (Navy Interchange File Format, a modification of TIFF) images
-# [GRR:  this *must* go before TIFF]
-0	string		IIN1		NIFF image data
-!:mime	image/x-niff
-
-# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
-# The second word of TIFF files is the TIFF version number, 42, which has
-# never changed.  The TIFF specification recommends testing for it.
-0	string		MM\x00\x2a	TIFF image data, big-endian
-!:mime	image/tiff
-0	string		II\x2a\x00	TIFF image data, little-endian
-!:mime	image/tiff
-
-# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
-# (Greg Roelofs, newt@uchicago.edu)
-# (Albert Cahalan, acahalan@cs.uml.edu)
-#
-# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ...
-#
-0	string		\x89PNG\x0d\x0a\x1a\x0a		PNG image
-!:mime	image/png
->16	belong		x		\b, %ld x
->20	belong		x		%ld,
->24	byte		x		%d-bit
->25	byte		0		grayscale,
->25	byte		2		\b/color RGB,
->25	byte		3		colormap,
->25	byte		4		gray+alpha,
->25	byte		6		\b/color RGBA,
-#>26	byte		0		deflate/32K,
->28	byte		0		non-interlaced
->28	byte		1		interlaced
-
-# possible GIF replacements; none yet released!
-# (Greg Roelofs, newt@uchicago.edu)
-#
-# GRR 950115:  this was mine ("Zip GIF"):
-0	string		GIF94z		ZIF image (GIF+deflate alpha)
-!:mime	image/x-unknown
-#
-# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
-#					
-0	string		FGF95a		FGF image (GIF+deflate beta)
-!:mime	image/x-unknown
-#
-# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
-# (best; not yet implemented):
-#					
-0	string		PBF		PBF image (deflate compression)
-!:mime	image/x-unknown
-
-# GIF
-0	string		GIF8		GIF image data
-!:mime	image/gif
-!:apple	8BIMGIFf
->4	string		7a		\b, version 8%s,
->4	string		9a		\b, version 8%s,
->6	leshort		>0		%hd x
->8	leshort		>0		%hd
-#>10	byte		&0x80		color mapped,
-#>10	byte&0x07	=0x00		2 colors
-#>10	byte&0x07	=0x01		4 colors
-#>10	byte&0x07	=0x02		8 colors
-#>10	byte&0x07	=0x03		16 colors
-#>10	byte&0x07	=0x04		32 colors
-#>10	byte&0x07	=0x05		64 colors
-#>10	byte&0x07	=0x06		128 colors
-#>10	byte&0x07	=0x07		256 colors
-
-# ITC (CMU WM) raster files.  It is essentially a byte-reversed Sun raster,
-# 1 plane, no encoding.
-0	string		\361\0\100\273	CMU window manager raster image data
->4	lelong		>0		%d x
->8	lelong		>0		%d,
->12	lelong		>0		%d-bit
-
-# Magick Image File Format
-0	string		id=ImageMagick	MIFF image data
-
-# Artisan
-0	long		1123028772	Artisan image data
->4	long		1		\b, rectangular 24-bit
->4	long		2		\b, rectangular 8-bit with colormap
->4	long		3		\b, rectangular 32-bit (24-bit with matte)
-
-# FIG (Facility for Interactive Generation of figures), an object-based format
-0	search/1	#FIG		FIG image text
->5	string		x		\b, version %.3s
-
-# PHIGS
-0	string		ARF_BEGARF		PHIGS clear text archive
-0	string		@(#)SunPHIGS		SunPHIGS
-# version number follows, in the form m.n
->40	string		SunBin			binary
->32	string		archive			archive
-
-# GKS (Graphics Kernel System)
-0	string		GKSM		GKS Metafile
->24	string		SunGKS		\b, SunGKS
-
-# CGM image files
-0	string		BEGMF		clear text Computer Graphics Metafile
-
-# MGR bitmaps  (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
-0	string	yz	MGR bitmap, modern format, 8-bit aligned
-0	string	zz	MGR bitmap, old format, 1-bit deep, 16-bit aligned
-0	string	xz	MGR bitmap, old format, 1-bit deep, 32-bit aligned
-0	string	yx	MGR bitmap, modern format, squeezed
-
-# Fuzzy Bitmap (FBM) images
-0	string		%bitmap\0	FBM image data
->30	long		0x31		\b, mono
->30	long		0x33		\b, color
-
-# facsimile data
-1	string		PC\ Research,\ Inc	group 3 fax data
->29	byte		0		\b, normal resolution (204x98 DPI)
->29	byte		1		\b, fine resolution (204x196 DPI)
-# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
-0	string		Sfff		structured fax file
-
-
-# PC bitmaps (OS/2, Windows BMP files)  (Greg Roelofs, newt@uchicago.edu)
-0	string		BM
->14	leshort		12		PC bitmap, OS/2 1.x format
-!:mime	image/x-ms-bmp
->>18	leshort		x		\b, %d x
->>20	leshort		x		%d
->14	leshort		64		PC bitmap, OS/2 2.x format
-!:mime	image/x-ms-bmp
->>18	leshort		x		\b, %d x
->>20	leshort		x		%d
->14	leshort		40		PC bitmap, Windows 3.x format
-!:mime	image/x-ms-bmp
->>18	lelong		x		\b, %d x
->>22	lelong		x		%d x
->>28	leshort		x		%d
->14	leshort		128		PC bitmap, Windows NT/2000 format
-!:mime	image/x-ms-bmp
->>18	lelong		x		\b, %d x
->>22	lelong		x		%d x
->>28	leshort		x		%d
-# Too simple - MPi
-#0	string		IC		PC icon data
-#0	string		PI		PC pointer image data
-#0	string		CI		PC color icon data
-#0	string		CP		PC color pointer image data
-# Conflicts with other entries [BABYL]
-#0	string		BA		PC bitmap array data
-
-# XPM icons (Greg Roelofs, newt@uchicago.edu)
-# note possible collision with C/REXX entry in c-lang; currently commented out
-0	search/1	/*\ XPM\ */	X pixmap image text
-
-# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
-0	leshort		0xcc52		RLE image data,
->6	leshort		x		%d x
->8	leshort		x		%d
->2	leshort		>0		\b, lower left corner: %d
->4	leshort		>0		\b, lower right corner: %d
->10	byte&0x1	=0x1		\b, clear first
->10	byte&0x2	=0x2		\b, no background
->10	byte&0x4	=0x4		\b, alpha channel
->10	byte&0x8	=0x8		\b, comment
->11	byte		>0		\b, %d color channels
->12	byte		>0		\b, %d bits per pixel
->13	byte		>0		\b, %d color map channels
-
-# image file format (Robert Potter, potter@cs.rochester.edu)
-0	string		Imagefile\ version-	iff image data
-# this adds the whole header (inc. version number), informative but longish
->10	string		>\0		%s
-
-# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	belong		0x59a66a95	Sun raster image data
->4	belong		>0		\b, %d x
->8	belong		>0		%d,
->12	belong		>0		%d-bit,
-#>16	belong		>0		%d bytes long,
->20	belong		0		old format,
-#>20	belong		1		standard,
->20	belong		2		compressed,
->20	belong		3		RGB,
->20	belong		4		TIFF,
->20	belong		5		IFF,
->20	belong		0xffff		reserved for testing,
->24	belong		0		no colormap
->24	belong		1		RGB colormap
->24	belong		2		raw colormap
-#>28	belong		>0		colormap is %d bytes long
-
-# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
-#
-# See
-#	http://reality.sgi.com/grafica/sgiimage.html
-#
-0	beshort		474		SGI image data
-#>2	byte		0		\b, verbatim
->2	byte		1		\b, RLE
-#>3	byte		1		\b, normal precision
->3	byte		2		\b, high precision
->4	beshort		x		\b, %d-D
->6	beshort		x		\b, %d x
->8	beshort		x		%d
->10	beshort		x		\b, %d channel
->10	beshort		!1		\bs
->80	string		>0		\b, "%s"
-
-0	string		IT01		FIT image data
->4	belong		x		\b, %d x
->8	belong		x		%d x
->12	belong		x		%d
-#
-0	string		IT02		FIT image data
->4	belong		x		\b, %d x
->8	belong		x		%d x
->12	belong		x		%d
-#
-2048	string		PCD_IPI		Kodak Photo CD image pack file
->0xe02	byte&0x03	0x00		, landscape mode
->0xe02	byte&0x03	0x01		, portrait mode
->0xe02	byte&0x03	0x02		, landscape mode
->0xe02	byte&0x03	0x03		, portrait mode
-0	string		PCD_OPA		Kodak Photo CD overview pack file
-
-# FITS format.  Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
-# FITS is the Flexible Image Transport System, the de facto standard for
-# data and image transfer, storage, etc., for the astronomical community.
-# (FITS floating point formats are big-endian.)
-0	string	SIMPLE\ \ =	FITS image data
->109	string	8		\b, 8-bit, character or unsigned binary integer
->108	string	16		\b, 16-bit, two's complement binary integer
->107	string	\ 32		\b, 32-bit, two's complement binary integer
->107	string	-32		\b, 32-bit, floating point, single precision
->107	string	-64		\b, 64-bit, floating point, double precision
-
-# other images
-0	string	This\ is\ a\ BitMap\ file	Lisp Machine bit-array-file
-
-# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
-# stuff.
-#
-0	beshort		0x1010		PEX Binary Archive
-
-# DICOM medical imaging data
-128	string	DICM			DICOM medical imaging data
-!:mime	application/dicom
-
-# XWD - X Window Dump file.
-#   As described in /usr/X11R6/include/X11/XWDFile.h
-#   used by the xwd program.
-#   Bradford Castalia, idaeim, 1/01
-#   updated by Adam Buchbinder, 2/09
-# The following assumes version 7 of the format; the first long is the length
-# of the header, which is at least 25 4-byte longs, and the one at offset 8
-# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
-# which is a maximum of 32.
-0	belong	>100
->8	belong	<3
->>12	belong	<33
->>>4	belong	7			XWD X Window Dump image data
-!:mime	image/x-xwindowdump
->>>>100	string	>\0			\b, "%s"
->>>>16	belong	x			\b, %dx
->>>>20	belong	x			\b%dx
->>>>12	belong	x			\b%d
-
-# PDS - Planetary Data System
-#   These files use Parameter Value Language in the header section.
-#   Unfortunately, there is no certain magic, but the following
-#   strings have been found to be most likely.
-0	string	NJPL1I00		PDS (JPL) image data
-2	string	NJPL1I			PDS (JPL) image data
-0	string	CCSD3ZF			PDS (CCSD) image data
-2	string	CCSD3Z			PDS (CCSD) image data
-0	string	PDS_			PDS image data
-0	string	LBLSIZE=		PDS (VICAR) image data
-
-# pM8x: ATARI STAD compressed bitmap format
-#
-# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
-# p M 8 5/6 xx yy zz data...
-# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
-# bytes either run horizontally (pM85) or vertically (pM86). yy is the
-# most frequent byte, xx and zz are runlength escape codes, where xx is
-# used for runs of yy.
-#
-0	string	pM85		Atari ST STAD bitmap image data (hor)
->5	byte	0x00		(white background)
->5	byte	0xFF		(black background)
-0	string	pM86		Atari ST STAD bitmap image data (vert)
->5	byte	0x00		(white background)
->5	byte	0xFF		(black background)
-
-# Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu
-# http://www.atarimax.com/jindroush.atari.org/afmtatr.html
-0	leshort	0x0296		Atari ATR image
-
-# XXX:
-# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
-# magic.
-# SGI RICE image file <mpruett@sgi.com>
-#0	beshort	0x5249		RICE image
-#>2	beshort	x		v%d
-#>4	beshort	x		(%d x
-#>6	beshort	x		%d)
-#>8	beshort	0		8 bit
-#>8	beshort	1		10 bit
-#>8	beshort	2		12 bit
-#>8	beshort	3		13 bit
-#>10	beshort	0		4:2:2
-#>10	beshort	1		4:2:2:4
-#>10	beshort	2		4:4:4
-#>10	beshort	3		4:4:4:4
-#>12	beshort	1		RGB
-#>12	beshort	2		CCIR601
-#>12	beshort	3		RP175
-#>12	beshort	4		YUV
-
-#------------------------------------------------------------------------------
-#
-# Marco Schmidt (marcoschmidt@users.sourceforge.net) -- an image  file format
-# for the EPOC operating system, which is used with PDAs like those from Psion
-#
-# see http://huizen.dds.nl/~frodol/psiconv/html/Index.html for a description
-# of various EPOC file formats
-
-0	string \x37\x00\x00\x10\x42\x00\x00\x10\x00\x00\x00\x00\x39\x64\x39\x47 EPOC MBM image file
-
-# PCX image files
-# From: Dan Fandrich <dan@coneharvesters.com>
-0	beshort		0x0a00	PCX ver. 2.5 image data
-0	beshort		0x0a02	PCX ver. 2.8 image data, with palette
-0	beshort		0x0a03	PCX ver. 2.8 image data, without palette
-0	beshort		0x0a04	PCX for Windows image data
-0	beshort		0x0a05	PCX ver. 3.0 image data
->4	leshort		x      bounding box [%hd,
->6	leshort		x      %hd] -
->8	leshort		x      [%hd,
->10	leshort		x      %hd],
->65	byte		>1	%d planes each of
->3	byte		x	%hhd-bit
->68	byte		0	image,
->68	byte		1	colour,
->68	byte		2	grayscale,
->68	byte		>2	image,
->68	byte		<0	image,
->12	leshort		>0	%hd x
->>14	leshort		x      %hd dpi,
->2	byte		0	uncompressed
->2	byte		1	RLE compressed
-
-# Adobe Photoshop
-0	string		8BPS Adobe Photoshop Image
-!:mime	image/vnd.adobe.photoshop
-
-# XV thumbnail indicator (ThMO)
-0	string		P7\ 332		XV thumbnail image data
-
-# NITF is defined by United States MIL-STD-2500A
-0	string	NITF	National Imagery Transmission Format
->25	string	>\0	dated %.14s
-
-# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
-0	belong		0x00010008	GEM Image data
->12	beshort		x		%d x
->14	beshort		x		%d,
->4	beshort		x		%d planes,
->8	beshort		x		%d x
->10	beshort		x		%d pixelsize
-
-# GEM Metafile (Wolfram Kleff)
-0	lelong		0x0018FFFF	GEM Metafile data
->4	leshort		x		version %d
-
-#
-# SMJPEG. A custom Motion JPEG format used by Loki Entertainment
-# Software Torbjorn Andersson <d91tan@Update.UU.SE>.
-#
-0	string	\0\nSMJPEG	SMJPEG
->8	belong	x		%d.x data
-# According to the specification you could find any number of _TXT
-# headers here, but I can't think of any way of handling that. None of
-# the SMJPEG files I tried it on used this feature. Even if such a
-# file is encountered the output should still be reasonable.
->16	string	_SND		\b,
->>24	beshort	>0		%d Hz
->>26	byte	8		8-bit
->>26	byte	16		16-bit
->>28	string	NONE		uncompressed
-# >>28	string	APCM		ADPCM compressed
->>27	byte	1		mono
->>28	byte	2		stereo
-# Help! Isn't there any way to avoid writing this part twice?
->>32	string	_VID		\b,
-# >>>48	string	JFIF		JPEG
->>>40	belong	>0		%d frames
->>>44	beshort	>0		(%d x
->>>46	beshort	>0		%d)
->16	string	_VID		\b,
-# >>32	string	JFIF		JPEG
->>24	belong	>0		%d frames
->>28	beshort	>0		(%d x
->>30	beshort	>0		%d)
-
-0	string	Paint\ Shop\ Pro\ Image\ File	Paint Shop Pro Image File
-
-# "thumbnail file" (icon)
-# descended from "xv", but in use by other applications as well (Wolfram Kleff)
-0       string          P7\ 332         XV "thumbnail file" (icon) data
-
-# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
-0       string          KiSS            KISS/GS
->4      byte            16              color
->>5     byte            x               %d bit
->>8     leshort         x               %d colors
->>10    leshort         x               %d groups
->4      byte            32              cell
->>5     byte            x               %d bit
->>8     leshort         x               %d x
->>10    leshort         x               %d
->>12    leshort         x               +%d
->>14    leshort         x               +%d
-
-# Webshots (www.webshots.com), by John Harrison
-0       string          C\253\221g\230\0\0\0 Webshots Desktop .wbz file
-
-# Hercules DASD image files
-# From Jan Jaeger <jj@septa.nl>
-0       string  CKD_P370        Hercules CKD DASD image file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-0       string  CKD_C370        Hercules compressed CKD DASD image file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-0       string  CKD_S370        Hercules CKD DASD shadow file
->8      long    x               \b, %d heads per cylinder
->12     long    x               \b, track size %d bytes
->16     byte    x               \b, device type 33%2.2X
-
-# Squeak images and programs - etoffi@softhome.net
-0	string		\146\031\0\0	Squeak image data
-0	search/1	'From\040Squeak	Squeak program text
-
-# partimage: file(1) magic for PartImage files (experimental, incomplete)
-# Author: Hans-Joachim Baader <hjb@pro-linux.de>
-0		string	PaRtImAgE-VoLuMe	PartImage
->0x0020		string	0.6.1		file version %s
->>0x0060	lelong	>-1		volume %ld
-#>>0x0064 8 byte identifier
-#>>0x007c reserved
->>0x0200	string	>\0		type %s
->>0x1400	string	>\0		device %s,
->>0x1600	string	>\0		original filename %s,
-# Some fields omitted
->>0x2744	lelong	0		not compressed
->>0x2744	lelong	1		gzip compressed
->>0x2744	lelong	2		bzip2 compressed
->>0x2744	lelong	>2		compressed with unknown algorithm
->0x0020		string	>0.6.1		file version %s
->0x0020		string	<0.6.1		file version %s
-
-# DCX is multi-page PCX, using a simple header of up to 1024
-# offsets for the respective PCX components.
-# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
-0	lelong	987654321	DCX multi-page PCX image data
-
-# Simon Walton <simonw@matteworld.com>
-# Kodak Cineon format for scanned negatives
-# http://www.kodak.com/US/en/motion/support/dlad/
-0	lelong  0xd75f2a80	Cineon image data
->200	belong  >0		\b, %ld x
->204	belong  >0		%ld
-
-
-# Bio-Rad .PIC is an image format used by microscope control systems
-# and related image processing software used by biologists.
-# From: Vebjorn Ljosa <vebjorn@ljosa.com>
-54	leshort 12345		Bio-Rad .PIC Image File
->0	leshort >0		%hd x
->2	leshort >0		%hd,
->4	leshort =1		1 image in file
->4	leshort >1		%hd images in file
-
-# From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
-# The description of *.mrw format can be found at
-# http://www.dalibor.cz/minolta/raw_file_format.htm
-0	string	\000MRM			Minolta Dimage camera raw image data
-
-# Summary: DjVu image / document
-# Extension: .djvu
-# Reference: http://djvu.org/docs/DjVu3Spec.djvu
-# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
-# Modified by (1): Abel Cheung <abelcheung@gmail.com>
-0	string	AT&TFORM
-!:mime	image/vnd.djvu
->12	string	DJVM		DjVu multiple page document
->12	string	DJVU		DjVu image or single page document
->12	string	DJVI		DjVu shared document
->12	string	THUM		DjVu page thumbnails
-
-
-# From Marc Espie
-0	lelong	20000630		OpenEXR image data
-
-# From: Tom Hilinski <tom.hilinski@comcast.net>
-# http://www.unidata.ucar.edu/packages/netcdf/
-0	string	CDF\001			NetCDF Data Format data
-
-#-----------------------------------------------------------------------
-# Hierarchical Data Format, used to facilitate scientific data exchange
-# specifications at http://hdf.ncsa.uiuc.edu/
-0	belong	0x0e031301	Hierarchical Data Format (version 4) data
-!:mime	application/x-hdf
-0	string	\211HDF\r\n\032	Hierarchical Data Format (version 5) data
-!:mime	application/x-hdf
-
-# From: Tobias Burnus <burnus@net-b.de>
-# Xara (for a while: Corel Xara) is a graphic package, see
-# http://www.xara.com/ for Windows and as GPL application for Linux
-0	string	XARA\243\243	Xara graphics file
-
-# http://www.cartesianinc.com/Tech/
-0	string	CPC\262		Cartesian Perceptual Compression image
-!:mime	image/x-cpi
-
-# From Albert Cahalan <acahalan@gmail.com>
-# puredigital used it for the CVS disposable camcorder
-#8       lelong  4       ZBM bitmap image data
-#>4      leshort x       %u x
-#>6      leshort x       %u
-
-# From Albert Cahalan <acahalan@gmail.com>
-# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
-0       string C565     OLPC firmware icon image data
->4      leshort x       %u x
->6      leshort x       %u
-
-# Applied Images - Image files from Cytovision
-# Gustavo Junior Alves <gjalves@gjalves.com.br>
-0	string	\xce\xda\xde\xfa	Cytovision Metaphases file
-0	string	\xed\xad\xef\xac	Cytovision Karyotype file
-0	string	\x0b\x00\x03\x00	Cytovision FISH Probe file
-0	string	\xed\xfe\xda\xbe	Cytovision FLEX file
-0	string	\xed\xab\xed\xfe	Cytovision FLEX file
-0	string	\xad\xfd\xea\xad	Cytovision RATS file
-
-# Wavelet Scalar Quantization format used in gray-scale fingerprint images
-# From Tano M Fotang <mfotang@quanteq.com>
-0	string	\xff\xa0\xff\xa8\x00	Wavelet Scalar Quantization image data
-
-# JPEG 2000 Code Stream Bitmap
-# From Petr Splichal <psplicha@redhat.com>
-0	string	\xFF\x4F\xFF\x51\x00	JPEG-2000 Code Stream Bitmap data
-
-# Type:	Ulead Photo Explorer5 (.pe5)
-# URL:	http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
-# From:	Simon Horman <horms@debian.org>
-0	string	IIO2H			Ulead Photo Explorer5
-
-# Type:	X11 cursor
-# URL:	http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
-# From:	Mathias Brodala <info@noctus.net>
-0	string	Xcur			X11 cursor
-
-#------------------------------------------------------------------------------
-# inform:  file(1) magic for Inform interactive fiction language
-
-# URL:  http://www.inform-fiction.org/
-# From: Reuben Thomas <rrt@sc3d.org>
-
-0	search/cB/100	constant\ story		Inform source text
-
-#------------------------------------------------------------------------------
-# intel:  file(1) magic for x86 Unix
-#
-# Various flavors of x86 UNIX executable/object (other than Xenix, which
-# is in "microsoft").  DOS is in "msdos"; the ambitious soul can do
-# Windows as well.
-#
-# Windows NT belongs elsewhere, as you need x86 and MIPS and Alpha and
-# whatever comes next (HP-PA Hummingbird?).  OS/2 may also go elsewhere
-# as well, if, as, and when IBM makes it portable.
-#
-# The `versions' should be un-commented if they work for you.
-# (Was the problem just one of endianness?)
-#
-0	leshort		0502		basic-16 executable
->12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
-0	leshort		0503		basic-16 executable (TV)
->12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
-0	leshort		0510		x86 executable
->12	lelong		>0		not stripped
-0	leshort		0511		x86 executable (TV)
->12	lelong		>0		not stripped
-0	leshort		=0512		iAPX 286 executable small model (COFF)
->12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
-0	leshort		=0522		iAPX 286 executable large model (COFF)
->12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
-# SGI labeled the next entry as "iAPX 386 executable" --Dan Quinlan
-0	leshort		=0514		80386 COFF executable
->12	lelong		>0		not stripped
->22	leshort		>0		- version %ld
-
-# rom: file(1) magic for BIOS ROM Extensions found in intel machines
-#      mapped into memory between 0xC0000 and 0xFFFFF
-# From Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu
-0        beshort         0x55AA       BIOS (ia32) ROM Ext.
->5       string          USB          USB
->7       string          LDR          UNDI image
->30      string          IBM          IBM comp. Video
->26      string          Adaptec      Adaptec
->28      string          Adaptec      Adaptec
->42      string          PROMISE      Promise
->2       byte            x            (%d*512)
-
-#------------------------------------------------------------------------------
-# interleaf:  file(1) magic for InterLeaf TPS:
-#
-0	string		=\210OPS	Interleaf saved data
-0	string		=<!OPS		Interleaf document text
->5	string		,\ Version\ =	\b, version
->>17	string		>\0		%.3s
-
-#------------------------------------------------------------------------------
-# island:  file(1) magic for IslandWite/IslandDraw, from SunOS 5.5.1
-# "/etc/magic":
-# From: guy@netapp.com (Guy Harris)
-#
-4	string		pgscriptver	IslandWrite document
-13	string		DrawFile	IslandDraw document
-
-
-#------------------------------------------------------------------------------
-# ispell:  file(1) magic for ispell
-#
-# Ispell 3.0 has a magic of 0x9601 and ispell 3.1 has 0x9602.  This magic
-# will match 0x9600 through 0x9603 in *both* little endian and big endian.
-# (No other current magic entries collide.)
-#
-# Updated by Daniel Quinlan (quinlan@yggdrasil.com)
-#
-0	leshort&0xFFFC	0x9600		little endian ispell
->0	byte		0		hash file (?),
->0	byte		1		3.0 hash file,
->0	byte		2		3.1 hash file,
->0	byte		3		hash file (?),
->2	leshort		0x00		8-bit, no capitalization, 26 flags
->2	leshort		0x01		7-bit, no capitalization, 26 flags
->2	leshort		0x02		8-bit, capitalization, 26 flags
->2	leshort		0x03		7-bit, capitalization, 26 flags
->2	leshort		0x04		8-bit, no capitalization, 52 flags
->2	leshort		0x05		7-bit, no capitalization, 52 flags
->2	leshort		0x06		8-bit, capitalization, 52 flags
->2	leshort		0x07		7-bit, capitalization, 52 flags
->2	leshort		0x08		8-bit, no capitalization, 128 flags
->2	leshort		0x09		7-bit, no capitalization, 128 flags
->2	leshort		0x0A		8-bit, capitalization, 128 flags
->2	leshort		0x0B		7-bit, capitalization, 128 flags
->2	leshort		0x0C		8-bit, no capitalization, 256 flags
->2	leshort		0x0D		7-bit, no capitalization, 256 flags
->2	leshort		0x0E		8-bit, capitalization, 256 flags
->2	leshort		0x0F		7-bit, capitalization, 256 flags
->4	leshort		>0		and %d string characters
-0	beshort&0xFFFC	0x9600		big endian ispell
->1	byte		0		hash file (?),
->1	byte		1		3.0 hash file,
->1	byte		2		3.1 hash file,
->1	byte		3		hash file (?),
->2	beshort		0x00		8-bit, no capitalization, 26 flags
->2	beshort		0x01		7-bit, no capitalization, 26 flags
->2	beshort		0x02		8-bit, capitalization, 26 flags
->2	beshort		0x03		7-bit, capitalization, 26 flags
->2	beshort		0x04		8-bit, no capitalization, 52 flags
->2	beshort		0x05		7-bit, no capitalization, 52 flags
->2	beshort		0x06		8-bit, capitalization, 52 flags
->2	beshort		0x07		7-bit, capitalization, 52 flags
->2	beshort		0x08		8-bit, no capitalization, 128 flags
->2	beshort		0x09		7-bit, no capitalization, 128 flags
->2	beshort		0x0A		8-bit, capitalization, 128 flags
->2	beshort		0x0B		7-bit, capitalization, 128 flags
->2	beshort		0x0C		8-bit, no capitalization, 256 flags
->2	beshort		0x0D		7-bit, no capitalization, 256 flags
->2	beshort		0x0E		8-bit, capitalization, 256 flags
->2	beshort		0x0F		7-bit, capitalization, 256 flags
->4	beshort		>0		and %d string characters
-# ispell 4.0 hash files  kromJx <kromJx@crosswinds.net>
-# Ispell 4.0
-0       string          ISPL            ispell
->4      long            x               hash file version %d,
->8      long            x               lexletters %d,
->12     long            x               lexsize %d,
->16     long            x               hashsize %d,
->20     long            x               stblsize %d
-#------------------------------------------------------------
-# Java ByteCode and Mach-O binaries (e.g., Mac OS X) use the
-# same magic number, 0xcafebabe, so they are both handled
-# in the entry called "cafebabe".
-#------------------------------------------------------------
-# Java serialization
-# From Martin Pool (m.pool@pharos.com.au)
-0	beshort		0xaced		Java serialization data
->2	beshort		>0x0004		\b, version %d
-
-0	belong		0xfeedfeed	Java KeyStore
-!:mime	application/x-java-keystore
-0	belong		0xcececece	Java JCE KeyStore
-!:mime	application/x-java-jce-keystore
-
-# Dalvik .dex format. http://retrodev.com/android/dexformat.html
-# From <mkf@google.com> "Mike Fleming"
-0	string	dex\n
->0	regex	dex\n[0-9][0-9][0-9]\0	Dalvik dex file
->4	string	>000			version %s
-0	string	dey\n
->0	regex	dey\n[0-9][0-9][0-9]\0	Dalvik dex file (optimized for host)
->4	string	>000			version %s
-
-
-#------------------------------------------------------------------------------
-# JPEG images
-# SunOS 5.5.1 had
-#
-#	0	string		\377\330\377\340	JPEG file
-#	0	string		\377\330\377\356	JPG file
-#
-# both of which turn into "JPEG image data" here.
-#
-0	beshort		0xffd8		JPEG image data
-!:mime	image/jpeg
-!:apple	8BIMJPEG
-!:strength +1
->6	string		JFIF		\b, JFIF standard
-# The following added by Erik Rossen <rossen@freesurf.ch> 1999-09-06
-# in a vain attempt to add image size reporting for JFIF.  Note that these
-# tests are not fool-proof since some perfectly valid JPEGs are currently
-# impossible to specify in magic(4) format.
-# First, a little JFIF version info:
->>11	byte		x		\b %d.
->>12	byte		x		\b%02d
-# Next, the resolution or aspect ratio of the image:
-#>>13	byte		0		\b, aspect ratio
-#>>13	byte		1		\b, resolution (DPI)
-#>>13	byte		2		\b, resolution (DPCM)
-#>>4	beshort		x		\b, segment length %d
-# Next, show thumbnail info, if it exists:
->>18	byte		!0		\b, thumbnail %dx
->>>19	byte		x		\b%d
-
-# EXIF moved down here to avoid reporting a bogus version number,
-# and EXIF version number printing added.
-#   - Patrik R=E5dman <patrik+file-magic@iki.fi>
->6	string		Exif		\b, EXIF standard
-# Look for EXIF IFD offset in IFD 0, and then look for EXIF version tag in EXIF IFD.
-# All possible combinations of entries have to be enumerated, since no looping
-# is possible. And both endians are possible...
-# The combinations included below are from real-world JPEGs.
-# Little-endian
->>12	string		II		
-# IFD 0 Entry #5:
->>>70	leshort		0x8769          
-# EXIF IFD Entry #1:
->>>>(78.l+14)	leshort	0x9000		
->>>>>(78.l+23)	byte	x		%c
->>>>>(78.l+24)	byte	x		\b.%c
->>>>>(78.l+25)	byte	!0x30		\b%c
-# IFD 0 Entry #9:
->>>118	leshort		0x8769          
-# EXIF IFD Entry #3:
->>>>(126.l+38)	leshort	0x9000		
->>>>>(126.l+47)	byte	x		%c
->>>>>(126.l+48)	byte	x		\b.%c
->>>>>(126.l+49)	byte	!0x30		\b%c
-# IFD 0 Entry #10
->>>130	leshort		0x8769          
-# EXIF IFD Entry #3:
->>>>(138.l+38)	leshort	0x9000		
->>>>>(138.l+47)	byte	x		%c
->>>>>(138.l+48)	byte	x		\b.%c
->>>>>(138.l+49)	byte	!0x30		\b%c
-# EXIF IFD Entry #4:
->>>>(138.l+50)	leshort	0x9000		
->>>>>(138.l+59)	byte	x		%c
->>>>>(138.l+60)	byte	x		\b.%c
->>>>>(138.l+61)	byte	!0x30		\b%c
-# EXIF IFD Entry #5:
->>>>(138.l+62)	leshort	0x9000		
->>>>>(138.l+71)	byte	x		%c
->>>>>(138.l+72)	byte	x		\b.%c
->>>>>(138.l+73)	byte	!0x30		\b%c
-# IFD 0 Entry #11
->>>142	leshort		0x8769          
-# EXIF IFD Entry #3:
->>>>(150.l+38)	leshort	0x9000		
->>>>>(150.l+47)	byte	x		%c
->>>>>(150.l+48)	byte	x		\b.%c
->>>>>(150.l+49)	byte	!0x30		\b%c
-# EXIF IFD Entry #4:
->>>>(150.l+50)	leshort	0x9000		
->>>>>(150.l+59)	byte	x		%c
->>>>>(150.l+60)	byte	x		\b.%c
->>>>>(150.l+61)	byte	!0x30		\b%c
-# EXIF IFD Entry #5:
->>>>(150.l+62)	leshort	0x9000		
->>>>>(150.l+71)	byte	x		%c
->>>>>(150.l+72)	byte	x		\b.%c
->>>>>(150.l+73)	byte	!0x30		\b%c
-# Big-endian
->>12	string		MM		
-# IFD 0 Entry #9:
->>>118	beshort		0x8769          
-# EXIF IFD Entry #1:
->>>>(126.L+14)	beshort	0x9000		
->>>>>(126.L+23)	byte	x		%c
->>>>>(126.L+24)	byte	x		\b.%c
->>>>>(126.L+25)	byte	!0x30		\b%c
-# EXIF IFD Entry #3:
->>>>(126.L+38)	beshort	0x9000		
->>>>>(126.L+47)	byte	x		%c
->>>>>(126.L+48)	byte	x		\b.%c
->>>>>(126.L+49)	byte	!0x30		\b%c
-# IFD 0 Entry #10
->>>130	beshort		0x8769          
-# EXIF IFD Entry #3:
->>>>(138.L+38)	beshort	0x9000		
->>>>>(138.L+47)	byte	x		%c
->>>>>(138.L+48)	byte	x		\b.%c
->>>>>(138.L+49)	byte	!0x30		\b%c
-# EXIF IFD Entry #5:
->>>>(138.L+62)	beshort	0x9000		
->>>>>(138.L+71)	byte	x		%c
->>>>>(138.L+72)	byte	x		\b.%c
->>>>>(138.L+73)	byte	!0x30		\b%c
-# IFD 0 Entry #11
->>>142	beshort		0x8769          
-# EXIF IFD Entry #4:
->>>>(150.L+50)	beshort	0x9000		
->>>>>(150.L+59)	byte	x		%c
->>>>>(150.L+60)	byte	x		\b.%c
->>>>>(150.L+61)	byte	!0x30		\b%c
-# Here things get sticky.  We can do ONE MORE marker segment with
-# indirect addressing, and that's all.  It would be great if we could
-# do pointer arithemetic like in an assembler language.  Christos?
-# And if there was some sort of looping construct to do searches, plus a few
-# named accumulators, it would be even more effective...
-# At least we can show a comment if no other segments got inserted before:
->(4.S+5)	byte		0xFE
->>(4.S+8)	string		>\0		\b, comment: "%s"
-# FIXME: When we can do non-byte counted strings, we can use that to get
-# the string's count, and fix Debian bug #283760
-#>(4.S+5)	byte		0xFE		\b, comment
-#>>(4.S+6)	beshort		x		\b length=%d
-#>>(4.S+8)	string		>\0		\b, "%s"
-# Or, we can show the encoding type (I've included only the three most common)
-# and image dimensions if we are lucky and the SOFn (image segment) is here:
->(4.S+5)	byte		0xC0		\b, baseline
->>(4.S+6)	byte		x		\b, precision %d
->>(4.S+7)	beshort		x		\b, %dx
->>(4.S+9)	beshort		x		\b%d
->(4.S+5)	byte		0xC1		\b, extended sequential
->>(4.S+6)	byte		x		\b, precision %d
->>(4.S+7)	beshort		x		\b, %dx
->>(4.S+9)	beshort		x		\b%d
->(4.S+5)	byte		0xC2		\b, progressive
->>(4.S+6)	byte		x		\b, precision %d
->>(4.S+7)	beshort		x		\b, %dx
->>(4.S+9)	beshort		x		\b%d
-# I've commented-out quantisation table reporting.  I doubt anyone cares yet.
-#>(4.S+5)	byte		0xDB		\b, quantisation table
-#>>(4.S+6)	beshort		x		\b length=%d
-#>14	beshort		x		\b, %d x
-#>16	beshort		x		\b %d
-
-# HSI is Handmade Software's proprietary JPEG encoding scheme
-0	string		hsi1		JPEG image data, HSI proprietary
-
-# From: David Santinoli <david@santinoli.com>
-0	string		\x00\x00\x00\x0C\x6A\x50\x20\x20\x0D\x0A\x87\x0A	JPEG 2000 image data
-
-# Type: JPEG 2000 codesream
-# From: Mathieu Malaterre <mathieu.malaterre@gmail.com>
-0	belong		0xff4fff51						JPEG 2000 codestream
-45	beshort		0xff52
-
-#------------------------------------------------------------------------------
-# karma:  file(1) magic for Karma data files
-#
-# From <rgooch@atnf.csiro.au>
-
-0	string		KarmaRHD Version	Karma Data Structure Version
->16	belong		x		%lu
-
-#------------------------------------------------------------------------------
-# kde:  file(1) magic for KDE
-
-0		string	[KDE\ Desktop\ Entry]	KDE desktop entry
-!:mime	application/x-kdelnk
-0		string	#\ KDE\ Config\ File	KDE config file
-!:mime	application/x-kdelnk
-0		string	#\ xmcd	xmcd database file for kscd
-!:mime	text/x-xmcd
-#------------------------------------------------------------------------------
-# Type: Google KML, formerly Keyhole Markup Language
-# Future development of this format has been handed
-# over to the Open Geospatial Consortium.
-# http://www.opengeospatial.org/standards/kml/
-# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
-0 string    \<?xml
->20  search/400 \ xmlns= 
->>&0 regex ['"]http://earth.google.com/kml Google KML document
-!:mime application/vnd.google-earth.kml+xml
->>>&1 string 2.0' \b, version 2.0
->>>&1 string 2.1' \b, version 2.1
->>>&1 string 2.2' \b, version 2.2
-
-#------------------------------------------------------------------------------
-# Type: OpenGIS KML, formerly Keyhole Markup Language
-# This standard is maintained by the
-# Open Geospatial Consortium.
-# http://www.opengeospatial.org/standards/kml/
-# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
->>&0 regex ['"]http://www.opengis.net/kml OpenGIS KML document
-!:mime application/vnd.google-earth.kml+xml
->>>&1 string 2.2 \b, version 2.2
-
-#------------------------------------------------------------------------------
-# Type: Google KML Archive (ZIP based) 
-# http://code.google.com/apis/kml/documentation/kml_tut.html
-# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
-0 string    PK\003\004
->4  byte    0x14
->>30  string doc.kml Compressed Google KML Document, including resources.
-!:mime application/vnd.google-earth.kmz
-#------------------------------------------------------------------------------
-# DEC SRC Virtual Paper: Lectern files
-# Karl M. Hegbloom <karlheg@inetarena.com>
-0	string	lect	DEC SRC Virtual Paper Lectern file
-#------------------------------------------------------------------------------
-# lex:  file(1) magic for lex
-#
-#	derived empirically, your offsets may vary!
-0	search/100	yyprevious	C program text (from lex)
->3	search/1	>\0		 for %s
-# C program text from GNU flex, from Daniel Quinlan <quinlan@yggdrasil.com>
-0	search/100	generated\ by\ flex	C program text (from flex)
-# lex description file, from Daniel Quinlan <quinlan@yggdrasil.com>
-0	search/1	%{		lex description text
-
-#------------------------------------------------------------------------------
-# lif:  file(1) magic for lif
-#
-# (Daniel Quinlan <quinlan@yggdrasil.com>)
-#
-0	beshort		0x8000		lif file
-#------------------------------------------------------------------------------
-# linux:  file(1) magic for Linux files
-#
-# Values for Linux/i386 binaries, from Daniel Quinlan <quinlan@yggdrasil.com>
-# The following basic Linux magic is useful for reference, but using
-# "long" magic is a better practice in order to avoid collisions.
-#
-# 2	leshort		100		Linux/i386
-# >0	leshort		0407		impure executable (OMAGIC)
-# >0	leshort		0410		pure executable (NMAGIC)
-# >0	leshort		0413		demand-paged executable (ZMAGIC)
-# >0	leshort		0314		demand-paged executable (QMAGIC)
-#
-0	lelong		0x00640107	Linux/i386 impure executable (OMAGIC)
->16	lelong		0		\b, stripped
-0	lelong		0x00640108	Linux/i386 pure executable (NMAGIC)
->16	lelong		0		\b, stripped
-0	lelong		0x0064010b	Linux/i386 demand-paged executable (ZMAGIC)
->16	lelong		0		\b, stripped
-0	lelong		0x006400cc	Linux/i386 demand-paged executable (QMAGIC)
->16	lelong		0		\b, stripped
-#
-0	string		\007\001\000	Linux/i386 object file
->20	lelong		>0x1020		\b, DLL library
-# Linux-8086 stuff:
-0	string		\01\03\020\04	Linux-8086 impure executable
->28	long		!0		not stripped
-0	string		\01\03\040\04	Linux-8086 executable
->28	long		!0		not stripped
-#
-0	string		\243\206\001\0	Linux-8086 object file
-#
-0	string		\01\03\020\20	Minix-386 impure executable
->28	long		!0		not stripped
-0	string		\01\03\040\20	Minix-386 executable
->28	long		!0		not stripped
-# core dump file, from Bill Reynolds <bill@goshawk.lanl.gov>
-216	lelong		0421		Linux/i386 core file
->220	string		>\0		of '%s'
->200	lelong		>0		(signal %d)
-#
-# LILO boot/chain loaders, from Daniel Quinlan <quinlan@yggdrasil.com>
-# this can be overridden by the DOS executable (COM) entry
-2	string		LILO		Linux/i386 LILO boot/chain loader
-#
-# PSF fonts, from H. Peter Anvin <hpa@yggdrasil.com>
-0	leshort		0x0436		Linux/i386 PC Screen Font data,
->2	byte		0		256 characters, no directory,
->2	byte		1		512 characters, no directory,
->2	byte		2		256 characters, Unicode directory,
->2	byte		3		512 characters, Unicode directory,
->3	byte		>0		8x%d
-# Linux swap file, from Daniel Quinlan <quinlan@yggdrasil.com>
-4086	string		SWAP-SPACE	Linux/i386 swap file
-# From: Jeff Bailey <jbailey@ubuntu.com>
-# Linux swap file with swsusp1 image, from Jeff Bailey <jbailey@ubuntu.com>
-4076	string		SWAPSPACE2S1SUSPEND	Linux/i386 swap file (new style) with SWSUSP1 image
-# according to man page of mkswap (8) March 1999
-# volume label and UUID Russell Coker
-# http://etbe.coker.com.au/2008/07/08/label-vs-uuid-vs-device/
-4086	string		SWAPSPACE2	Linux/i386 swap file (new style),
->0x400	long		x		version %d (4K pages),
->0x404	long		x		size %d pages,
->1052	string		\0		no label,
->1052	string		>\0		LABEL=%s,
->0x40c	belong		x		UUID=%08x
->0x410	beshort		x		\b-%04x
->0x412	beshort		x		\b-%04x
->0x414	beshort		x		\b-%04x
->0x416	belong		x		\b-%08x
->0x41a	beshort		x		\b%04x
-# ECOFF magic for OSF/1 and Linux (only tested under Linux though)
-#
-#	from Erik Troan (ewt@redhat.com) examining od dumps, so this
-#		could be wrong
-#      updated by David Mosberger (davidm@azstarnet.com) based on
-#      GNU BFD and MIPS info found below.
-#
-0	leshort		0x0183		ECOFF alpha
->24	leshort		0407		executable
->24	leshort		0410		pure
->24	leshort		0413		demand paged
->8	long		>0		not stripped
->8	long		0		stripped
->23	leshort		>0		- version %ld.
-#
-# Linux kernel boot images, from Albert Cahalan <acahalan@cs.uml.edu>
-# and others such as Axel Kohlmeyer <akohlmey@rincewind.chemie.uni-ulm.de>
-# and Nicol�s Lichtmaier <nick@debian.org>
-# All known start with: b8 c0 07 8e d8 b8 00 90 8e c0 b9 00 01 29 f6 29
-# Linux kernel boot images (i386 arch) (Wolfram Kleff)
-514	string		HdrS		Linux kernel
->510	leshort		0xAA55		x86 boot executable
->>518	leshort		>0x1ff
->>>529	byte		0		zImage,
->>>529	byte		1		bzImage,
->>>(526.s+0x200) string	>\0		version %s,
->>498	leshort		1		RO-rootFS,
->>498	leshort		0		RW-rootFS,
->>508	leshort		>0		root_dev 0x%X,
->>502	leshort		>0		swap_dev 0x%X,
->>504	leshort		>0		RAMdisksize %u KB,
->>506	leshort		0xFFFF		Normal VGA
->>506	leshort		0xFFFE		Extended VGA
->>506	leshort		0xFFFD		Prompt for Videomode
->>506	leshort		>0		Video mode %d
-# This also matches new kernels, which were caught above by "HdrS".
-0		belong	0xb8c0078e	Linux kernel
->0x1e3		string	Loading		version 1.3.79 or older
->0x1e9		string	Loading		from prehistoric times
-
-# System.map files - Nicol�s Lichtmaier <nick@debian.org>
-8	search/1	\ A\ _text	Linux kernel symbol map text
-
-# LSM entries - Nicol�s Lichtmaier <nick@debian.org>
-0	search/1	Begin3	Linux Software Map entry text
-0	search/1	Begin4	Linux Software Map entry text (new format)
-
-# From Matt Zimmerman, enhanced for v3 by Matthew Palmer
-0	belong	0x4f4f4f4d	User-mode Linux COW file
->4	belong	<3		\b, version %d
->>8	string	>\0		\b, backing file %s
->4	belong	>2		\b, version %d
->>32	string	>\0		\b, backing file %s
-
-############################################################################
-# Linux kernel versions
-
-0		string		\xb8\xc0\x07\x8e\xd8\xb8\x00\x90	Linux
->497		leshort		0		x86 boot sector
->>514		belong		0x8e	of a kernel from the dawn of time!
->>514		belong		0x908ed8b4	version 0.99-1.1.42
->>514		belong		0x908ed8b8	for memtest86
-
->497		leshort		!0		x86 kernel
->>504		leshort		>0		RAMdisksize=%u KB
->>502		leshort		>0		swap=0x%X
->>508		leshort		>0		root=0x%X
->>>498		leshort		1		\b-ro
->>>498		leshort		0		\b-rw
->>506		leshort		0xFFFF		vga=normal
->>506		leshort		0xFFFE		vga=extended
->>506		leshort		0xFFFD		vga=ask
->>506		leshort		>0		vga=%d
->>514		belong		0x908ed881	version 1.1.43-1.1.45
->>514		belong		0x15b281cd
->>>0xa8e	belong		0x55AA5a5a	version 1.1.46-1.2.13,1.3.0
->>>0xa99	belong		0x55AA5a5a	version 1.3.1,2
->>>0xaa3	belong		0x55AA5a5a	version 1.3.3-1.3.30
->>>0xaa6	belong		0x55AA5a5a	version 1.3.31-1.3.41
->>>0xb2b	belong		0x55AA5a5a	version 1.3.42-1.3.45
->>>0xaf7	belong		0x55AA5a5a	version 1.3.46-1.3.72
->>514		string		HdrS
->>>518		leshort		>0x1FF
->>>>529		byte		0		\b, zImage
->>>>529		byte		1		\b, bzImage
->>>>(526.s+0x200) string 	>\0		\b, version %s
-
-# Linux boot sector thefts.
-0		belong		0xb8c0078e	Linux
->0x1e6		belong		0x454c4b53	ELKS Kernel
->0x1e6		belong		!0x454c4b53	style boot sector
-
-############################################################################
-# Linux 8086 executable
-0	lelong&0xFF0000FF 0xC30000E9	Linux-Dev86 executable, headerless
->5	string		.		
->>4	string		>\0		\b, libc version %s
-
-0	lelong&0xFF00FFFF 0x4000301	Linux-8086 executable
->2	byte&0x01	!0		\b, unmapped zero page
->2	byte&0x20	0		\b, impure
->2	byte&0x20	!0
->>2	byte&0x10	!0		\b, A_EXEC
->2	byte&0x02	!0		\b, A_PAL
->2	byte&0x04	!0		\b, A_NSYM
->2	byte&0x08	!0		\b, A_STAND
->2	byte&0x40	!0		\b, A_PURE
->2	byte&0x80	!0		\b, A_TOVLY
->28     long            !0              \b, not stripped
->37	string		.		
->>36	string		>\0		\b, libc version %s
-
-# 0	lelong&0xFF00FFFF 0x10000301	ld86 I80386 executable
-# 0	lelong&0xFF00FFFF 0xB000301	ld86 M68K executable
-# 0	lelong&0xFF00FFFF 0xC000301	ld86 NS16K executable
-# 0	lelong&0xFF00FFFF 0x17000301	ld86 SPARC executable
-
-# SYSLINUX boot logo files (from 'ppmtolss16' sources)
-# http://syslinux.zytor.com/
-#
-0	lelong	=0x1413f33d		SYSLINUX' LSS16 image data
->4	leshort	x			\b, width %d
->6	leshort	x			\b, height %d
-
-0	string	OOOM			User-Mode-Linux's Copy-On-Write disk image
->4	belong	x			version %d
-
-# SE Linux policy database
-# From: Mike Frysinger <vapier@gentoo.org>
-0	lelong	0xf97cff8c		SE Linux policy
->16	lelong	x			v%d
->20	lelong	1			MLS
->24	lelong	x			%d symbols
->28	lelong	x			%d ocons
-
-# Linux Logical Volume Manager (LVM) 
-# Emmanuel VARAGNAT <emmanuel.varagnat@guzu.net>
-#
-# System ID, UUID and volume group name are 128 bytes long
-# but they should never be full and initialized with zeros...
-#
-# LVM1
-#
-0x0	string	HM\001		LVM1 (Linux Logical Volume Manager), version 1
->0x12c	string	>\0		, System ID: %s
-
-0x0	string	HM\002		LVM1 (Linux Logical Volume Manager), version 2
->0x12c	string	>\0		, System ID: %s
-
-#  LVM2
-#
-# It seems that the label header can be in one the four first sector
-# of the disk... (from _find_labeller in lib/label/label.c of LVM2)
-#
-# 0x200 seems to be the common case
-
-0x218		 string	LVM2\ 001	LVM2 (Linux Logical Volume Manager)
-# read the offset to add to the start of the header, and the header
-# start in 0x200
->(0x214.l+0x200) string	>\0		, UUID: %s
-
-0x018		 string	LVM2\ 001	LVM2 (Linux Logical Volume Manager)
->(0x014.l)	 string	>\0		, UUID: %s
-
-0x418		 string	LVM2\ 001	LVM2 (Linux Logical Volume Manager)
->(0x414.l+0x400) string	>\0		, UUID: %s
-
-0x618		 string	LVM2\ 001	LVM2 (Linux Logical Volume Manager)
->(0x614.l+0x600) string	>\0		, UUID: %s
-
-# LVM snapshot
-# from Jason Farrel
-0	string	SnAp	LVM Snapshot (CopyOnWrite store)
->4	lelong	!0	- valid,
->4	lelong	0	- invalid,
->8	lelong	x	version %d,
->12	lelong	x	chunk_size %d
-
-# SE Linux policy database
-0	lelong	0xf97cff8c		SE Linux policy
->16	lelong	x			v%d
->20	lelong	1			MLS
->24	lelong	x			%d symbols
->28	lelong	x			%d ocons
-
-# LUKS: Linux Unified Key Setup, On-Disk Format, http://luks.endorphin.org/spec
-# Anthon van der Neut (anthon@mnt.org)
-0	string	LUKS\xba\xbe	LUKS encrypted file,
->6	beshort x		ver %d
->8	string	x		[%s,
->40	string	x		%s,
->72	string	x		%s]
->168	string	x		UUID: %s
-
-
-# Summary: Xen saved domain file
-# Created by: Radek Vokal <rvokal@redhat.com>
-0	string		LinuxGuestRecord	Xen saved domain
->20	search/256	(name			
->>&1	string		x			(name %s)
-
-# Type: Xen, the virtual machine monitor
-# From: Radek Vokal <rvokal@redhat.com>
-0	string		LinuxGuestRecord	Xen saved domain
-#>2	regex		\(name\ [^)]*\)		%s
->20	search/256	(name			(name
->>&1	string		x			%s...)
-#------------------------------------------------------------------------------
-# lisp:  file(1) magic for lisp programs
-#
-# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
-
-# updated by Joerg Jenderek
-# GRR: This lot is too weak
-#0	string	;;			
-# windows INF files often begin with semicolon and use CRLF as line end
-# lisp files are mainly created on unix system with LF as line end
-#>2	search/4096	!\r		Lisp/Scheme program text
-#>2	search/4096	\r		Windows INF file
-
-0	search/4096	(if\ 			Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(setq\ 			Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(defvar\ 		Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(defparam\ 		Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(defun\  		Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(autoload\ 		Lisp/Scheme program text
-!:mime	text/x-lisp
-0	search/4096	(custom-set-variables\ 	Lisp/Scheme program text
-!:mime	text/x-lisp
-
-# Emacs 18 - this is always correct, but not very magical.
-0	string	\012(			Emacs v18 byte-compiled Lisp data
-!:mime	application/x-elc
-# Emacs 19+ - ver. recognition added by Ian Springer
-# Also applies to XEmacs 19+ .elc files; could tell them apart with regexs
-# - Chris Chittleborough <cchittleborough@yahoo.com.au>
-0	string	;ELC	
->4	byte	>18			
->4	byte    <32			Emacs/XEmacs v%d byte-compiled Lisp data
-!:mime	application/x-elc		
-
-# Files produced by CLISP Common Lisp From: Bruno Haible <haible@ilog.fr>
-0	string	(SYSTEM::VERSION\040'	CLISP byte-compiled Lisp program (pre 2004-03-27)
-0	string	(|SYSTEM|::|VERSION|\040'	CLISP byte-compiled Lisp program text
-
-0	long	0x70768BD2		CLISP memory image data
-0	long	0xD28B7670		CLISP memory image data, other endian
-
-#.com and .bin for MIT scheme 
-0	string	\372\372\372\372	MIT scheme (library?)
-
-# From: David Allouche <david@allouche.net>
-0	search/1	\<TeXmacs|	TeXmacs document text
-!:mime	text/texmacs
-
-#------------------------------------------------------------------------------
-# llvm:  file(1) magic for LLVM byte-codes
-# URL:  http://llvm.org/docs/BitCodeFormat.html
-# From: Al Stone <ahs3@fc.hp.com>
-
-0	string	llvm	LLVM byte-codes, uncompressed
-0	string	llvc0	LLVM byte-codes, null compression
-0	string	llvc1	LLVM byte-codes, gzip compression
-0	string	llvc2	LLVM byte-codes, bzip2 compression
-0	string	\xde\xc0\x17\x0b	LLVM bitcode, wrapper
-0       string	BC\xc0\xde	LLVM bitcode
-#------------------------------------------------------------------------------
-# lua:  file(1) magic for Lua scripting language
-# URL:  http://www.lua.org/
-# From: Reuben Thomas <rrt@sc3d.org>, Seo Sanghyeon <tinuviel@sparcs.kaist.ac.kr>
-
-# Lua scripts
-0	search/1/b	#!\ /usr/bin/lua	Lua script text executable
-!:mime	text/x-lua
-0	search/1/b	#!\ /usr/local/bin/lua	Lua script text executable
-!:mime	text/x-lua
-0	search/1	#!/usr/bin/env\ lua	Lua script text executable
-!:mime	text/x-lua
-0	search/1	#!\ /usr/bin/env\ lua	Lua script text executable
-!:mime	text/x-lua
-
-# Lua bytecode
-0	string		\033Lua			Lua bytecode,
->4	byte		0x50			version 5.0
->4	byte		0x51			version 5.1
-
-#------------------------------------------------------------------------------
-# luks:  file(1) magic for Linux Unified Key Setup
-# URL:	http://luks.endorphin.org/spec
-# From:	Anthon van der Neut <anthon@mnt.org>
-
-0	string		LUKS\xba\xbe	LUKS encrypted file,
->6	beshort		x		ver %d
->8	string		x		[%s,
->40	string		x		%s,
->72	string		x		%s]
->168	string		x		UUID: %s
-#------------------------------------------------------------
-# Mach has two magic numbers, 0xcafebabe and 0xfeedface.
-# Unfortunately the first, cafebabe, is shared with
-# Java ByteCode, so they are both handled in the file "cafebabe".
-# The "feedface" ones are handled herein.
-#------------------------------------------------------------
-0	lelong&0xfffffffe	0xfeedface	Mach-O
->0	byte		0xcf		64-bit
->12	lelong		1		object
->12	lelong		2		executable
->12	lelong		3		fixed virtual memory shared library
->12	lelong		4		core
->12	lelong		5		preload executable
->12	lelong		6		dynamically linked shared library
->12	lelong		7		dynamic linker
->12	lelong		8		bundle
->12	lelong		9		dynamically linked shared library stub
->12	lelong		>9
->>12	lelong		x		filetype=%ld
->4	lelong		<0
->>4	lelong		x		architecture=%ld
->4	lelong		1		vax
->4	lelong		2		romp
->4	lelong		3		architecture=3
->4	lelong		4		ns32032
->4	lelong		5		ns32332
->4	lelong		6		m68k
->4	lelong		7		i386
->4	lelong		8		mips
->4	lelong		9		ns32532
->4	lelong		10		architecture=10
->4	lelong		11		hppa
->4	lelong		12		acorn
->4	lelong		13		m88k
->4	lelong		14		sparc
->4	lelong		15		i860-big
->4	lelong		16		i860
->4	lelong		17		rs6000
->4	lelong		18		ppc
->4	lelong		16777234	ppc64
->4	lelong		>16777234
->>4	lelong		x		architecture=%ld
-#
-0	belong&0xfffffffe	0xfeedface	Mach-O
->3	byte		0xcf		64-bit
->12	belong		1		object
->12	belong		2		executable
->12	belong		3		fixed virtual memory shared library
->12	belong		4		core
->12	belong		5		preload executable
->12	belong		6               dynamically linked shared library
->12	belong		7               dynamic linker
->12	belong		8		bundle
->12	belong		9		dynamically linked shared library stub
->12	belong		>9
->>12	belong		x		filetype=%ld
->4	belong		<0
->>4	belong		x		architecture=%ld
->4	belong		1		vax
->4	belong		2		romp
->4	belong		3		architecture=3
->4	belong		4		ns32032
->4	belong		5		ns32332
->4	belong		6		for m68k architecture
-# from NeXTstep 3.0 <mach/machine.h>
-# i.e. mc680x0_all, ignore
-# >>8	belong		1		(mc68030)
->>8	belong		2		(mc68040)
->>8	belong		3		(mc68030 only)
->4	belong		7		i386
->4	belong		8		mips
->4	belong		9		ns32532
->4	belong		10		architecture=10
->4	belong		11		hppa
->4	belong		12		acorn
->4	belong		13		m88k
->4	belong		14		sparc
->4	belong		15		i860-big
->4	belong		16		i860
->4	belong		17		rs6000
->4	belong		18		ppc
->4	belong		16777234	ppc64
->4	belong		>16777234
->>4	belong		x		architecture=%ld
-
-#------------------------------------------------------------------------------
-# macintosh description
-#
-# BinHex is the Macintosh ASCII-encoded file format (see also "apple")
-# Daniel Quinlan, quinlan@yggdrasil.com
-11	string	must\ be\ converted\ with\ BinHex	BinHex binary text
-!:mime	application/mac-binhex40
->41	string	x					\b, version %.3s
-
-# Stuffit archives are the de facto standard of compression for Macintosh
-# files obtained from most archives. (franklsm@tuns.ca)
-0	string		SIT!			StuffIt Archive (data)
-!:mime	application/x-stuffit
-!:apple	SIT!SIT!
->2	string		x			: %s
-0	string		SITD			StuffIt Deluxe (data)
->2	string		x			: %s
-0	string		Seg			StuffIt Deluxe Segment (data)
->2	string		x			: %s
-
-# Newer StuffIt archives (grant@netbsd.org)
-0	string		StuffIt			StuffIt Archive
-!:mime	application/x-stuffit
-!:apple	SIT!SIT!
-#>162	string		>0			: %s
-
-# Macintosh Applications and Installation binaries (franklsm@tuns.ca)
-# GRR: Too weak
-#0	string		APPL			Macintosh Application (data)
-#>2	string		x			\b: %s
-
-# Macintosh System files (franklsm@tuns.ca)
-# GRR: Too weak
-#0	string		zsys			Macintosh System File (data)
-#0	string		FNDR			Macintosh Finder (data)
-#0	string		libr			Macintosh Library (data)
-#>2	string		x			: %s
-#0	string		shlb			Macintosh Shared Library (data)
-#>2	string		x			: %s
-#0	string		cdev			Macintosh Control Panel (data)
-#>2	string		x			: %s
-#0	string		INIT			Macintosh Extension (data)
-#>2	string		x			: %s
-#0	string		FFIL			Macintosh Truetype Font (data)
-#>2	string		x			: %s
-#0	string		LWFN			Macintosh Postscript Font (data)
-#>2	string		x			: %s
-
-# Additional Macintosh Files (franklsm@tuns.ca)
-# GRR: Too weak
-#0	string		PACT			Macintosh Compact Pro Archive (data)
-#>2	string		x			: %s
-#0	string		ttro			Macintosh TeachText File (data)
-#>2	string		x			: %s
-#0	string		TEXT			Macintosh TeachText File (data)
-#>2	string		x			: %s
-#0	string		PDF			Macintosh PDF File (data)
-#>2	string		x			: %s
-
-# MacBinary format (Eric Fischer, enf@pobox.com)
-#
-# Unfortunately MacBinary doesn't really have a magic number prior
-# to the MacBinary III format.  The checksum is really the way to
-# do it, but the magic file format isn't up to the challenge.
-#
-# 0	byte		0
-# 1	byte				# filename length
-# 2	string				# filename
-# 65    string				# file type
-# 69	string				# file creator
-# 73	byte				# Finder flags
-# 74	byte		0
-# 75	beshort				# vertical posn in window
-# 77	beshort				# horiz posn in window
-# 79	beshort				# window or folder ID
-# 81    byte				# protected?
-# 82	byte		0
-# 83	belong				# length of data segment
-# 87	belong				# length of resource segment
-# 91	belong				# file creation date
-# 95	belong				# file modification date
-# 99	beshort				# length of comment after resource
-# 101	byte				# new Finder flags
-# 102	string		mBIN		# (only in MacBinary III)
-# 106	byte				# char. code of file name
-# 107	byte				# still more Finder flags
-# 116	belong				# total file length
-# 120	beshort				# length of add'l header
-# 122	byte		129		# for MacBinary II
-# 122	byte		130		# for MacBinary III
-# 123	byte		129		# minimum version that can read fmt
-# 124	beshort				# checksum
-#
-# This attempts to use the version numbers as a magic number, requiring
-# that the first one be 0x80, 0x81, 0x82, or 0x83, and that the second
-# be 0x81.  This works for the files I have, but maybe not for everyone's.
-
-# Unfortunately, this magic is quite weak - MPi
-#122	beshort&0xFCFF	0x8081		Macintosh MacBinary data
-
-# MacBinary I doesn't have the version number field at all, but MacBinary II
-# has been in use since 1987 so I hope there aren't many really old files
-# floating around that this will miss.  The original spec calls for using
-# the nulls in 0, 74, and 82 as the magic number.
-#
-# Another possibility, that would also work for MacBinary I, is to use
-# the assumption that 65-72 will all be ASCII (0x20-0x7F), that 73 will
-# have bits 1 (changed), 2 (busy), 3 (bozo), and 6 (invisible) unset,
-# and that 74 will be 0.  So something like
-# 
-# 71 	belong&0x80804EFF 0x00000000 	Macintosh MacBinary data
-# 
-# >73	byte&0x01	0x01		\b, inited
-# >73	byte&0x02	0x02		\b, changed
-# >73	byte&0x04	0x04		\b, busy
-# >73	byte&0x08	0x08		\b, bozo
-# >73	byte&0x10	0x10		\b, system
-# >73	byte&0x10	0x20		\b, bundle
-# >73	byte&0x10	0x40		\b, invisible
-# >73	byte&0x10	0x80		\b, locked
-
-#>65	string		x		\b, type "%4.4s"
-
-#>65	string		8BIM		(PhotoShop)
-#>65	string		ALB3		(PageMaker 3)
-#>65	string		ALB4		(PageMaker 4)
-#>65	string		ALT3		(PageMaker 3)
-#>65	string		APPL		(application)
-#>65	string		AWWP		(AppleWorks word processor)
-#>65	string		CIRC		(simulated circuit)
-#>65	string		DRWG		(MacDraw)
-#>65	string		EPSF		(Encapsulated PostScript)
-#>65	string		FFIL		(font suitcase)
-#>65	string		FKEY		(function key)
-#>65	string		FNDR		(Macintosh Finder)
-#>65	string		GIFf		(GIF image)
-#>65	string		Gzip		(GNU gzip)
-#>65	string		INIT		(system extension)
-#>65	string		LIB\ 		(library)
-#>65	string		LWFN		(PostScript font)
-#>65	string		MSBC		(Microsoft BASIC)
-#>65	string		PACT		(Compact Pro archive)
-#>65	string		PDF\ 		(Portable Document Format)
-#>65	string		PICT		(picture)
-#>65	string		PNTG		(MacPaint picture)
-#>65	string		PREF		(preferences)
-#>65	string		PROJ		(Think C project)
-#>65	string		QPRJ		(Think Pascal project)
-#>65	string		SCFL		(Defender scores)
-#>65	string		SCRN		(startup screen)
-#>65	string		SITD		(StuffIt Deluxe)
-#>65	string		SPn3		(SuperPaint)
-#>65	string		STAK		(HyperCard stack)
-#>65	string		Seg\ 		(StuffIt segment)
-#>65	string		TARF		(Unix tar archive)
-#>65	string		TEXT		(ASCII)
-#>65	string		TIFF		(TIFF image)
-#>65	string		TOVF		(Eudora table of contents)
-#>65	string		WDBN		(Microsoft Word word processor)
-#>65	string		WORD		(MacWrite word processor)
-#>65	string		XLS\ 		(Microsoft Excel)
-#>65	string		ZIVM		(compress (.Z))
-#>65	string		ZSYS		(Pre-System 7 system file)
-#>65	string		acf3		(Aldus FreeHand)
-#>65	string		cdev		(control panel)
-#>65	string		dfil		(Desk Acessory suitcase)
-#>65	string		libr		(library)
-#>65	string		nX^d		(WriteNow word processor)
-#>65	string		nX^w		(WriteNow dictionary)
-#>65	string		rsrc		(resource)
-#>65	string		scbk		(Scrapbook)
-#>65	string		shlb		(shared library)
-#>65	string		ttro		(SimpleText read-only)
-#>65	string		zsys		(system file)
-
-#>69	string		x		\b, creator "%4.4s"
-
-# Somewhere, Apple has a repository of registered Creator IDs.  These are
-# just the ones that I happened to have files from and was able to identify.
-
-#>69	string		8BIM		(Adobe Photoshop)
-#>69	string		ALD3		(PageMaker 3)
-#>69	string		ALD4		(PageMaker 4)
-#>69	string		ALFA		(Alpha editor)
-#>69	string		APLS		(Apple Scanner)
-#>69	string		APSC		(Apple Scanner)
-#>69	string		BRKL		(Brickles)
-#>69	string		BTFT		(BitFont)
-#>69	string		CCL2 		(Common Lisp 2)
-#>69	string		CCL\ 		(Common Lisp)
-#>69	string		CDmo		(The Talking Moose)
-#>69	string		CPCT		(Compact Pro)
-#>69	string		CSOm		(Eudora)
-#>69	string		DMOV		(Font/DA Mover)
-#>69	string		DSIM		(DigSim)
-#>69	string		EDIT		(Macintosh Edit)
-#>69	string		ERIK		(Macintosh Finder)
-#>69	string		EXTR		(self-extracting archive)
-#>69	string		Gzip		(GNU gzip)
-#>69	string		KAHL		(Think C)
-#>69	string		LWFU		(LaserWriter Utility)
-#>69	string		LZIV		(compress)
-#>69	string		MACA		(MacWrite)
-#>69	string		MACS		(Macintosh operating system)
-#>69	string		MAcK		(MacKnowledge terminal emulator)
-#>69	string		MLND		(Defender)
-#>69	string		MPNT		(MacPaint)
-#>69	string		MSBB		(Microsoft BASIC (binary))
-#>69	string		MSWD		(Microsoft Word)
-#>69	string		NCSA		(NCSA Telnet)
-#>69	string		PJMM		(Think Pascal)
-#>69	string		PSAL		(Hunt the Wumpus)
-#>69	string		PSI2		(Apple File Exchange)
-#>69	string		R*ch		(BBEdit)
-#>69	string		RMKR		(Resource Maker)
-#>69	string		RSED		(Resource Editor)
-#>69	string		Rich		(BBEdit)
-#>69	string		SIT!		(StuffIt)
-#>69	string		SPNT		(SuperPaint)
-#>69	string		Unix		(NeXT Mac filesystem)
-#>69	string		VIM!		(Vim editor)
-#>69	string		WILD		(HyperCard)
-#>69	string		XCEL		(Microsoft Excel)
-#>69	string		aCa2		(Fontographer)
-#>69	string		aca3		(Aldus FreeHand)
-#>69	string		dosa		(Macintosh MS-DOS file system)
-#>69	string		movr		(Font/DA Mover)
-#>69	string		nX^n		(WriteNow)
-#>69	string		pdos		(Apple ProDOS file system)
-#>69	string		scbk		(Scrapbook)
-#>69	string		ttxt		(SimpleText)
-#>69	string		ufox		(Foreign File Access)
-
-# Just in case...
-
-102	string		mBIN		MacBinary III data with surprising version number
-
-# sas magic from Bruce Foster (bef@nwu.edu)
-#
-#0	string		SAS		SAS
-#>8	string		x		%s
-0	string		SAS		SAS
->24	string		DATA		data file
->24	string		CATALOG		catalog
->24	string		INDEX		data file index
->24	string		VIEW		data view
-# sas 7+ magic from Reinhold Koch (reinhold.koch@roche.com)
-#
-0x54    string          SAS             SAS 7+
->0x9C   string          DATA            data file
->0x9C   string          CATALOG         catalog
->0x9C   string          INDEX           data file index
->0x9C   string          VIEW            data view
-
-# spss magic for SPSS system and portable files, 
-#	 from Bruce Foster (bef@nwu.edu).
-
-0	long		0xc1e2c3c9	SPSS Portable File
->40	string 		x		%s
-
-0	string		$FL2		SPSS System File
->24	string		x		%s
-
-# Macintosh filesystem data
-# From "Tom N Harris" <telliamed@mac.com>
-# Fixed HFS+ and Partition map magic: Ethan Benson <erbenson@alaska.net>
-# The MacOS epoch begins on 1 Jan 1904 instead of 1 Jan 1970, so these
-# entries depend on the data arithmetic added after v.35
-# There's also some Pascal strings in here, ditto...
-
-# The boot block signature, according to IM:Files, is 
-# "for HFS volumes, this field always contains the value 0x4C4B."
-# But if this is true for MFS or HFS+ volumes, I don't know.
-# Alternatively, the boot block is supposed to be zeroed if it's
-# unused, so a simply >0 should suffice.
-
-0x400	beshort			0xD2D7		Macintosh MFS data
->0	beshort			0x4C4B		(bootable)
->0x40a	beshort			&0x8000		(locked)
->0x402	beldate-0x7C25B080	x		created: %s,
->0x406	beldate-0x7C25B080	>0		last backup: %s,
->0x414	belong			x		block size: %d,
->0x412	beshort			x		number of blocks: %d,
->0x424	pstring			x		volume name: %s
-
-# "BD" is has many false positives
-#0x400	beshort			0x4244		Macintosh HFS data
-#>0	beshort			0x4C4B		(bootable)
-#>0x40a	beshort			&0x8000		(locked)
-#>0x40a	beshort			^0x0100		(mounted)
-#>0x40a	beshort			&0x0200		(spared blocks)
-#>0x40a	beshort			&0x0800		(unclean)
-#>0x47C	beshort			0x482B		(Embedded HFS+ Volume)
-#>0x402	beldate-0x7C25B080	x		created: %s,
-#>0x406	beldate-0x7C25B080	x		last modified: %s,
-#>0x440	beldate-0x7C25B080	>0		last backup: %s,
-#>0x414	belong			x		block size: %d,
-#>0x412	beshort			x		number of blocks: %d,
-#>0x424	pstring			x		volume name: %s
-
-0x400	beshort			0x482B		Macintosh HFS Extended
->&0	beshort			x		version %d data
->0	beshort			0x4C4B		(bootable)
->0x404	belong			^0x00000100	(mounted)
->&2	belong			&0x00000200	(spared blocks)
->&2	belong			&0x00000800	(unclean)
->&2	belong			&0x00008000	(locked)
->&6	string			x		last mounted by: '%.4s',
-# really, that should be treated as a belong and we print a string
-# based on the value. TN1150 only mentions '8.10' for "MacOS 8.1"
->&14	beldate-0x7C25B080	x		created: %s,
-# only the creation date is local time, all other timestamps in HFS+ are UTC.
->&18	bedate-0x7C25B080	x		last modified: %s,
->&22	bedate-0x7C25B080	>0		last backup: %s,
->&26	bedate-0x7C25B080	>0		last checked: %s,
->&38	belong			x		block size: %d,
->&42	belong			x		number of blocks: %d,
->&46	belong			x		free blocks: %d
-
-# I don't think this is really necessary since it doesn't do much and 
-# anything with a valid driver descriptor will also have a valid
-# partition map
-#0		beshort		0x4552		Apple Device Driver data
-#>&24		beshort		=1		\b, MacOS
-
-# Is that the partition type a cstring or a pstring? Well, IM says "strings 
-# shorter than 32 bytes must be terminated with NULL" so I'll treat it as a 
-# cstring. Of course, partitions can contain more than four entries, but 
-# what're you gonna do?
-# GRR: This magic is too weak, it is just "PM"
-#0x200		beshort		0x504D		Apple Partition data
-#>0x2		beshort		x		(block size: %d):
-#>0x230		string		x		first type: %s,
-#>0x210		string		x		name: %s,
-#>0x254		belong		x		number of blocks: %d,
-#>0x400		beshort		0x504D		
-#>>0x430		string		x		second type: %s,
-#>>0x410		string		x		name: %s,
-#>>0x454		belong		x		number of blocks: %d,
-#>>0x600		beshort		0x504D
-#>>>0x630	string		x		third type: %s,
-#>>>0x610	string		x		name: %s,
-#>>>0x654	belong		x		number of blocks: %d,
-#>>0x800		beshort		0x504D		
-#>>>0x830	string		x		fourth type: %s,
-#>>>0x810	string		x		name: %s,
-#>>>0x854	belong		x		number of blocks: %d,
-#>>>0xa00	beshort		0x504D		
-#>>>>0xa30	string		x		fifth type: %s,
-#>>>>0xa10	string		x		name: %s,
-#>>>>0xa54	belong		x		number of blocks: %d
-#>>>0xc00	beshort		0x504D
-#>>>>0xc30	string		x		sixth type: %s,
-#>>>>0xc10	string		x		name: %s,
-#>>>>0xc54	belong		x		number of blocks: %d
-## AFAIK, only the signature is different
-#0x200		beshort		0x5453		Apple Old Partition data
-#>0x2		beshort		x		block size: %d,
-#>0x230		string		x		first type: %s,
-#>0x210		string		x		name: %s,
-#>0x254		belong		x		number of blocks: %d,
-#>0x400		beshort		0x504D		
-#>>0x430		string		x		second type: %s,
-#>>0x410		string		x		name: %s,
-#>>0x454		belong		x		number of blocks: %d,
-#>>0x800		beshort		0x504D		
-#>>>0x830	string		x		third type: %s,
-#>>>0x810	string		x		name: %s,
-#>>>0x854	belong		x		number of blocks: %d,
-#>>>0xa00	beshort		0x504D		
-#>>>>0xa30	string		x		fourth type: %s,
-#>>>>0xa10	string		x		name: %s,
-#>>>>0xa54	belong		x		number of blocks: %d
-
-# From: Remi Mommsen <mommsen@slac.stanford.edu>
-0		string		BOMStore	Mac OS X bill of materials (BOM) file
-
-#------------------------------------------------------------------------------
-# magic:  file(1) magic for magic files
-#
-0	string		#\ Magic	magic text file for file(1) cmd
-0	lelong		0xF11E041C	magic binary file for file(1) cmd
->4	lelong		x		(version %d) (little endian)
-0	belong		0xF11E041C	magic binary file for file(1) cmd
->4	belong		x		(version %d) (big endian)
-#------------------------------------------------------------------------------
-# mail.news:  file(1) magic for mail and news
-#
-# Unfortunately, saved netnews also has From line added in some news software.
-#0	string		From 		mail text
-# There are tests to ascmagic.c to cope with mail and news.
-0	string		Relay-Version: 	old news text
-!:mime	message/rfc822
-0	string		#!\ rnews	batched news text
-!:mime	message/rfc822
-0	string		N#!\ rnews	mailed, batched news text
-!:mime	message/rfc822
-0	string		Forward\ to 	mail forwarding text
-!:mime	message/rfc822
-0	string		Pipe\ to 	mail piping text
-!:mime	message/rfc822
-0	string		Return-Path:	smtp mail text
-!:mime	message/rfc822
-0	string		Path:		news text
-!:mime	message/news
-0	string		Xref:		news text
-!:mime	message/news
-0	string		From:		news or mail text
-!:mime	message/rfc822
-0	string		Article 	saved news text
-!:mime	message/news
-0	string		BABYL		Emacs RMAIL text
-0	string		Received:	RFC 822 mail text
-!:mime	message/rfc822
-0	string		MIME-Version:	MIME entity text
-#0	string		Content-	MIME entity text
-
-# TNEF files...
-0	lelong		0x223E9F78	Transport Neutral Encapsulation Format
-
-# From: Kevin Sullivan <ksulliva@psc.edu>
-0	string		*mbx*		MBX mail folder
-
-# From: Simon Matter <simon.matter@invoca.ch>
-0	string		\241\002\213\015skiplist\ file\0\0\0	Cyrus skiplist DB
-
-# JAM(mbp) Fidonet message area databases
-# JHR file
-0	string	JAM\0			JAM message area header file
->12	leshort >0			(%d messages)
-
-# Squish Fidonet message area databases
-# SQD file (requires at least one message in the area)
-# XXX: Weak magic
-#256	leshort	0xAFAE4453		Squish message area data file
-#>4	leshort	>0			(%d messages)
-
-#0	string		\<!--\ MHonArc		text/html; x-type=mhonarc
-
-#------------------------------------------------------------------------------
-# maple:  file(1) magic for maple files
-# "H. Nanosecond" <aldomel@ix.netcom.com>
-# Maple V release 4, a multi-purpose math program
-#
-
-# maple library .lib
-0	string	\000MVR4\nI	MapleVr4 library
-
-# .ind
-# no magic for these :-(
-# they are compiled indexes for maple files
-
-# .hdb 
-0	string	\000\004\000\000	Maple help database
-
-# .mhp
-# this has the form <PACKAGE=name>
-0	string	\<PACKAGE=	Maple help file
-0	string	\<HELP\ NAME=	Maple help file
-0	string	\n\<HELP\ NAME=	Maple help file with extra carriage return at start (yuck)
-#0	string	#\ Newton	Maple help file, old style
-0	string	#\ daub	Maple help file, old style
-#0	string	#===========	Maple help file, old style
-
-# .mws
-0	string	\000\000\001\044\000\221	Maple worksheet
-#this is anomalous
-0	string	WriteNow\000\002\000\001\000\000\000\000\100\000\000\000\000\000	Maple worksheet, but weird
-# this has the form {VERSION 2 3 "IBM INTEL NT" "2.3" }\n
-# that is {VERSION major_version miunor_version computer_type version_string}
-0	string	{VERSION\ 	Maple worksheet
->9	string	>\0	version %.1s.
->>>11	string	>\0	%.1s
-
-# .mps
-0	string	\0\0\001$	Maple something
-# from byte 4 it is either 'nul E' or 'soh R'
-# I think 'nul E' means a file that was saved as  a different name
-# a sort of revision marking
-# 'soh R' means new 
->4	string	\000\105	An old revision
->4	string	\001\122	The latest save
-
-# .mpl
-# some of these are the same as .mps above
-#0000000 000 000 001 044 000 105 same as .mps
-#0000000 000 000 001 044 001 122 same as .mps
-
-0	string	#\n##\ <SHAREFILE=	Maple something
-0	string	\n#\n##\ <SHAREFILE=	Maple something
-0	string	##\ <SHAREFILE=	Maple something
-0	string	#\r##\ <SHAREFILE=	Maple something
-0	string	\r#\r##\ <SHAREFILE=	Maple something
-0	string	#\ \r##\ <DESCRIBE>	Maple something anomalous.
-
-#------------------------------------------------------------------------------
-# mathcad:  file(1) magic for Mathcad documents
-# URL:	http://www.mathsoft.com/
-# From:	Josh Triplett <josh@freedesktop.org>
-
-0	string	.MCAD\t		Mathcad document
-#------------------------------------------------------------------------------
-# mathematica:  file(1) magic for mathematica files
-# "H. Nanosecond" <aldomel@ix.netcom.com>
-# Mathematica a multi-purpose math program
-# versions 2.2 and 3.0
-
-#mathematica .mb
-0	string	\064\024\012\000\035\000\000\000	Mathematica version 2 notebook
-0	string	\064\024\011\000\035\000\000\000	Mathematica version 2 notebook
-
-# .ma
-# multiple possibilites:
-
-0	string	(*^\n\n::[\011frontEndVersion\ =\ 	Mathematica notebook
-#>41	string	>\0	%s
-
-#0	string	(*^\n\n::[\011palette	Mathematica notebook version 2.x
-
-#0	string	(*^\n\n::[\011Information	Mathematica notebook version 2.x
-#>675	string	>\0	%s #doesn't work well
-
-# there may be 'cr' instread of 'nl' in some does this matter?
-
-# generic:
-0	string	(*^\r\r::[\011	Mathematica notebook version 2.x
-0	string	(*^\r\n\r\n::[\011	Mathematica notebook version 2.x
-0	string	(*^\015			Mathematica notebook version 2.x
-0	string	(*^\n\r\n\r::[\011	Mathematica notebook version 2.x
-0	string	(*^\r::[\011	Mathematica notebook version 2.x
-0	string	(*^\r\n::[\011	Mathematica notebook version 2.x
-0	string	(*^\n\n::[\011	Mathematica notebook version 2.x
-0	string	(*^\n::[\011	Mathematica notebook version 2.x
-
-
-# Mathematica .mx files
-
-#0	string	(*This\ is\ a\ Mathematica\ binary\ dump\ file.\ It\ can\ be\ loaded\ with\ Get.*)	Mathematica binary file
-0	string	(*This\ is\ a\ Mathematica\ binary\ 	Mathematica binary file
-#>71	string \000\010\010\010\010\000\000\000\000\000\000\010\100\010\000\000\000	
-# >71... is optional
->88	string	>\0	from %s
-
-
-# Mathematica files PBF:
-# 115 115 101 120 102 106 000 001 000 000 000 203 000 001 000
-0	string	MMAPBF\000\001\000\000\000\203\000\001\000	Mathematica PBF (fonts I think)
-
-# .ml files  These are menu resources I think
-# these start with "[0-9][0-9][0-9]\ A~[0-9][0-9][0-9]\ 
-# how to put that into a magic rule?
-4	string	\ A~	MAthematica .ml file
-
-# .nb files
-#too long 0	string	(***********************************************************************\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Mathematica-Compatible Notebook	Mathematica 3.0 notebook
-0	string	(***********************	Mathematica 3.0 notebook
-
-# other (* matches it is a comment start in these langs
-# GRR: Too weak; also matches other languages e.g. ML
-#0	string	(*	Mathematica, or Pascal, Modula-2 or 3 code text
-
-#########################
-# MatLab v5
-0       string  MATLAB  Matlab v5 mat-file
->126    short   0x494d  (big endian)
->>124   beshort x       version 0x%04x
->126    short   0x4d49  (little endian)
->>124   leshort x       version 0x%04x
-
-
-#------------------------------------------------------------------------------
-# matroska:  file(1) magic for Matroska files
-#
-# See http://www.matroska.org/
-#
-
-# EBML id:
-0		belong		0x1a45dfa3
-# DocType id:
->5		beshort		0x4282
-# DocType contents:
->>8		string		matroska	Matroska data
-
-#------------------------------------------------------------------------------
-# Mavroyanopoulos Nikos <nmav@hellug.gr>
-# mcrypt:   file(1) magic for mcrypt 2.2.x;
-0	string		\0m\3		mcrypt 2.5 encrypted data,
->4	string		>\0		algorithm: %s,
->>&1	leshort		>0		keysize: %d bytes,
->>>&0	string		>\0		mode: %s,
-
-0	string		\0m\2		mcrypt 2.2 encrypted data,
->3	byte		0		algorithm: blowfish-448,
->3	byte		1		algorithm: DES,
->3	byte		2		algorithm: 3DES,
->3	byte		3		algorithm: 3-WAY,
->3	byte		4		algorithm: GOST,
->3	byte		6		algorithm: SAFER-SK64,
->3	byte		7		algorithm: SAFER-SK128,
->3	byte		8		algorithm: CAST-128,
->3	byte		9		algorithm: xTEA,
->3	byte		10		algorithm: TWOFISH-128,
->3	byte		11		algorithm: RC2,
->3	byte		12		algorithm: TWOFISH-192,
->3	byte		13		algorithm: TWOFISH-256,
->3	byte		14		algorithm: blowfish-128,
->3	byte		15		algorithm: blowfish-192,
->3	byte		16		algorithm: blowfish-256,
->3	byte		100		algorithm: RC6,
->3	byte		101		algorithm: IDEA,
->4	byte		0		mode: CBC,
->4	byte		1		mode: ECB,
->4	byte		2		mode: CFB,
->4	byte		3		mode: OFB,
->4	byte		4		mode: nOFB,
->5	byte		0		keymode: 8bit
->5	byte		1		keymode: 4bit
->5	byte		2		keymode: SHA-1 hash
->5	byte		3		keymode: MD5 hash
-
-#------------------------------------------------------------------------------
-# mercurial:  file(1) magic for Mercurial changeset bundles
-# http://www.selenic.com/mercurial/wiki/
-#
-# Jesse Glick (jesse.glick@sun.com)
-#
-
-0	string		HG10		Mercurial changeset bundle
->4	string		UN		(uncompressed)
->4	string		GZ		(gzip compressed)
->4	string		BZ		(bzip2 compressed)
-#------------------------------------------------------------------------------
-# mime:  file(1) magic for MIME encoded files
-#
-0	string		Content-Type:\ 
->14	string		>\0		%s
-0	string		Content-Type:
->13	string		>\0		%s
-
-#------------------------------------------------------------------------------
-# mips:  file(1) magic for Silicon Graphics (MIPS, IRIS, IRIX, etc.)
-#                         Dec Ultrix (MIPS)
-# all of SGI's *current* machines and OSes run in big-endian mode on the
-# MIPS machines, as far as I know.
-#
-# XXX - what is the blank "-" line?
-#
-# kbd file definitions
-0	string	kbd!map		kbd map file
->8	byte	>0		Ver %d:
->10	short	>0		with %d table(s)
-0	belong	0407		old SGI 68020 executable
-0	belong	0410		old SGI 68020 pure executable
-0	beshort	0x8765		disk quotas file
-0	beshort	0x0506		IRIS Showcase file
->2	byte	0x49		-
->3	byte	x		- version %ld
-0	beshort	0x0226		IRIS Showcase template
->2	byte	0x63		-
->3	byte	x		- version %ld
-0	belong	0x5343464d	IRIS Showcase file
->4	byte	x		- version %ld
-0	belong	0x5443464d	IRIS Showcase template
->4	byte	x		- version %ld
-0	belong	0xdeadbabe	IRIX Parallel Arena
->8	belong	>0		- version %ld
-#
-0	beshort	0x0160		MIPSEB ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		.%ld
-#
-0	beshort	0x0162		MIPSEL-BE ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %d
->22	byte	x		.%ld
-#
-0	beshort	0x6001		MIPSEB-LE ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %d
->22	byte	x		.%ld
-#
-0	beshort	0x6201		MIPSEL ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		.%ld
-#
-# MIPS 2 additions
-#
-0	beshort	0x0163		MIPSEB MIPS-II ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		.%ld
-#
-0	beshort	0x0166		MIPSEL-BE MIPS-II ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		.%ld
-#
-0	beshort	0x6301		MIPSEB-LE MIPS-II ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		.%ld
-#
-0	beshort	0x6601		MIPSEL MIPS-II ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		.%ld
-#
-# MIPS 3 additions
-#
-0	beshort	0x0140		MIPSEB MIPS-III ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		.%ld
-#
-0	beshort	0x0142		MIPSEL-BE MIPS-III ECOFF executable
->20	beshort	0407		(impure)
->20	beshort	0410		(swapped)
->20	beshort	0413		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		.%ld
-#
-0	beshort	0x4001		MIPSEB-LE MIPS-III ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		.%ld
-#
-0	beshort	0x4201		MIPSEL MIPS-III ECOFF executable
->20	beshort	03401		(impure)
->20	beshort	04001		(swapped)
->20	beshort	05401		(paged)
->8	belong	>0		not stripped
->8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		.%ld
-#
-0	beshort	0x180		MIPSEB Ucode
-0	beshort	0x182		MIPSEL-BE Ucode
-# 32bit core file
-0	belong	0xdeadadb0	IRIX core dump
->4	belong	1		of
->16	string	>\0		'%s'
-# 64bit core file
-0	belong	0xdeadad40	IRIX 64-bit core dump
->4	belong	1		of
->16	string	>\0		'%s'
-# N32bit core file
-0       belong	0xbabec0bb	IRIX N32 core dump
->4      belong	1               of
->16     string	>\0             '%s'
-# New style crash dump file
-0	string	\x43\x72\x73\x68\x44\x75\x6d\x70	IRIX vmcore dump of
->36	string	>\0					'%s'
-# Trusted IRIX info
-0	string	SGIAUDIT	SGI Audit file
->8	byte	x		- version %d
->9	byte	x		.%ld
-#
-0	string	WNGZWZSC	Wingz compiled script
-0	string	WNGZWZSS	Wingz spreadsheet
-0	string	WNGZWZHP	Wingz help file
-#
-0	string	#Inventor V	IRIS Inventor 1.0 file
-0	string	#Inventor V2	Open Inventor 2.0 file
-# GLF is OpenGL stream encoding
-0	string	glfHeadMagic();		GLF_TEXT
-4	belong	0x7d000000		GLF_BINARY_LSB_FIRST
-4	belong	0x0000007d		GLF_BINARY_MSB_FIRST
-# GLS is OpenGL stream encoding; GLS is the successor of GLF
-0	string	glsBeginGLS(		GLS_TEXT
-4	belong	0x10000000		GLS_BINARY_LSB_FIRST
-4	belong	0x00000010		GLS_BINARY_MSB_FIRST
-
-#------------------------------------------------------------------------------
-# mirage:  file(1) magic for Mirage executables
-#
-# XXX - byte order?
-#
-0	long	31415		Mirage Assembler m.out executable
-#-----------------------------------------------------------------------------
-# misctools:  file(1) magic for miscellaneous UNIX tools.
-#
-0	search/1	%%!!			X-Post-It-Note text
-0	string/c	BEGIN:VCALENDAR		vCalendar calendar file
-0	string/c	BEGIN:VCARD		vCard visiting card
-!:mime	text/x-vcard
-
-# From: Alex Beregszaszi <alex@fsn.hu>
-4	string	gtktalog		GNOME Catalogue (gtktalog)
->13	string	>\0			version %s
-
-# Summary: Libtool library file
-# Extension: .la
-# Submitted by: Tomasz Trojanowski <tomek@uninet.com.pl>
-0	search/80	.la\ -\ a\ libtool\ library\ file	libtool library file
-
-# Summary: Libtool object file
-# Extension: .lo
-# Submitted by: Abel Cheung <abelcheung@gmail.com>
-0	search/80	.lo\ -\ a\ libtool\ object\ file	libtool object file
-
-#------------------------------------------------------------------------------
-# mkid:  file(1) magic for mkid(1) databases
-#
-# ID is the binary tags database produced by mkid(1).
-#
-# XXX - byte order?
-#
-0	string		\311\304	ID tags data
->2	short		>0		version %d
-
-#------------------------------------------------------------------------------
-# mlssa: file(1) magic for MLSSA datafiles
-#
-0		lelong		0xffffabcd	MLSSA datafile,
->4		leshort		x		algorithm %d,
->10		lelong		x		%d samples
-
-#------------------------------------------------------------------------------
-# mmdf:  file(1) magic for MMDF mail files
-#
-0	string	\001\001\001\001	MMDF mailbox
-#------------------------------------------------------------------------------
-# modem:  file(1) magic for modem programs
-#
-# From: Florian La Roche <florian@knorke.saar.de>
-1	string		PC\ Research,\ Inc	Digifax-G3-File
->29	byte		1			\b, fine resolution
->29	byte		0			\b, normal resolution
-
-0	short		0x0100		raw G3 data, byte-padded
-0	short		0x1400		raw G3 data
-#
-# Magic data for vgetty voice formats
-# (Martin Seine & Marc Eberhard)
-
-#
-# raw modem data version 1
-#
-0    string    RMD1      raw modem data
->4   string    >\0       (%s /
->20  short     >0        compression type 0x%04x)
-
-#
-# portable voice format 1
-#
-0    string    PVF1\n         portable voice format
->5   string    >\0       (binary %s)
-
-#
-# portable voice format 2
-#
-0    string    PVF2\n         portable voice format
->5   string >\0          (ascii %s)
-
-
-#------------------------------------------------------------------------------
-# motorola:  file(1) magic for Motorola 68K and 88K binaries
-#
-# 68K
-#
-0	beshort		0520		mc68k COFF
->18	beshort		^00000020	object
->18	beshort		&00000020	executable
->12	belong		>0		not stripped
->168	string		.lowmem		Apple toolbox
->20	beshort		0407		(impure)
->20	beshort		0410		(pure)
->20	beshort		0413		(demand paged)
->20	beshort		0421		(standalone)
-0	beshort		0521		mc68k executable (shared)
->12	belong		>0		not stripped
-0	beshort		0522		mc68k executable (shared demand paged)
->12	belong		>0		not stripped
-#
-# Motorola/UniSoft 68K Binary Compatibility Standard (BCS)
-#
-0	beshort		0554		68K BCS executable
-#
-# 88K
-#
-# Motorola/88Open BCS
-#
-0	beshort		0555		88K BCS executable
-#
-# Motorola S-Records, from Gerd Truschinski <gt@freebsd.first.gmd.de>
-0   string      S0          Motorola S-Record; binary data in text format
-
-# ATARI ST relocatable PRG
-#
-# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001
-# (according to Roland Waldi, Oct 21, 1987)
-# besides the magic 0x601a, the text segment size is checked to be
-# not larger than 1 MB (which is a lot on ST).
-# The additional 0x601b distinction I took from Doug Lee's magic.
-0	belong&0xFFFFFFF0	0x601A0000	Atari ST M68K contiguous executable
->2	belong			x		(txt=%ld,
->6	belong			x		dat=%ld,
->10	belong			x		bss=%ld,
->14	belong			x		sym=%ld)
-0	belong&0xFFFFFFF0	0x601B0000	Atari ST M68K non-contig executable
->2	belong			x		(txt=%ld,
->6	belong			x		dat=%ld,
->10	belong			x		bss=%ld,
->14	belong			x		sym=%ld)
-
-# Atari ST/TT... program format (sent by Wolfram Kleff <kleff@cs.uni-bonn.de>)
-0       beshort         0x601A          Atari 68xxx executable,
->2      belong          x               text len %lu,
->6      belong          x               data len %lu,
->10     belong          x               BSS len %lu,
->14     belong          x               symboltab len %lu,
->18     belong          0
->22     belong          &0x01           fastload flag,
->22     belong          &0x02           may be loaded to alternate RAM,
->22     belong          &0x04           malloc may be from alternate RAM,
->22     belong          x               flags: 0x%lX,
->26     beshort         0               no relocation tab
->26     beshort         !0              + relocation tab
->30     string          SFX             [Self-Extracting LZH SFX archive]
->38     string          SFX             [Self-Extracting LZH SFX archive]
->44     string          ZIP!            [Self-Extracting ZIP SFX archive]
-
-0       beshort         0x0064          Atari 68xxx CPX file
->8      beshort         x               (version %04lx)
-
-#------------------------------------------------------------------------------
-# mozilla:  file(1) magic for Mozilla XUL fastload files 
-# (XUL.mfasl and XPC.mfasl)
-# URL:	http://www.mozilla.org/
-# From:	Josh Triplett <josh@freedesktop.org>
-
-0	string	XPCOM\nMozFASL\r\n\x1A		Mozilla XUL fastload data
-
-#------------------------------------------------------------------------------
-# msdos:  file(1) magic for MS-DOS files
-#
-
-# .BAT files (Daniel Quinlan, quinlan@yggdrasil.com)
-# updated by Joerg Jenderek at Oct 2008
-0	string	@			
->1	string/cB	\ echo\ off	DOS batch file text
-!:mime	text/x-msdos-batch
->1	string/cB	echo\ off	DOS batch file text
-!:mime	text/x-msdos-batch
->1	string/cB	rem\ 		DOS batch file text
-!:mime	text/x-msdos-batch
->1	string/cB	set\ 		DOS batch file text
-!:mime	text/x-msdos-batch
-
-
-# OS/2 batch files are REXX. the second regex is a bit generic, oh well
-# the matched commands seem to be common in REXX and uncommon elsewhere
-100	search/0xffff   rxfuncadd
->100	regex/c =^[\ \t]{0,10}call[\ \t]{1,10}rxfunc	OS/2 REXX batch file text
-100	search/0xffff   say
->100	regex/c =^[\ \t]{0,10}say\ ['"]			OS/2 REXX batch file text
-
-0	leshort		0x14c	MS Windows COFF Intel 80386 object file
-#>4	ledate		x	stamp %s
-0	leshort		0x166	MS Windows COFF MIPS R4000 object file
-#>4	ledate		x	stamp %s
-0	leshort		0x184	MS Windows COFF Alpha object file
-#>4	ledate		x	stamp %s
-0	leshort		0x268	MS Windows COFF Motorola 68000 object file
-#>4	ledate		x	stamp %s
-0	leshort		0x1f0	MS Windows COFF PowerPC object file
-#>4	ledate		x	stamp %s
-0	leshort		0x290	MS Windows COFF PA-RISC object file
-#>4	ledate		x	stamp %s
-
-# XXX - according to Microsoft's spec, at an offset of 0x3c in a
-# PE-format executable is the offset in the file of the PE header;
-# unfortunately, that's a little-endian offset, and there's no way
-# to specify an indirect offset with a specified byte order.
-# So, for now, we assume the standard MS-DOS stub, which puts the
-# PE header at 0x80 = 128.
-#
-# Required OS version and subsystem version were 4.0 on some NT 3.51
-# executables built with Visual C++ 4.0, so it's not clear that
-# they're interesting.	The user version was 0.0, but there's
-# probably some linker directive to set it.  The linker version was
-# 3.0, except for one ".exe" which had it as 4.20 (same damn linker!).
-#
-# many of the compressed formats were extraced from IDARC 1.23 source code
-#
-0	string	MZ
-!:mime	application/x-dosexec
->0x18  leshort <0x40 MS-DOS executable
->0 string MZ\0\0\0\0\0\0\0\0\0\0PE\0\0 \b, PE for MS Windows
->>&18	leshort&0x2000	>0	(DLL)
->>&88	leshort		0	(unknown subsystem)
->>&88	leshort		1	(native)
->>&88	leshort		2	(GUI)
->>&88	leshort		3	(console)
->>&88	leshort		7	(POSIX)
->>&0	leshort		0x0	unknown processor
->>&0	leshort		0x14c	Intel 80386
->>&0	leshort		0x166	MIPS R4000
->>&0	leshort		0x184	Alpha
->>&0	leshort		0x268	Motorola 68000
->>&0	leshort		0x1f0	PowerPC
->>&0	leshort		0x290	PA-RISC
->>&18	leshort&0x0100	>0	32-bit
->>&18	leshort&0x1000	>0	system file
->>&228	lelong		>0	\b, Mono/.Net assembly
->>&0xf4 search/0x140 \x0\x40\x1\x0
->>>(&0.l+(4)) string MSCF \b, WinHKI CAB self-extracting archive
->30		string	Copyright\ 1989-1990\ PKWARE\ Inc.	Self-extracting PKZIP archive
-!:mime	application/zip
-# Is next line correct? One might expect "Corp." not "Copr." If it is right, add a note to that effect.
->30		string	PKLITE\ Copr.	Self-extracting PKZIP archive
-!:mime	application/zip
-
->0x18  leshort >0x3f
->>(0x3c.l) string PE\0\0 PE
->>>(0x3c.l+25) byte		1 \b32 executable
->>>(0x3c.l+25) byte		2 \b32+ executable
-# hooray, there's a DOS extender using the PE format, with a valid PE
-# executable inside (which just prints a message and exits if run in win)
->>>(0x3c.l+92)	leshort		<10
->>>>(8.s*16) string 32STUB for MS-DOS, 32rtm DOS extender
->>>>(8.s*16) string !32STUB for MS Windows
->>>>>(0x3c.l+22)	leshort&0x2000	>0	(DLL)
->>>>>(0x3c.l+92)	leshort		0	(unknown subsystem)
->>>>>(0x3c.l+92)	leshort		1	(native)
->>>>>(0x3c.l+92)	leshort		2	(GUI)
->>>>>(0x3c.l+92)	leshort		3	(console)
->>>>>(0x3c.l+92)	leshort		7	(POSIX)
->>>(0x3c.l+92)	leshort		10	(EFI application)
->>>(0x3c.l+92)	leshort		11	(EFI boot service driver)
->>>(0x3c.l+92)	leshort		12	(EFI runtime driver)
->>>(0x3c.l+92)	leshort		13	(XBOX)
->>>(0x3c.l+4)	leshort		0x0	unknown processor
->>>(0x3c.l+4)	leshort		0x14c	Intel 80386
->>>(0x3c.l+4)	leshort		0x166	MIPS R4000
->>>(0x3c.l+4)	leshort		0x184	Alpha
->>>(0x3c.l+4)	leshort		0x268	Motorola 68000
->>>(0x3c.l+4)	leshort		0x1f0	PowerPC
->>>(0x3c.l+4)	leshort		0x290	PA-RISC
->>>(0x3c.l+4)	leshort		0x200	Intel Itanium
->>>(0x3c.l+22)	leshort&0x0100	>0	32-bit
->>>(0x3c.l+22)	leshort&0x1000	>0	system file
->>>(0x3c.l+232) lelong	>0	Mono/.Net assembly
-
->>>>(0x3c.l+0xf8)	string		UPX0 \b, UPX compressed
->>>>(0x3c.l+0xf8)	search/0x140	PEC2 \b, PECompact2 compressed
->>>>(0x3c.l+0xf8)	search/0x140	UPX2
->>>>>(&0x10.l+(-4))	string		PK\3\4 \b, ZIP self-extracting archive (Info-Zip)
->>>>(0x3c.l+0xf8)	search/0x140	.idata
->>>>>(&0xe.l+(-4))	string		PK\3\4 \b, ZIP self-extracting archive (Info-Zip)
->>>>>(&0xe.l+(-4))	string		ZZ0 \b, ZZip self-extracting archive
->>>>>(&0xe.l+(-4))	string		ZZ1 \b, ZZip self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.rsrc
->>>>>(&0x0f.l+(-4))	string		a\\\4\5 \b, WinHKI self-extracting archive
->>>>>(&0x0f.l+(-4))	string		Rar! \b, RAR self-extracting archive
->>>>>(&0x0f.l+(-4))	search/0x3000	MSCF \b, InstallShield self-extracting archive
->>>>>(&0x0f.l+(-4))	search/32	Nullsoft \b, Nullsoft Installer self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.data
->>>>>(&0x0f.l)		string		WEXTRACT \b, MS CAB-Installer self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.petite\0 \b, Petite compressed
->>>>>(0x3c.l+0xf7)	byte		x
->>>>>>(&0x104.l+(-4))	string		=!sfx! \b, ACE self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.WISE \b, WISE installer self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.dz\0\0\0 \b, Dzip self-extracting archive
->>>>(0x3c.l+0xf8)	search/0x140	.reloc
->>>>>(&0xe.l+(-4))	search/0x180	PK\3\4 \b, ZIP self-extracting archive (WinZip)
-
->>>>&(0x3c.l+0xf8)	search/0x100	_winzip_ \b, ZIP self-extracting archive (WinZip)
->>>>&(0x3c.l+0xf8)	search/0x100	SharedD \b, Microsoft Installer self-extracting archive
->>>>0x30		string		Inno \b, InnoSetup self-extracting archive
-
->>(0x3c.l) string !PE\0\0 MS-DOS executable
-
->>(0x3c.l)		string		NE \b, NE
->>>(0x3c.l+0x36)	byte		0 (unknown OS)
->>>(0x3c.l+0x36)	byte		1 for OS/2 1.x
->>>(0x3c.l+0x36)	byte		2 for MS Windows 3.x
->>>(0x3c.l+0x36)	byte		3 for MS-DOS
->>>(0x3c.l+0x36)	byte		>3 (unknown OS)
->>>(0x3c.l+0x36)	byte		0x81 for MS-DOS, Phar Lap DOS extender
->>>(0x3c.l+0x0c)	leshort&0x8003	0x8002 (DLL)
->>>(0x3c.l+0x0c)	leshort&0x8003	0x8001 (driver)
->>>&(&0x24.s-1)		string		ARJSFX \b, ARJ self-extracting archive
->>>(0x3c.l+0x70)	search/0x80	WinZip(R)\ Self-Extractor \b, ZIP self-extracting archive (WinZip)
-
->>(0x3c.l)		string		LX\0\0 \b, LX
->>>(0x3c.l+0x0a)	leshort		<1 (unknown OS)
->>>(0x3c.l+0x0a)	leshort		1 for OS/2
->>>(0x3c.l+0x0a)	leshort		2 for MS Windows
->>>(0x3c.l+0x0a)	leshort		3 for DOS
->>>(0x3c.l+0x0a)	leshort		>3 (unknown OS)
->>>(0x3c.l+0x10)	lelong&0x28000	=0x8000 (DLL)
->>>(0x3c.l+0x10)	lelong&0x20000	>0 (device driver)
->>>(0x3c.l+0x10)	lelong&0x300	0x300 (GUI)
->>>(0x3c.l+0x10)	lelong&0x28300	<0x300 (console)
->>>(0x3c.l+0x08)	leshort		1 i80286
->>>(0x3c.l+0x08)	leshort		2 i80386
->>>(0x3c.l+0x08)	leshort		3 i80486
->>>(8.s*16)		string		emx \b, emx
->>>>&1			string		x %s
->>>&(&0x54.l-3)		string		arjsfx \b, ARJ self-extracting archive
-
-# MS Windows system file, supposedly a collection of LE executables
->>(0x3c.l)		string		W3 \b, W3 for MS Windows
-
->>(0x3c.l)		string		LE\0\0 \b, LE executable
->>>(0x3c.l+0x0a)	leshort		1
-# some DOS extenders use LE files with OS/2 header
->>>>0x240		search/0x100	DOS/4G for MS-DOS, DOS4GW DOS extender
->>>>0x240		search/0x200	WATCOM\ C/C++ for MS-DOS, DOS4GW DOS extender
->>>>0x440		search/0x100	CauseWay\ DOS\ Extender for MS-DOS, CauseWay DOS extender
->>>>0x40		search/0x40	PMODE/W for MS-DOS, PMODE/W DOS extender
->>>>0x40		search/0x40	STUB/32A for MS-DOS, DOS/32A DOS extender (stub)
->>>>0x40		search/0x80	STUB/32C for MS-DOS, DOS/32A DOS extender (configurable stub)
->>>>0x40		search/0x80	DOS/32A for MS-DOS, DOS/32A DOS extender (embedded)
-# this is a wild guess; hopefully it is a specific signature
->>>>&0x24		lelong		<0x50
->>>>>(&0x4c.l)		string		\xfc\xb8WATCOM
->>>>>>&0		search/8	3\xdbf\xb9 \b, 32Lite compressed
-# another wild guess: if real OS/2 LE executables exist, they probably have higher start EIP
-#>>>>(0x3c.l+0x1c)	lelong		>0x10000 for OS/2
-# fails with DOS-Extenders.
->>>(0x3c.l+0x0a)	leshort		2 for MS Windows
->>>(0x3c.l+0x0a)	leshort		3 for DOS
->>>(0x3c.l+0x0a)	leshort		4 for MS Windows (VxD)
->>>(&0x7c.l+0x26)	string		UPX \b, UPX compressed
->>>&(&0x54.l-3)		string		UNACE \b, ACE self-extracting archive
-
-# looks like ASCII, probably some embedded copyright message.
-# and definitely not NE/LE/LX/PE
->>0x3c		lelong	>0x20000000
->>>(4.s*512)	leshort !0x014c \b, MZ for MS-DOS
-# header data too small for extended executable
->2		long	!0
->>0x18		leshort <0x40
->>>(4.s*512)	leshort !0x014c
-
->>>>&(2.s-514)	string	!LE
->>>>>&-2	string	!BW \b, MZ for MS-DOS
->>>>&(2.s-514)	string	LE \b, LE
->>>>>0x240	search/0x100	DOS/4G for MS-DOS, DOS4GW DOS extender
-# educated guess since indirection is still not capable enough for complex offset
-# calculations (next embedded executable would be at &(&2*512+&0-2)
-# I suspect there are only LE executables in these multi-exe files
->>>>&(2.s-514)	string	BW
->>>>>0x240	search/0x100	DOS/4G ,\b LE for MS-DOS, DOS4GW DOS extender (embedded)
->>>>>0x240	search/0x100	!DOS/4G ,\b BW collection for MS-DOS
-
-# This sequence skips to the first COFF segment, usually .text
->(4.s*512)	leshort		0x014c \b, COFF
->>(8.s*16)	string		go32stub for MS-DOS, DJGPP go32 DOS extender
->>(8.s*16)	string		emx
->>>&1		string		x for DOS, Win or OS/2, emx %s
->>&(&0x42.l-3)	byte		x 
->>>&0x26	string		UPX \b, UPX compressed
-# and yet another guess: small .text, and after large .data is unusal, could be 32lite
->>&0x2c		search/0xa0	.text
->>>&0x0b	lelong		<0x2000
->>>>&0		lelong		>0x6000 \b, 32lite compressed
-
->(8.s*16) string $WdX \b, WDos/X DOS extender
-
-# .EXE formats (Greg Roelofs, newt@uchicago.edu)
-#
->0x35	string	\x8e\xc0\xb9\x08\x00\xf3\xa5\x4a\x75\xeb\x8e\xc3\x8e\xd8\x33\xff\xbe\x30\x00\x05 \b, aPack compressed
->0xe7	string	LH/2\ Self-Extract \b, %s
->0x1c	string	diet \b, diet compressed
->0x1c	string	LZ09 \b, LZEXE v0.90 compressed
->0x1c	string	LZ91 \b, LZEXE v0.91 compressed
->0x1c	string	tz \b, TinyProg compressed
->0x1e	string	PKLITE \b, %s compressed
->0x64	string	W\ Collis\0\0 \b, Compack compressed
->0x24	string	LHa's\ SFX \b, LHa self-extracting archive
-!:mime	application/x-lha
->0x24	string	LHA's\ SFX \b, LHa self-extracting archive
-!:mime	application/x-lha
->0x24	string	\ $ARX \b, ARX self-extracting archive
->0x24	string	\ $LHarc \b, LHarc self-extracting archive
->0x20	string	SFX\ by\ LARC \b, LARC self-extracting archive
->1638	string	-lh5- \b, LHa self-extracting archive v2.13S
->0x17888 string Rar! \b, RAR self-extracting archive
->0x40	string aPKG \b, aPackage self-extracting archive
-
->32	 string AIN
->>35	 string 2		\b, AIN 2.x compressed
->>35	 string <2		\b, AIN 1.x compressed
->>35	 string >2		\b, AIN 1.x compressed
->28	 string UC2X		\b, UCEXE compressed
->28	 string WWP\  		\b, WWPACK compressed
-
-# skip to the end of the exe
->(4.s*512)	long	x 
->>&(2.s-517)	byte	x 
->>>&0	string		PK\3\4 \b, ZIP self-extracting archive
->>>&0	string		Rar! \b, RAR self-extracting archive
->>>&0	string		=!\x11 \b, AIN 2.x self-extracting archive
->>>&0	string		=!\x12 \b, AIN 2.x self-extracting archive
->>>&0	string		=!\x17 \b, AIN 1.x self-extracting archive
->>>&0	string		=!\x18 \b, AIN 1.x self-extracting archive
->>>&7	search/400	**ACE** \b, ACE self-extracting archive
->>>&0	search/0x480	UC2SFX\ Header \b, UC2 self-extracting archive
-
->0x1c	string		RJSX \b, ARJ self-extracting archive
-# winarj stores a message in the stub instead of the sig in the MZ header
->0x20	search/0xe0	aRJsfX \b, ARJ self-extracting archive
-
-# a few unknown ZIP sfxes, no idea if they are needed or if they are
-# already captured by the generic patterns above
->0x7a		string		Windows\ self-extracting\ ZIP	\b, ZIP self-extracting archive
->(8.s*16)	search/0x20	PKSFX \b, ZIP self-extracting archive (PKZIP)
-# TODO: how to add this? >FileSize-34 string Windows\ Self-Installing\ Executable \b, ZIP self-extracting archive
-#
-
-# TELVOX Teleinformatica CODEC self-extractor for OS/2:
->49801	string	\x79\xff\x80\xff\x76\xff	\b, CODEC archive v3.21
->>49824 leshort		=1			\b, 1 file
->>49824 leshort		>1			\b, %u files
-
-# .COM formats (Daniel Quinlan, quinlan@yggdrasil.com)
-# Uncommenting only the first two lines will cover about 2/3 of COM files,
-# but it isn't feasible to match all COM files since there must be at least
-# two dozen different one-byte "magics".
-# test too generic ?
-0	byte		0xe9		DOS executable (COM)
->0x1FE leshort		0xAA55		\b, boot code
->6	string		SFX\ of\ LHarc	(%s)
-0	belong	0xffffffff		DOS executable (device driver)
-#CMD640X2.SYS
->10	string	>\x23			
->>10	string	!\x2e			
->>>17	string	<\x5B			
->>>>10	string	x			\b, name: %.8s
-#UDMA.SYS KEYB.SYS CMD640X2.SYS
->10	string	<\x41			
->>12	string	>\x40			
->>>10	string	!$			
->>>>12	string	x			\b, name: %.8s
-#BTCDROM.SYS ASPICD.SYS
->22	string	>\x40			
->>22	string	<\x5B			
->>>23	string	<\x5B			
->>>>22	string	x			\b, name: %.8s
-#ATAPICD.SYS
->76	string	\0			
->>77	string	>\x40			
->>>77	string	<\x5B			
->>>>77	string	x			\b, name: %.8s
-# test too generic ?
-0	byte		0x8c		DOS executable (COM)
-# updated by Joerg Jenderek at Oct 2008
-0	ulelong		0xffff10eb	DR-DOS executable (COM)
-# byte 0xeb conflicts with "sequent" magic leshort 0xn2eb
-0	ubeshort&0xeb8d	>0xeb00		
-# DR-DOS STACKER.COM SCREATE.SYS missed
->0	byte		0xeb		DOS executable (COM)
->>0x1FE leshort		0xAA55		\b, boot code
->>85	string		UPX		\b, UPX compressed
->>4	string		\ $ARX		\b, ARX self-extracting archive
->>4	string		\ $LHarc	\b, LHarc self-extracting archive
->>0x20e string		SFX\ by\ LARC	\b, LARC self-extracting archive
-# updated by Joerg Jenderek at Oct 2008
-#0	byte		0xb8		COM executable
-0	uleshort&0x80ff	0x00b8		
-# modified by Joerg Jenderek
->1	lelong		!0x21cd4cff	COM executable for DOS
-# http://syslinux.zytor.com/comboot.php
-# (32-bit COMBOOT) programs *.C32 contain 32-bit code and run in flat-memory 32-bit protected mode
-# start with assembler instructions mov eax,21cd4cffh
-0	uleshort&0xc0ff	0xc0b8		
->1	lelong		0x21cd4cff	COM executable (32-bit COMBOOT)
-0	string	\x81\xfc		
->4	string	\x77\x02\xcd\x20\xb9	
->>36	string	UPX!			FREE-DOS executable (COM), UPX compressed
-252	string Must\ have\ DOS\ version DR-DOS executable (COM)
-# added by Joerg Jenderek at Oct 2008
-# GRR search is not working
-#34	search/2	UPX!		FREE-DOS executable (COM), UPX compressed
-34	string	UPX!			FREE-DOS executable (COM), UPX compressed
-35	string	UPX!			FREE-DOS executable (COM), UPX compressed
-# GRR search is not working
-#2	search/28	\xcd\x21	COM executable for MS-DOS
-#WHICHFAT.cOM
-2	string	\xcd\x21		COM executable for DOS
-#DELTREE.cOM DELTREE2.cOM
-4	string	\xcd\x21		COM executable for DOS
-#IFMEMDSK.cOM ASSIGN.cOM COMP.cOM
-5	string	\xcd\x21		COM executable for DOS
-#DELTMP.COm HASFAT32.cOM
-7	string	\xcd\x21		
->0	byte	!0xb8			COM executable for DOS
-#COMP.cOM MORE.COm
-10	string	\xcd\x21		
->5	string	!\xcd\x21		COM executable for DOS
-#comecho.com
-13	string	\xcd\x21		COM executable for DOS
-#HELP.COm EDIT.coM
-18	string	\xcd\x21		COM executable for MS-DOS
-#NWRPLTRM.COm
-23	string	\xcd\x21		COM executable for MS-DOS
-#LOADFIX.cOm LOADFIX.cOm
-30	string	\xcd\x21		COM executable for MS-DOS
-#syslinux.com 3.11
-70	string	\xcd\x21		COM executable for DOS
-# many compressed/converted COMs start with a copy loop instead of a jump
-0x6	search/0xa	\xfc\x57\xf3\xa5\xc3	COM executable for MS-DOS
-0x6	search/0xa	\xfc\x57\xf3\xa4\xc3	COM executable for DOS
->0x18	search/0x10	\x50\xa4\xff\xd5\x73	\b, aPack compressed
-0x3c	string		W\ Collis\0\0		COM executable for MS-DOS, Compack compressed
-# FIXME: missing diet .com compression
-
-# miscellaneous formats
-0	string		LZ		MS-DOS executable (built-in)
-#0	byte		0xf0		MS-DOS program library data
-#
-
-# AAF files:
-# <stuartc@rd.bbc.co.uk> Stuart Cunningham
-0	string	\320\317\021\340\241\261\032\341AAFB\015\000OM\006\016\053\064\001\001\001\377			AAF legacy file using MS Structured Storage
->30	byte	9		(512B sectors)
->30	byte	12		(4kB sectors)
-0	string	\320\317\021\340\241\261\032\341\001\002\001\015\000\002\000\000\006\016\053\064\003\002\001\001			AAF file using MS Structured Storage
->30	byte	9		(512B sectors)
->30	byte	12		(4kB sectors)
-
-# Popular applications
-2080	string	Microsoft\ Word\ 6.0\ Document	%s
-!:mime	application/msword
-2080	string	Documento\ Microsoft\ Word\ 6 Spanish Microsoft Word 6 document data
-!:mime	application/msword
-# Pawel Wiecek <coven@i17linuxb.ists.pwr.wroc.pl> (for polish Word)
-2112	string	MSWordDoc			Microsoft Word document data
-!:mime	application/msword
-#
-0	belong	0x31be0000			Microsoft Word Document
-!:mime	application/msword
-#
-0	string	PO^Q`				Microsoft Word 6.0 Document
-!:mime	application/msword
-#
-0	string	\376\067\0\043			Microsoft Office Document
-!:mime	application/msword
-0	string	\333\245-\0\0\0			Microsoft Office Document
-!:mime	application/msword
-512	string		\354\245\301		Microsoft Word Document
-!:mime	application/msword
-#
-2080	string	Microsoft\ Excel\ 5.0\ Worksheet	%s
-!:mime	application/vnd.ms-excel
-
-2080	string	Foglio\ di\ lavoro\ Microsoft\ Exce	%s
-!:mime	application/vnd.ms-excel
-#
-# Pawel Wiecek <coven@i17linuxb.ists.pwr.wroc.pl> (for polish Excel)
-2114	string	Biff5		Microsoft Excel 5.0 Worksheet
-!:mime	application/vnd.ms-excel
-# Italian MS-Excel
-2121	string	Biff5		Microsoft Excel 5.0 Worksheet
-!:mime	application/vnd.ms-excel
-0	string	\x09\x04\x06\x00\x00\x00\x10\x00	Microsoft Excel Worksheet
-!:mime	application/vnd.ms-excel
-#
-0	belong	0x00001a00	Lotus 1-2-3
-!:mime	application/x-123
->4	belong	0x00100400	wk3 document data
->4	belong	0x02100400	wk4 document data
->4	belong	0x07800100	fm3 or fmb document data
->4	belong	0x07800000	fm3 or fmb document data
-#
-0	belong	0x00000200	Lotus 1-2-3
-!:mime	application/x-123
->4	belong	0x06040600	wk1 document data
->4	belong	0x06800200	fmt document data
-0	string		WordPro\0	Lotus WordPro
-!:mime	application/vnd.lotus-wordpro
-0	string		WordPro\r\373	Lotus WordPro
-!:mime	application/vnd.lotus-wordpro
-
-
-# Summary: Script used by InstallScield to uninstall applications
-# Extension: .isu
-# Submitted by: unknown
-# Modified by (1): Abel Cheung <abelcheung@gmail.com> (replace useless entry)
-0		string		\x71\xa8\x00\x00\x01\x02
->12		string		Stirling\ Technologies,		InstallShield Uninstall Script
-
-# Winamp .avs
-#0	string	Nullsoft\ AVS\ Preset\ \060\056\061\032 A plug in for Winamp ms-windows Freeware media player
-0	string	Nullsoft\ AVS\ Preset\ 	Winamp plug in
-
-# Windows Metafont .WMF
-0	string	\327\315\306\232	ms-windows metafont .wmf
-0	string	\002\000\011\000	ms-windows metafont .wmf
-0	string	\001\000\011\000	ms-windows metafont .wmf
-
-#tz3 files whatever that is (MS Works files)
-0	string	\003\001\001\004\070\001\000\000	tz3 ms-works file
-0	string	\003\002\001\004\070\001\000\000	tz3 ms-works file
-0	string	\003\003\001\004\070\001\000\000	tz3 ms-works file
-
-# PGP sig files .sig
-#0 string \211\000\077\003\005\000\063\237\127 065 to  \027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\077\003\005\000\063\237\127\065\027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\077\003\005\000\063\237\127\066\027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\077\003\005\000\063\237\127\067\027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\077\003\005\000\063\237\127\070\027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\077\003\005\000\063\237\127\071\027\266\151\064\005\045\101\233\021\002 PGP sig
-0 string \211\000\225\003\005\000\062\122\207\304\100\345\042 PGP sig
-
-# windows zips files .dmf
-0	string	MDIF\032\000\010\000\000\000\372\046\100\175\001\000\001\036\001\000 MS Windows special zipped file
-
-
-#ico files
-0	string	\102\101\050\000\000\000\056\000\000\000\000\000\000\000	Icon for MS Windows
-
-# Windows icons (Ian Springer <ips@fpk.hp.com>)
-0	string	\000\000\001\000	MS Windows icon resource
-!:mime	image/x-ico
->4	byte	1			- 1 icon
->4	byte	>1			- %d icons
->>6	byte	>0			\b, %dx
->>>7	byte	>0			\b%d
->>8	byte	0			\b, 256-colors
->>8	byte	>0			\b, %d-colors
-
-
-# .chr files
-0	string	PK\010\010BGI	Borland font 
->4	string	>\0	%s
-# then there is a copyright notice
-
-
-# .bgi files
-0	string	pk\010\010BGI	Borland device 
->4	string	>\0	%s
-# then there is a copyright notice
-
-
-# Windows Recycle Bin record file (named INFO2)
-# By Abel Cheung (abelcheung AT gmail dot com)
-# Version 4 always has 280 bytes (0x118) per record, version 5 has 800 bytes
-# Since Vista uses another structure, INFO2 structure probably won't change
-# anymore. Detailed analysis in:
-# http://www.cybersecurityinstitute.biz/downloads/INFO2.pdf
-0	lelong		0x00000004
->12	lelong		0x00000118	Windows Recycle Bin INFO2 file (Win98 or below)
-
-0	lelong		0x00000005
->12	lelong		0x00000320	Windows Recycle Bin INFO2 file (Win2k - WinXP)
-
-
-##### put in Either Magic/font or Magic/news
-# Acroread or something	 files wrongly identified as G3	 .pfm
-# these have the form \000 \001 any? \002 \000 \000
-# or \000 \001 any? \022 \000 \000
-0	belong&0xffff00ff	0x00010012	PFM data
->4	string			\000\000
->6	string			>\060		- %s
-
-0	belong&0xffff00ff	0x00010002	PFM data
->4	string			\000\000
->6	string			>\060		- %s
-#0	string	\000\001 pfm?
-#>3	string	\022\000\000Copyright\	yes
-#>3	string	\002\000\000Copyright\	yes
-#>3	string	>\0	oops, not a font file. Cancel that.
-#it clashes with ttf files so put it lower down.
-
-# From Doug Lee via a FreeBSD pr
-9	string		GERBILDOC	First Choice document
-9	string		GERBILDB	First Choice database
-9	string		GERBILCLIP	First Choice database
-0	string		GERBIL		First Choice device file
-9	string		RABBITGRAPH	RabbitGraph file
-0	string		DCU1		Borland Delphi .DCU file
-0	string		=!<spell>	MKS Spell hash list (old format)
-0	string		=!<spell2>	MKS Spell hash list
-# Too simple - MPi
-#0	string		AH		Halo(TM) bitmapped font file
-0	lelong		0x08086b70	TurboC BGI file
-0	lelong		0x08084b50	TurboC Font file
-
-# WARNING: below line conflicts with Infocom game data Z-machine 3
-0	byte		0x03		DBase 3 data file
->0x04	lelong		0		(no records)
->0x04	lelong		>0		(%ld records)
-0	byte		0x83		DBase 3 data file with memo(s)
->0x04	lelong		0		(no records)
->0x04	lelong		>0		(%ld records)
-0	leshort		0x0006		DBase 3 index file
-0	string		PMCC		Windows 3.x .GRP file
-1	string		RDC-meg		MegaDots 
->8	byte		>0x2F		version %c
->9	byte		>0x2F		\b.%c file
-0	lelong		0x4C
->4	lelong		0x00021401	Windows shortcut file
-
-# DOS EPS Binary File Header
-# From: Ed Sznyter <ews@Black.Market.NET>
-0	belong		0xC5D0D3C6	DOS EPS Binary File
->4	long		>0		Postscript starts at byte %d
->>8	long		>0		length %d
->>>12	long		>0		Metafile starts at byte %d
->>>>16	long		>0		length %d
->>>20	long		>0		TIFF starts at byte %d
->>>>24	long		>0		length %d
-
-# TNEF magic From "Joomy" <joomy@se-ed.net> 
-# Microsoft Outlook's Transport Neutral Encapsulation Format (TNEF)
-0	leshort		0x223e9f78	TNEF
-!:mime	application/vnd.ms-tnef
-
-# HtmlHelp files (.chm)
-0	string	ITSF\003\000\000\000\x60\000\000\000\001\000\000\000	MS Windows HtmlHelp Data
-
-# GFA-BASIC (Wolfram Kleff)
-2	string		GFA-BASIC3	GFA-BASIC 3 data
-
-#------------------------------------------------------------------------------
-# From Stuart Caie <kyzer@4u.net> (developer of cabextract)
-# Microsoft Cabinet files
-0	string		MSCF\0\0\0\0	Microsoft Cabinet archive data
-!:mime application/vnd.ms-cab-compressed
->8	lelong		x		\b, %u bytes
->28	leshort		1		\b, 1 file
->28	leshort		>1		\b, %u files
-
-# InstallShield Cabinet files
-0	string		ISc(		InstallShield Cabinet archive data
->5	byte&0xf0	=0x60		version 6,
->5	byte&0xf0	!0x60		version 4/5,
->(12.l+40)	lelong	x		%u files
-
-# Windows CE package files
-0	string		MSCE\0\0\0\0	Microsoft WinCE install header
->20	lelong		0		\b, architecture-independent
->20	lelong		103		\b, Hitachi SH3
->20	lelong		104		\b, Hitachi SH4
->20	lelong		0xA11		\b, StrongARM
->20	lelong		4000		\b, MIPS R4000
->20	lelong		10003		\b, Hitachi SH3
->20	lelong		10004		\b, Hitachi SH3E
->20	lelong		10005		\b, Hitachi SH4
->20	lelong		70001		\b, ARM 7TDMI
->52	leshort		1		\b, 1 file
->52	leshort		>1		\b, %u files
->56	leshort		1		\b, 1 registry entry
->56	leshort		>1		\b, %u registry entries
-
-
-# Windows Enhanced Metafile (EMF)
-# See msdn.microsoft.com/archive/en-us/dnargdi/html/msdn_enhmeta.asp 
-# for further information.
-0	ulelong 1
->40	string	\ EMF		Windows Enhanced Metafile (EMF) image data
->>44	ulelong x		version 0x%x
-
-# From: Alex Beregszaszi <alex@fsn.hu>
-0	string	COWD		VMWare3
->4	byte	3		disk image
->>32	lelong	x		(%d/
->>36	lelong	x		\b%d/
->>40	lelong	x		\b%d)
->4	byte	2		undoable disk image
->>32	string	>\0		(%s)
-
-0	string	VMDK		 VMware4 disk image
-0	string	KDMV		 VMware4 disk image
-
-#--------------------------------------------------------------------
-# Qemu Emulator Images
-# Lines written by Friedrich Schwittay (f.schwittay@yousable.de)
-# Made by reading sources and doing trial and error on existing
-# qcow files
-0	string	QFI	Qemu Image, Format: Qcow
-
-# Uncomment the following line to display Magic (only used for debugging
-# this magic number)
-#>0	string	x	, Magic: %s
-
-# There are currently 2 Versions: "1" and "2"
-# I do not use Version 2 and therefor branch here
-# but can assure: it works (tested on both versions)
-# Also my Qemu 0.9.0 which uses this Version 2 refuses
-# to start in its bios
->0x04	belong	2	, Version: 2
->0x04	belong	1	, Version: 1
-
-# Using the existence of the Backing File Offset to Branch or not
-# to read Backing File Information
->>0xc	 belong	 >0	 , Backing File( Offset: %lu
->>>(0xc.L)	 string >\0	, Path: %s
-
-# Didn't get the trick here how qemu stores the "Size" at this Position
-# There is actually something stored but nothing makes sense
-# The header in the sources talks about it
-#>>>16	 lelong	 x	 , Size: %lu
-
-# Modification time of the Backing File
-# Really useful if you want to know if your backing
-# file is still usable together with this image
->>>20	 bedate x	, Mtime: %s )
-
-# Don't know how to calculate in Magicfiles
-# Also: this Information is not reliably
-#	stored in image-files
->>24	 lelong	 x	 , Disk Size could be: %d * 256 bytes
-
-0	string	QEVM		QEMU's suspend to disk image
-
-0	string	Bochs\ Virtual\ HD\ Image	Bochs disk image,
->32	string	x				type %s,
->48	string	x				subtype %s
-
-0	lelong	0x02468ace			Bochs Sparse disk image
-
-# from http://filext.com by Derek M Jones <derek@knosof.co.uk>
-# False positive with PPT (also currently this string is too long)
-#0	string	\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3E\x00\x03\x00\xFE\xFF\x09\x00\x06	Microsoft Installer
-0	string	\320\317\021\340\241\261\032\341	Microsoft Office Document
-#>48	byte	0x1B					Excel Document
-#!:mime application/vnd.ms-excel
->546	string	bjbj			Microsoft Word Document
-!:mime	application/msword
->546	string	jbjb			Microsoft Word Document
-!:mime	application/msword
-
-0	string	\224\246\056		Microsoft Word Document
-!:mime	application/msword
-
-512	string	R\0o\0o\0t\0\ \0E\0n\0t\0r\0y	Microsoft Word Document
-!:mime	application/msword
-
-# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
-# Magic type for Dell's BIOS .hdr files
-# Dell's .hdr
-0	string $RBU
->23	string Dell			%s system BIOS
->48	string x			version %.3s
-
-# Type: Microsoft DirectDraw Surface
-# URL:	http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/DDSFileReference/ddsfileformat.asp
-# From: Morten Hustveit <morten@debian.org>
-0	string	DDS\040\174\000\000\000 Microsoft DirectDraw Surface (DDS),
->16	lelong	>0			%hd x
->12	lelong	>0			%hd,
->84	string	x			%.4s
-
-# Type: Microsoft Document Imaging Format (.mdi)
-# URL:	http://en.wikipedia.org/wiki/Microsoft_Document_Imaging_Format
-# From: Daniele Sempione <scrows@oziosi.org>
-0	short	0x5045			Microsoft Document Imaging Format
-
-# MS eBook format (.lit)
-0	string	ITOLITLS		Microsoft Reader eBook Data
->8	lelong	x			\b, version %u
-!:mime					application/x-ms-reader
-
-#------------------------------------------------------------------------------
-# msvc:  file(1) magic for msvc
-# "H. Nanosecond" <aldomel@ix.netcom.com>
-# Microsoft visual C
-# 
-# I have version 1.0
-
-# .aps
-0	string	HWB\000\377\001\000\000\000	Microsoft Visual C .APS file
-
-# .ide
-#too long 0	string	\102\157\162\154\141\156\144\040\103\053\053\040\120\162\157\152\145\143\164\040\106\151\154\145\012\000\032\000\002\000\262\000\272\276\372\316	MSVC .ide
-0	string	\102\157\162\154\141\156\144\040\103\053\053\040\120\162\157	MSVC .ide
-
-# .res
-0	string	\000\000\000\000\040\000\000\000\377	MSVC .res
-0	string	\377\003\000\377\001\000\020\020\350	MSVC .res
-0	string	\377\003\000\377\001\000\060\020\350	MSVC .res
-
-#.lib
-0	string	\360\015\000\000	Microsoft Visual C library
-0	string	\360\075\000\000	Microsoft Visual C library
-0	string	\360\175\000\000	Microsoft Visual C library
-
-#.pch
-0	string	DTJPCH0\000\022\103\006\200	Microsoft Visual C .pch
-
-# .pdb
-# too long 0	string	Microsoft\ C/C++\ program\ database\ 
-0	string	Microsoft\ C/C++\ 	MSVC program database
->18	string	program\ database\ 	
->33	string	>\0	ver %s
-
-#.sbr
-0	string	\000\002\000\007\000	MSVC .sbr
->5	string 	>\0	%s
-
-#.bsc
-0	string	\002\000\002\001	MSVC .bsc
-
-#.wsp
-0	string	1.00\ .0000.0000\000\003	MSVC .wsp version 1.0000.0000
-# these seem to start with the version and contain menus
-# ------------------------------------------------------------------------
-# mup: file(1) magic for Mup (Music Publisher) input file.
-#
-# From: Abel Cheung <abel (@) oaka.org>
-#
-# NOTE: This header is mainly proposed in the Arkkra mailing list,
-# and is not a mandatory header because of old mup input file
-# compatibility. Noteedit also use mup format, but is not forcing
-# user to use any header as well.
-#
-0		search/1	//!Mup		Mup music publication program input text
->6		string		-Arkkra		(Arkkra)
->>13		string		-		
->>>16		string		.		
->>>>14		string		x		\b, need V%.4s
->>>15		string		.		
->>>>14		string		x		\b, need V%.3s
->6		string		-		
->>9		string		.		
->>>7		string		x		\b, need V%.4s
->>8		string		.		
->>>7		string		x		\b, need V%.3s
-
-#-----------------------------------------------------------------------------
-# natinst:  file(1) magic for National Instruments Code Files
-
-#
-# From <egamez@fcfm.buap.mx> Enrique G�mez-Flores
-# version 1
-# Many formats still missing, we use, for the moment LabVIEW
-# We guess VXI format file. VISA, LabWindowsCVI, BridgeVIEW, etc, are missing
-#
-0       string          RSRC            National Instruments,
-# Check if it's a LabVIEW File
->8      string          LV              LabVIEW File,
-# Check wich kind of file is
->>10    string          SB              Code Resource File, data
->>10    string          IN              Virtual Instrument Program, data
->>10    string          AR              VI Library, data
-# This is for Menu Libraries
->8      string          LMNULBVW        Portable File Names, data
-# This is for General Resources
->8      string          rsc             Resources File, data
-# This is for VXI Package
-0       string          VMAP            National Instruments, VXI File, data
-
-#------------------------------------------------------------------------------
-# ncr:  file(1) magic for NCR Tower objects
-#
-# contributed by
-# Michael R. Wayne  ***  TMC & Associates  ***  INTERNET: wayne@ford-vax.arpa
-# uucp: {philabs | pyramid} !fmsrl7!wayne   OR   wayne@fmsrl7.UUCP
-#
-0	beshort		000610	Tower/XP rel 2 object
->12	   belong		>0	not stripped
->20	   beshort		0407	executable
->20	   beshort		0410	pure executable
->22	   beshort		>0	- version %ld
-0	beshort		000615	Tower/XP rel 2 object
->12	   belong		>0	not stripped
->20	   beshort		0407	executable
->20	   beshort		0410	pure executable
->22	   beshort		>0	- version %ld
-0	beshort		000620	Tower/XP rel 3 object
->12	   belong		>0	not stripped
->20	   beshort		0407	executable
->20	   beshort		0410	pure executable
->22	   beshort		>0	- version %ld
-0	beshort		000625	Tower/XP rel 3 object
->12	   belong		>0	not stripped
->20	   beshort		0407	executable
->20	   beshort		0410	pure executable
->22	   beshort		>0	- version %ld
-0	beshort		000630	Tower32/600/400 68020 object
->12	   belong		>0	not stripped
->20	   beshort		0407	executable
->20	   beshort		0410	pure executable
->22	   beshort		>0	- version %ld
-0	beshort		000640	Tower32/800 68020
->18	   beshort		&020000	w/68881 object
->18	   beshort		&040000	compatible object
->18	   beshort		&060000	object
->20	   beshort		0407	executable
->20	   beshort		0413	pure executable
->12	   belong		>0	not stripped
->22	   beshort		>0	- version %ld
-0	beshort		000645	Tower32/800 68010
->18	   beshort		&040000	compatible object
->18	   beshort		&060000 object
->20	   beshort		0407	executable
->20	   beshort		0413	pure executable
->12	   belong		>0	not stripped
->22	   beshort		>0	- version %ld
-
-#------------------------------------------------------------------------------
-# netbsd:  file(1) magic for NetBSD objects
-#
-# All new-style magic numbers are in network byte order.
-#
-
-0	lelong			000000407	a.out NetBSD little-endian object file
->16	lelong			>0		not stripped
-0	belong			000000407	a.out NetBSD big-endian object file
->16	belong			>0		not stripped
-
-0	belong&0377777777	041400413	a.out NetBSD/i386 demand paged
->0	byte			&0x80		
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	041400410	a.out NetBSD/i386 pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	041400407	a.out NetBSD/i386
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-0	belong&0377777777	041400507	a.out NetBSD/i386 core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-0	belong&0377777777	041600413	a.out NetBSD/m68k demand paged
->0	byte			&0x80		
->>20	belong			<8192		shared library
->>20	belong			=8192		dynamically linked executable
->>20	belong			>8192		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	041600410	a.out NetBSD/m68k pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	041600407	a.out NetBSD/m68k
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	belong			!0		executable
->>20	belong			=0		object file
->16	belong			>0		not stripped
-0	belong&0377777777	041600507	a.out NetBSD/m68k core
->12	string			>\0		from '%s'
->32	belong			!0		(signal %d)
-
-0	belong&0377777777	042000413	a.out NetBSD/m68k4k demand paged
->0	byte			&0x80		
->>20	belong			<4096		shared library
->>20	belong			=4096		dynamically linked executable
->>20	belong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	042000410	a.out NetBSD/m68k4k pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	042000407	a.out NetBSD/m68k4k
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	belong			!0		executable
->>20	belong			=0		object file
->16	belong			>0		not stripped
-0	belong&0377777777	042000507	a.out NetBSD/m68k4k core
->12	string			>\0		from '%s'
->32	belong			!0		(signal %d)
-
-0	belong&0377777777	042200413	a.out NetBSD/ns32532 demand paged
->0	byte			&0x80		
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	042200410	a.out NetBSD/ns32532 pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	042200407	a.out NetBSD/ns32532
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-0	belong&0377777777	042200507	a.out NetBSD/ns32532 core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-0	belong&0377777777	045200507	a.out NetBSD/powerpc core
->12	string			>\0		from '%s'
-
-0	belong&0377777777	042400413	a.out NetBSD/sparc demand paged
->0	byte			&0x80		
->>20	belong			<8192		shared library
->>20	belong			=8192		dynamically linked executable
->>20	belong			>8192		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	042400410	a.out NetBSD/sparc pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	042400407	a.out NetBSD/sparc
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	belong			!0		executable
->>20	belong			=0		object file
->16	belong			>0		not stripped
-0	belong&0377777777	042400507	a.out NetBSD/sparc core
->12	string			>\0		from '%s'
->32	belong			!0		(signal %d)
-
-0	belong&0377777777	042600413	a.out NetBSD/pmax demand paged
->0	byte			&0x80		
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	042600410	a.out NetBSD/pmax pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	042600407	a.out NetBSD/pmax
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-0	belong&0377777777	042600507	a.out NetBSD/pmax core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-0	belong&0377777777	043000413	a.out NetBSD/vax 1k demand paged
->0	byte			&0x80		
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	043000410	a.out NetBSD/vax 1k pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	043000407	a.out NetBSD/vax 1k
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-0	belong&0377777777	043000507	a.out NetBSD/vax 1k core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-0	belong&0377777777	045400413	a.out NetBSD/vax 4k demand paged
->0	byte			&0x80		
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	045400410	a.out NetBSD/vax 4k pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	045400407	a.out NetBSD/vax 4k
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-0	belong&0377777777	045400507	a.out NetBSD/vax 4k core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-# NetBSD/alpha does not support (and has never supported) a.out objects,
-# so no rules are provided for them.  NetBSD/alpha ELF objects are 
-# dealt with in "elf".
-0	lelong		0x00070185		ECOFF NetBSD/alpha binary
->10	leshort		0x0001			not stripped
->10	leshort		0x0000			stripped
-0	belong&0377777777	043200507	a.out NetBSD/alpha core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-0	belong&0377777777	043400413	a.out NetBSD/mips demand paged
->0	byte			&0x80		
->>20	belong			<8192		shared library
->>20	belong			=8192		dynamically linked executable
->>20	belong			>8192		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	043400410	a.out NetBSD/mips pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	belong			>0		not stripped
-0	belong&0377777777	043400407	a.out NetBSD/mips
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	belong			!0		executable
->>20	belong			=0		object file
->16	belong			>0		not stripped
-0	belong&0377777777	043400507	a.out NetBSD/mips core
->12	string			>\0		from '%s'
->32	belong			!0		(signal %d)
-
-0	belong&0377777777	043600413	a.out NetBSD/arm32 demand paged
->0	byte			&0x80
->>20	lelong			<4096		shared library
->>20	lelong			=4096		dynamically linked executable
->>20	lelong			>4096		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	043600410	a.out NetBSD/arm32 pure
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80		executable
->16	lelong			>0		not stripped
-0	belong&0377777777	043600407	a.out NetBSD/arm32
->0	byte			&0x80		dynamically linked executable
->0	byte			^0x80
->>0	byte			&0x40		position independent
->>20	lelong			!0		executable
->>20	lelong			=0		object file
->16	lelong			>0		not stripped
-# NetBSD/arm26 has always used ELF objects, but it shares a core file
-# format with NetBSD/arm32.
-0	belong&0377777777	043600507	a.out NetBSD/arm core
->12	string			>\0		from '%s'
->32	lelong			!0		(signal %d)
-
-#------------------------------------------------------------------------------
-# netscape:  file(1) magic for Netscape files
-# "H. Nanosecond" <aldomel@ix.netcom.com>
-# version 3 and 4 I think
-#
-
-# Netscape Address book  .nab
-0	string \000\017\102\104\000\000\000\000\000\000\001\000\000\000\000\002\000\000\000\002\000\000\004\000 Netscape Address book
-
-# Netscape Communicator address book
-0   string   \000\017\102\111 Netscape Communicator address book
-
-# .snm Caches
-0	string		#\ Netscape\ folder\ cache	Netscape folder cache
-0	string	\000\036\204\220\000	Netscape folder cache
-# .n2p 
-# Net 2 Phone 
-#0	string	123\130\071\066\061\071\071\071\060\070\061\060\061\063\060
-0	string	SX961999	Net2phone
-
-#
-#This is files ending in .art, FIXME add more rules
-0       string          JG\004\016\0\0\0\0      ART
-
-#------------------------------------------------------------------------------
-# netware:  file(1) magic for NetWare Loadable Modules (NLMs)
-# From: Mads Martin Joergensen <mmj@suse.de>
-
-0	string	NetWare\ Loadable\ Module	NetWare Loadable Module
-
-#------------------------------------------------------------------------------
-# news:  file(1) magic for SunOS NeWS fonts (not "news" as in "netnews")
-#
-0	string		StartFontMetrics	ASCII font metrics
-0	string		StartFont	ASCII font bits
-0	belong		0x137A2944	NeWS bitmap font
-0	belong		0x137A2947	NeWS font family
-0	belong		0x137A2950	scalable OpenFont binary
-0	belong		0x137A2951	encrypted scalable OpenFont binary
-8	belong		0x137A2B45	X11/NeWS bitmap font
-8	belong		0x137A2B48	X11/NeWS font family
-#------------------------------------------------------------------------------
-# nitpicker:  file(1) magic for Flowfiles.
-# From: Christian Jachmann <C.Jachmann@gmx.net> http://www.nitpicker.de
-0	string	NPFF	NItpicker Flow File 
->4	byte	x	V%d.
->5	byte	x	%d
->6	bedate	x	started: %s
->10	bedate	x	stopped: %s
->14	belong	x	Bytes: %u
->18	belong	x	Bytes1: %u
->22	belong	x	Flows: %u
->26	belong	x	Pkts: %u
-
-#------------------------------------------------------------------------------
-# ocaml: file(1) magic for Objective Caml files.
-0	string	Caml1999	OCaml
->8	string	X		exec file
->8	string	I		interface file (.cmi)
->8	string	O		object file (.cmo)
->8	string	A		library file (.cma)
->8	string	Y		native object file (.cmx)
->8	string	Z		native library file (.cmxa)
->8	string	M		abstract syntax tree implementation file
->8	string	N		abstract syntax tree interface file
->9	string	>\0		(Version %3.3s)
-#------------------------------------------------------------------------------
-# octave binary data file(1) magic, from Dirk Eddelbuettel <edd@debian.org>
-0	string		Octave-1-L	Octave binary data (little endian)
-0	string		Octave-1-B	Octave binary data (big endian)
-
-#------------------------------------------------------------------------------
-# Microsoft OLE 2 Compound Documents : file(1) magic for Microsoft Structured
-# storage (http://en.wikipedia.org/wiki/Structured_Storage)
-# Additional tests for OLE 2 Compound Documents should be under this recipe.
-
-0   string  \320\317\021\340\241\261\032\341      OLE 2 Compound Document
-# - Microstation V8 DGN files (www.bentley.com)
-#   Last update on 10/23/2006 by Lester Hightower
-> 0x480  string  D\000g\000n\000~\000H                : Microstation V8 DGN
-# - Visio documents
-#   Last update on 10/23/2006 by Lester Hightower
-> 0x480  string  V\000i\000s\000i\000o\000D\000o\000c : Visio Document
-
-#------------------------------------------------------------------------------
-# olf:  file(1) magic for OLF executables
-#
-# We have to check the byte order flag to see what byte order all the
-# other stuff in the header is in.
-#
-# MIPS R3000 may also be for MIPS R2000.
-# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
-#
-# Created by Erik Theisen <etheisen@openbsd.org>
-# Based on elf from Daniel Quinlan <quinlan@yggdrasil.com>
-0	string		\177OLF		OLF
->4	byte		0		invalid class
->4	byte		1		32-bit
->4	byte		2		64-bit
->7	byte		0		invalid os
->7	byte		1		OpenBSD
->7	byte		2		NetBSD
->7	byte		3		FreeBSD
->7	byte		4		4.4BSD
->7	byte		5		Linux
->7	byte		6		SVR4
->7	byte		7		esix
->7	byte		8		Solaris
->7	byte		9		Irix
->7	byte		10		SCO
->7	byte		11		Dell
->7	byte		12		NCR
->5	byte		0		invalid byte order
->5	byte		1		LSB
->>16	leshort		0		no file type,
->>16	leshort		1		relocatable,
->>16	leshort		2		executable,
->>16	leshort		3		shared object,
-# Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de>
-# corrections by Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de>
->>16	leshort		4		core file
->>>(0x38+0xcc) string	>\0		of '%s'
->>>(0x38+0x10) lelong	>0		(signal %d),
->>16	leshort		&0xff00		processor-specific,
->>18	leshort		0		no machine,
->>18	leshort		1		AT&T WE32100 - invalid byte order,
->>18	leshort		2		SPARC - invalid byte order,
->>18	leshort		3		Intel 80386,
->>18	leshort		4		Motorola 68000 - invalid byte order,
->>18	leshort		5		Motorola 88000 - invalid byte order,
->>18	leshort		6		Intel 80486,
->>18	leshort		7		Intel 80860,
->>18	leshort		8		MIPS R3000_BE - invalid byte order,
->>18	leshort		9		Amdahl - invalid byte order,
->>18	leshort		10		MIPS R3000_LE,
->>18	leshort		11		RS6000 - invalid byte order,
->>18	leshort		15		PA-RISC - invalid byte order,
->>18	leshort		16		nCUBE,
->>18	leshort		17		VPP500,
->>18	leshort		18		SPARC32PLUS,
->>18	leshort		20		PowerPC,
->>18	leshort		0x9026		Alpha,
->>20	lelong		0		invalid version
->>20	lelong		1		version 1
->>36	lelong		1		MathCoPro/FPU/MAU Required
->8	string		>\0		(%s)
->5	byte		2		MSB
->>16	beshort		0		no file type,
->>16	beshort		1		relocatable,
->>16	beshort		2		executable,
->>16	beshort		3		shared object,
->>16	beshort		4		core file,
->>>(0x38+0xcc) string	>\0		of '%s'
->>>(0x38+0x10) belong	>0		(signal %d),
->>16	beshort		&0xff00		processor-specific,
->>18	beshort		0		no machine,
->>18	beshort		1		AT&T WE32100,
->>18	beshort		2		SPARC,
->>18	beshort		3		Intel 80386 - invalid byte order,
->>18	beshort		4		Motorola 68000,
->>18	beshort		5		Motorola 88000,
->>18	beshort		6		Intel 80486 - invalid byte order,
->>18	beshort		7		Intel 80860,
->>18	beshort		8		MIPS R3000_BE,
->>18	beshort		9		Amdahl,
->>18	beshort		10		MIPS R3000_LE - invalid byte order,
->>18	beshort		11		RS6000,
->>18	beshort		15		PA-RISC,
->>18	beshort		16		nCUBE,
->>18	beshort		17		VPP500,
->>18	beshort		18		SPARC32PLUS,
->>18	beshort		20		PowerPC or cisco 4500,
->>18	beshort		21		cisco 7500,
->>18	beshort		24		cisco SVIP,
->>18	beshort		25		cisco 7200,
->>18	beshort		36		cisco 12000,
->>18	beshort		0x9026		Alpha,
->>20	belong		0		invalid version
->>20	belong		1		version 1
->>36	belong		1		MathCoPro/FPU/MAU Required
-#------------------------------------------------------------------------------
-# os2:  file(1) magic for OS/2 files
-#
-
-# Provided 1998/08/22 by
-# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
-1	search/1	InternetShortcut	MS Windows 95 Internet shortcut text
->24	search/1	>\ 			(URL=<%s>)
-
-# OS/2 URL objects
-# Provided 1998/08/22 by
-# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
-#0	string	http:			OS/2 URL object text
-#>5	string	>\			(WWW) <http:%s>
-#0	string	mailto:			OS/2 URL object text
-#>7	string	>\			(email) <%s>
-#0	string	news:			OS/2 URL object text
-#>5	string	>\			(Usenet) <%s>
-#0	string	ftp:			OS/2 URL object text
-#>4	string	>\			(FTP) <ftp:%s>
-#0	string	file:			OS/2 URL object text
-#>5	string	>\			(Local file) <%s>
-
-# >>>>> OS/2 INF/HLP <<<<<  (source: Daniel Dissett ddissett@netcom.com)
-# Carl Hauser (chauser.parc@xerox.com) and 
-# Marcus Groeber (marcusg@ph-cip.uni-koeln.de)
-# list the following header format in inf02a.doc:
-#
-#  int16 ID;           // ID magic word (5348h = "HS")
-#  int8  unknown1;     // unknown purpose, could be third letter of ID
-#  int8  flags;        // probably a flag word...
-#                      //  bit 0: set if INF style file
-#                      //  bit 4: set if HLP style file
-#                      // patching this byte allows reading HLP files
-#                      // using the VIEW command, while help files 
-#                      // seem to work with INF settings here as well.
-#  int16 hdrsize;      // total size of header
-#  int16 unknown2;     // unknown purpose
-# 
-0   string  HSP\x01\x9b\x00 OS/2 INF
->107 string >0                      (%s)
-0   string  HSP\x10\x9b\x00     OS/2 HLP
->107 string >0                      (%s)
-
-# OS/2 INI (this is a guess)
-0  string   \xff\xff\xff\xff\x14\0\0\0  OS/2 INI
-#------------------------------------------------------------------------------
-# os400:  file(1) magic for IBM OS/400 files
-#
-# IBM OS/400 (i5/OS) Save file (SAVF) - gerardo.cacciari@gmail.com
-# In spite of its quite variable format (due to internal memory page
-# length differences between CISC and RISC versions of the OS) the
-# SAVF structure hasn't suitable offsets to identify the catalog
-# header in the first descriptor where there are some useful infos,
-# so we must search in a somewhat large area for a particular string
-# that represents the EBCDIC encoding of 'QSRDSSPC' (save/restore
-# descriptor space) preceded by a two byte constant.
-#
-1090	 search/7393	\x19\xDB\xD8\xE2\xD9\xC4\xE2\xE2\xD7\xC3 IBM OS/400 save file data
->&212	 byte		0x01			 \b, created with SAVOBJ
->&212	 byte		0x02			 \b, created with SAVLIB
->&212	 byte		0x07			 \b, created with SAVCFG
->&212	 byte		0x08			 \b, created with SAVSECDTA
->&212	 byte		0x0A			 \b, created with SAVSECDTA
->&212	 byte		0x0B			 \b, created with SAVDLO
->&212	 byte		0x0D			 \b, created with SAVLICPGM
->&212	 byte		0x11			 \b, created with SAVCHGOBJ
->&213	 byte		0x44			 \b, at least V5R4 to open
->&213	 byte		0x43			 \b, at least V5R3 to open
->&213	 byte		0x42			 \b, at least V5R2 to open
->&213	 byte		0x41			 \b, at least V5R1 to open
->&213	 byte		0x40			 \b, at least V4R5 to open
->&213	 byte		0x3F			 \b, at least V4R4 to open
->&213	 byte		0x3E			 \b, at least V4R3 to open
->&213	 byte		0x3C			 \b, at least V4R2 to open
->&213	 byte		0x3D			 \b, at least V4R1M4 to open
->&213	 byte		0x3B			 \b, at least V4R1 to open
->&213	 byte		0x3A			 \b, at least V3R7 to open
->&213	 byte		0x35			 \b, at least V3R6 to open
->&213	 byte		0x36			 \b, at least V3R2 to open
->&213	 byte		0x34			 \b, at least V3R1 to open
->&213	 byte		0x31			 \b, at least V3R0M5 to open
->&213	 byte		0x30			 \b, at least V2R3 to open
-#
-# Copyright (c) 1996 Ignatios Souvatzis. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. All advertising materials mentioning features or use of this software
-#    must display the following acknowledgement:
-#      This product includes software developed by Ignatios Souvatzis for
-#      the NetBSD project.
-# 4. The name of the author may not be used to endorse or promote products
-#    derived from this software without specific prior written permission.
-#
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-#
-#
-# OS9/6809 module descriptions:
-#
-0	beshort		0x87CD	OS9/6809 module:
-#
->6	byte&0x0f	0x00	non-executable
->6	byte&0x0f	0x01	machine language
->6	byte&0x0f	0x02	BASIC I-code
->6	byte&0x0f	0x03	Pascal P-code
->6	byte&0x0f	0x04	C I-code
->6	byte&0x0f	0x05	COBOL I-code
->6	byte&0x0f	0x06	Fortran I-code
-#
->6	byte&0xf0	0x10	program executable
->6	byte&0xf0	0x20	subroutine
->6	byte&0xf0	0x30	multi-module
->6	byte&0xf0	0x40	data module
-#
->6	byte&0xf0	0xC0	system module
->6	byte&0xf0	0xD0	file manager
->6	byte&0xf0	0xE0	device driver
->6	byte&0xf0	0xF0	device descriptor
-#
-# OS9/m68k stuff (to be continued)
-#
-0	beshort		0x4AFC	OS9/68K module:
-#
-# attr
->0x14	byte&0x80	0x80	re-entrant
->0x14	byte&0x40	0x40	ghost
->0x14	byte&0x20	0x20	system-state
-#
-# lang:
-#
->0x13	byte		1	machine language
->0x13	byte		2	BASIC I-code
->0x13	byte		3	Pascal P-code
->0x13	byte		4	C I-code
->0x13	byte		5	COBOL I-code
->0x13	byte		6	Fortran I-code
-#
-#
-# type:
-#
->0x12	byte		1	program executable
->0x12	byte		2	subroutine
->0x12	byte		3	multi-module
->0x12	byte		4	data module
->0x12	byte		11	trap library
->0x12	byte		12	system module
->0x12	byte		13	file manager
->0x12	byte		14	device driver
->0x12	byte		15	device descriptor
-#
-# Mach magic number info
-#
-0	long		0xefbe	OSF/Rose object
-# I386 magic number info
-#
-0	short		0565	i386 COFF object
-
-#------------------------------------------------------------------------------
-# palm:  file(1) magic for PalmOS {.prc,.pdb}: applications, docfiles, and hacks
-#
-# Brian Lalor <blalor@hcirisc.cs.binghamton.edu>
-
-# appl
-60      belong                  0x6170706c      PalmOS application
->0      string                  >\0             "%s"
-# TEXt
-60      belong                  0x54455874      AportisDoc file
->0      string                  >\0             "%s"
-# HACK
-60      belong                  0x4841434b      HackMaster hack
->0      string                  >\0             "%s"
-
-# Variety of PalmOS document types
-# Michael-John Turner <mj@debian.org>
-# Thanks to Hasan Umit Ezerce <humit@tr-net.net.tr> for his DocType
-60	string	                BVokBDIC	BDicty PalmOS document
->0	string                  >\0             "%s"
-60	string	                DB99DBOS	DB PalmOS document
->0	string                  >\0             "%s"
-60	string	                vIMGView	FireViewer/ImageViewer PalmOS document
->0	string                  >\0             "%s"
-60	string	                PmDBPmDB	HanDBase PalmOS document
->0	string                  >\0             "%s"
-60	string	                InfoINDB	InfoView PalmOS document
->0	string                  >\0             "%s"
-60	string	                ToGoToGo	iSilo PalmOS document
->0	string                  >\0             "%s"
-60	string	                JfDbJBas	JFile PalmOS document
->0	string                  >\0             "%s"
-60	string	                JfDbJFil	JFile Pro PalmOS document
->0	string                  >\0             "%s"
-60	string	                DATALSdb	List PalmOS document
->0	string                  >\0             "%s"
-60	string	                Mdb1Mdb1	MobileDB PalmOS document
->0	string                  >\0             "%s"
-60	string	                PNRdPPrs	PeanutPress PalmOS document
->0	string                  >\0             "%s"
-60	string	                DataPlkr	Plucker PalmOS document
->0	string                  >\0             "%s"
-60	string	                DataSprd	QuickSheet PalmOS document
->0	string                  >\0             "%s"
-60	string	                SM01SMem	SuperMemo PalmOS document
->0	string                  >\0             "%s"
-60	string	                TEXtTlDc	TealDoc PalmOS document
->0	string                  >\0             "%s"
-60	string	                InfoTlIf	TealInfo PalmOS document
->0	string                  >\0             "%s"
-60	string	                DataTlMl	TealMeal PalmOS document
->0	string                  >\0             "%s"
-60	string	                DataTlPt	TealPaint PalmOS document
->0	string                  >\0             "%s"
-60	string	                dataTDBP	ThinkDB PalmOS document
->0	string                  >\0             "%s"
-60	string	                TdatTide	Tides PalmOS document
->0	string                  >\0             "%s"
-60	string	                ToRaTRPW	TomeRaider PalmOS document
->0	string                  >\0             "%s"
-
-# A GutenPalm zTXT etext for use on Palm Pilots (http://gutenpalm.sf.net)
-# For version 1.xx zTXTs, outputs version and numbers of bookmarks and
-#   annotations.
-# For other versions, just outputs version.
-#
-60		string		zTXT		A GutenPalm zTXT e-book
->0		string		>\0		"%s"
->(0x4E.L)	byte		0
->>(0x4E.L+1)	byte		x		(v0.%02d)
->(0x4E.L)	byte		1
->>(0x4E.L+1)	byte		x		(v1.%02d)
->>>(0x4E.L+10)	beshort		>0
->>>>(0x4E.L+10) beshort		<2		- 1 bookmark
->>>>(0x4E.L+10) beshort		>1		- %d bookmarks
->>>(0x4E.L+14)	beshort		>0
->>>>(0x4E.L+14) beshort		<2		- 1 annotation
->>>>(0x4E.L+14) beshort		>1		- %d annotations
->(0x4E.L)	byte		>1		(v%d.
->>(0x4E.L+1)	byte		x		%02d)
-
-# Palm OS .prc file types
-60		string		libr		Palm OS dynamic library data
->0		string		>\0		"%s"
-60		string		ptch		Palm OS operating system patch data
->0		string		>\0		"%s"
-
-# Mobipocket (www.mobipocket.com), donated by Carl Witty
-60	string	                BOOKMOBI	Mobipocket E-book
->0	string                  >\0             "%s"
-
-#------------------------------------------------------------------------------
-#
-# Parix COFF executables
-# From: Ignatios Souvatzis <ignatios@cs.uni-bonn.de>
-#
-0	beshort&0xfff	0xACE	PARIX
->0	byte&0xf0	0x80	T800
->0	byte&0xf0	0x90	T9000
->19	byte&0x02	0x02	executable
->19	byte&0x02	0x00	object
->19	byte&0x0c	0x00	not stripped
-
-#------------------------------------------------------------------------------
-# pbm:  file(1) magic for Portable Bitmap files
-#
-# XXX - byte order?
-#
-0	short	0x2a17	"compact bitmap" format (Poskanzer)
-#------------------------------------------------------------------------------
-# pdf:  file(1) magic for Portable Document Format
-#
-
-0	string		%PDF-		PDF document
-!:mime	application/pdf
->5	byte		x		\b, version %c
->7	byte		x		\b.%c
-
-# From: Nick Schmalenberger <nick@schmalenberger.us>
-# Forms Data Format
-0       string          %FDF-           FDF document
->5      byte            x               \b, version %c
->7      byte            x               \b.%c
-
-#------------------------------------------------------------------------------
-# pdp:  file(1) magic for PDP-11 executable/object and APL workspace
-#
-0	lelong		0101555		PDP-11 single precision APL workspace
-0	lelong		0101554		PDP-11 double precision APL workspace
-#
-# PDP-11 a.out
-#
-0	leshort		0407		PDP-11 executable
->8	leshort		>0		not stripped
->15	byte		>0		- version %ld
-
-0	leshort		0401		PDP-11 UNIX/RT ldp
-0	leshort		0405		PDP-11 old overlay
-
-0	leshort		0410		PDP-11 pure executable
->8	leshort		>0		not stripped
->15	byte		>0		- version %ld
-
-0	leshort		0411		PDP-11 separate I&D executable
->8	leshort		>0		not stripped
->15	byte		>0		- version %ld
-
-0	leshort		0437		PDP-11 kernel overlay
-
-# These last three are derived from 2.11BSD file(1)
-0	leshort		0413		PDP-11 demand-paged pure executable
->8	leshort		>0		not stripped
-
-0	leshort		0430		PDP-11 overlaid pure executable
->8	leshort		>0		not stripped
-
-0	leshort		0431		PDP-11 overlaid separate executable
->8	leshort		>0		not stripped
-#------------------------------------------------------------------------------
-# perl:  file(1) magic for Larry Wall's perl language.
-#
-# The `eval' lines recognizes an outrageously clever hack.
-# Keith Waclena <keith@cerberus.uchicago.edu>
-# Send additions to <perl5-porters@perl.org>
-0	search/1/b	#!\ /bin/perl			Perl script text executable
-!:mime	text/x-perl
-0	search/1	eval\ "exec\ /bin/perl		Perl script text
-!:mime	text/x-perl
-0	search/1/b	#!\ /usr/bin/perl		Perl script text executable
-!:mime	text/x-perl
-0	search/1	eval\ "exec\ /usr/bin/perl	Perl script text
-!:mime	text/x-perl
-0	search/1/b	#!\ /usr/local/bin/perl		Perl script text executable
-!:mime	text/x-perl
-0	search/1	eval\ "exec\ /usr/local/bin/perl	Perl script text
-!:mime	text/x-perl
-0	search/1	eval\ '(exit\ $?0)'\ &&\ eval\ 'exec	Perl script text
-!:mime	text/x-perl
-
-
-# by Dmitry V. Levin and Alexey Tourbin
-# check the first line
-0	search/1	package
->0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;	Perl5 module source text
-# not 'p', check other lines
-0	search/1	!p
->0	regex		\^package[\ \t]+[0-9A-Za-z_:]+\ *;
->>0	regex		\^1\ *;|\^(use|sub|my)\ .*[(;{=]	Perl5 module source text
-
-
-
-# Perl POD documents
-# From: Tom Hukins <tom@eborcom.com>
-0	search/1/B	\=pod\n		Perl POD document text
-0	search/1/B	\n\=pod\n	Perl POD document text
-0	search/1/B	\=head1\ 	Perl POD document text
-0	search/1/B	\n\=head1\ 	Perl POD document text
-0	search/1/B	\=head2\ 	Perl POD document text
-0	search/1/B	\n\=head2\ 	Perl POD document text
-
-# Perl Storable data files.
-0	string	perl-store	perl Storable (v0.6) data
->4	byte	>0	(net-order %d)
->>4	byte	&01	(network-ordered)
->>4	byte	=3	(major 1)
->>4	byte	=2	(major 1)
-
-0	string	pst0	perl Storable (v0.7) data
->4	byte	>0
->>4	byte	&01	(network-ordered)
->>4	byte	=5	(major 2)
->>4	byte	=4	(major 2)
->>5	byte	>0	(minor %d)
-
-#------------------------------------------------------------------------------
-# pgp:  file(1) magic for Pretty Good Privacy
-# see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html
-#
-0       beshort         0x9900                  PGP key public ring
-!:mime	application/x-pgp-keyring
-0       beshort         0x9501                  PGP key security ring
-!:mime	application/x-pgp-keyring
-0       beshort         0x9500                  PGP key security ring
-!:mime	application/x-pgp-keyring
-0	beshort		0xa600			PGP encrypted data
-#!:mime	application/pgp-encrypted
-#0	string		-----BEGIN\040PGP	text/PGP armored data
-!:mime	text/PGP # encoding: armored data
-#>15	string	PUBLIC\040KEY\040BLOCK-	public key block
-#>15	string	MESSAGE-		message
-#>15	string	SIGNED\040MESSAGE-	signed message
-#>15	string	PGP\040SIGNATURE-	signature
-
-2	string	---BEGIN\ PGP\ PUBLIC\ KEY\ BLOCK-	PGP public key block
-!:mime	application/pgp-keys
-0	string	-----BEGIN\040PGP\40MESSAGE-		PGP message
-!:mime	application/pgp
-0	string	-----BEGIN\040PGP\40SIGNATURE-		PGP signature
-!:mime	application/pgp-signature
-
-#------------------------------------------------------------------------------
-# pkgadd:  file(1) magic for SysV R4 PKG Datastreams
-#
-0       string          #\ PaCkAgE\ DaTaStReAm  pkg Datastream (SVR4)
-!:mime	application/x-svr4-package
-
-#------------------------------------------------------------------------------
-# plan9:  file(1) magic for AT&T Bell Labs' Plan 9 executables
-# From: "Stefan A. Haubenthal" <polluks@web.de>
-#
-0	belong		0x00000107	Plan 9 executable, Motorola 68k
-0	belong		0x000001EB	Plan 9 executable, Intel 386
-0	belong		0x00000247	Plan 9 executable, Intel 960
-0	belong		0x000002AB	Plan 9 executable, SPARC
-0	belong		0x00000407	Plan 9 executable, MIPS R3000
-0	belong		0x0000048B	Plan 9 executable, AT&T DSP 3210
-0	belong		0x00000517	Plan 9 executable, MIPS R4000 BE
-0	belong		0x000005AB	Plan 9 executable, AMD 29000
-0	belong		0x00000647	Plan 9 executable, ARM 7-something
-0	belong		0x000006EB	Plan 9 executable, PowerPC
-0	belong		0x00000797	Plan 9 executable, MIPS R4000 LE
-0	belong		0x0000084B	Plan 9 executable, DEC Alpha
-
-#------------------------------------------------------------------------------
-# plus5:  file(1) magic for Plus Five's UNIX MUMPS
-#
-# XXX - byte order?  Paging Hokey....
-#
-0	short		0x259		mumps avl global
->2	byte		>0		(V%d)
->6	byte		>0		with %d byte name
->7	byte		>0		and %d byte data cells
-0	short		0x25a		mumps blt global
->2	byte		>0		(V%d)
->8	short		>0		- %d byte blocks
->15	byte		0x00		- P/D format
->15	byte		0x01		- P/K/D format
->15	byte		0x02		- K/D format
->15	byte		>0x02		- Bad Flags
-
-#------------------------------------------------------------------------------
-# printer:  file(1) magic for printer-formatted files
-#
-
-# PostScript, updated by Daniel Quinlan (quinlan@yggdrasil.com)
-0	string		%!		PostScript document text
-!:mime	application/postscript
-!:apple	ASPSTEXT
->2	string		PS-Adobe-	conforming
->>11	string		>\0		DSC level %.3s
->>>15	string		EPS		\b, type %s
->>>15	string		Query		\b, type %s
->>>15	string		ExitServer	\b, type %s
->>>15   search/1000		%%LanguageLevel:\ 
->>>>&0	string		>\0		\b, Level %s
-# Some PCs have the annoying habit of adding a ^D as a document separator
-0	string		\004%!		PostScript document text
-!:mime	application/postscript
-!:apple	ASPSTEXT
->3	string		PS-Adobe-	conforming
->>12	string		>\0		DSC level %.3s
->>>16	string		EPS		\b, type %s
->>>16	string		Query		\b, type %s
->>>16	string		ExitServer	\b, type %s
->>>16   search/1000		%%LanguageLevel:\ 
->>>>&0	string		>\0		\b, Level %s
-0	string		\033%-12345X%!PS	PostScript document
-
-# DOS EPS Binary File Header
-# From: Ed Sznyter <ews@Black.Market.NET>
-0       belong          0xC5D0D3C6      DOS EPS Binary File
->4      long            >0              Postscript starts at byte %d
->>8     long            >0              length %d
->>>12   long            >0              Metafile starts at byte %d
->>>>16  long            >0              length %d
->>>20   long            >0              TIFF starts at byte %d
->>>>24  long            >0              length %d
-
-# Summary: Adobe's PostScript Printer Description File
-# Extension: .ppd
-# Reference: http://partners.adobe.com/public/developer/en/ps/5003.PPD_Spec_v4.3.pdf, Section 3.8
-# Submitted by: Yves Arrouye <arrouye@marin.fdn.fr>
-#
-0	string		*PPD-Adobe:\x20	PPD file
->&0	string		x		\b, version %s
-
-# HP Printer Job Language
-0	string		\033%-12345X@PJL	HP Printer Job Language data
-# HP Printer Job Language
-# The header found on Win95 HP plot files is the "Silliest Thing possible" 
-# (TM)
-# Every driver puts the language at some random position, with random case
-# (LANGUAGE and Language)
-# For example the LaserJet 5L driver puts the "PJL ENTER LANGUAGE" in line 10
-# From: Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>
-# 
-0	string		\033%-12345X@PJL	HP Printer Job Language data
->&0	string		>\0			%s			
->>&0	string		>\0			%s			
->>>&0	string		>\0			%s		
->>>>&0	string		>\0			%s		
-#>15	string		\ ENTER\ LANGUAGE\ =
-#>31	string		PostScript		PostScript
-
-# HP Printer Control Language, Daniel Quinlan (quinlan@yggdrasil.com)
-0	string		\033E\033	HP PCL printer data
->3	string		\&l0A		- default page size
->3	string		\&l1A		- US executive page size
->3	string		\&l2A		- US letter page size
->3	string		\&l3A		- US legal page size
->3	string		\&l26A		- A4 page size
->3	string		\&l80A		- Monarch envelope size
->3	string		\&l81A		- No. 10 envelope size
->3	string		\&l90A		- Intl. DL envelope size
->3	string		\&l91A		- Intl. C5 envelope size
->3	string		\&l100A		- Intl. B5 envelope size
->3	string		\&l-81A		- No. 10 envelope size (landscape)
->3	string		\&l-90A		- Intl. DL envelope size (landscape)
-
-# IMAGEN printer-ready files:
-0	string	@document(		Imagen printer
-# this only works if "language xxx" is first item in Imagen header.
->10	string	language\ impress	(imPRESS data)
->10	string	language\ daisy		(daisywheel text)
->10	string	language\ diablo	(daisywheel text)
->10	string	language\ printer	(line printer emulation)
->10	string	language\ tektronix	(Tektronix 4014 emulation)
-# Add any other languages that your Imagen uses - remember
-# to keep the word `text' if the file is human-readable.
-# [GRR 950115:  missing "postscript" or "ultrascript" (whatever it was called)]
-#
-# Now magic for IMAGEN font files...
-0	string		Rast		RST-format raster font data
->45	string		>0		face %s
-# From Jukka Ukkonen
-0	string		\033[K\002\0\0\017\033(a\001\0\001\033(g	Canon Bubble Jet BJC formatted data
-
-# From <mike@flyn.org>
-# These are the /etc/magic entries to decode data sent to an Epson printer.
-0       string          \x1B\x40\x1B\x28\x52\x08\x00\x00REMOTE1P        Epson Stylus Color 460 data
-
-
-#------------------------------------------------------------------------------
-# zenographics:  file(1) magic for Zenographics ZjStream printer data
-# Rick Richardson  rickr@mn.rr.com
-0	string		JZJZ
->0x12	string		ZZ		Zenographics ZjStream printer data (big-endian)
-0	string		ZJZJ
->0x12	string		ZZ		Zenographics ZjStream printer data (little-endian)
-
-
-#------------------------------------------------------------------------------
-# Oak Technologies printer stream
-# Rick Richardson <rickr@mn.rr.com>
-0       string          OAK
->0x07	byte		0
->0x0b	byte		0	Oak Technologies printer stream
-
-# This would otherwise be recognized as PostScript - nick@debian.org
-0	string		%!VMF 		SunClock's Vector Map Format data
-
-#------------------------------------------------------------------------------
-# HP LaserJet 1000 series downloadable firmware file
-0	string	\xbe\xefABCDEFGH	HP LaserJet 1000 series downloadable firmware   
-
-# From: Paolo <oopla@users.sf.net>
-# Epson ESC/Page, ESC/PageColor 
-0	string	\x1b\x01@EJL	Epson ESC/Page language printer data
-
-#------------------------------------------------------------------------------
-# project:  file(1) magic for Project management
-# 
-# Magic strings for ftnchek project files. Alexander Mai
-0	string	FTNCHEK_\ P	project file for ftnchek
->10	string	1		version 2.7
->10	string	2		version 2.8 to 2.10
->10	string	3		version 2.11 or later
-
-#------------------------------------------------------------------------------
-# psdbms:  file(1) magic for psdatabase
-#
-0	belong&0xff00ffff	0x56000000	ps database
->1	string	>\0	version %s
->4	string	>\0	from kernel %s
-#------------------------------------------------------------------------------
-# psion:  file(1) magic for Psion handhelds data
-# from: Peter Breitenlohner <peb@mppmu.mpg.de>
-#
-0	lelong		0x10000037	Psion Series 5
->4	lelong		0x10000039	font file
->4	lelong		0x1000003A	printer driver
->4	lelong		0x1000003B	clipboard
->4	lelong		0x10000042	multi-bitmap image
->4	lelong		0x1000006A	application information file
->4	lelong		0x1000006D
->>8	lelong		0x1000007D	sketch image
-!:mime image/x-psion-sketch
->>8	lelong		0x1000007E	voice note
->>8	lelong		0x1000007F	word file
->>8	lelong		0x10000085	OPL program
->>8	lelong		0x10000088	sheet file
->>8	lelong		0x100001C4	EasyFax initialisation file
->4	lelong		0x10000073	OPO module
->4	lelong		0x10000074	OPL application
->4	lelong		0x1000008A	exported multi-bitmap image
-
-0	lelong		0x10000041	Psion Series 5 ROM multi-bitmap image
-
-0	lelong		0x10000050	Psion Series 5
->4	lelong		0x1000006D	database
->4	lelong		0x100000E4	ini file
-
-0	lelong		0x10000079	Psion Series 5 binary:
->4	lelong		0x00000000	DLL
->4	lelong		0x10000049	comms hardware library
->4	lelong		0x1000004A	comms protocol library
->4	lelong		0x1000005D	OPX
->4	lelong		0x1000006C	application
->4	lelong		0x1000008D	DLL
->4	lelong		0x100000AC	logical device driver
->4	lelong		0x100000AD	physical device driver
->4	lelong		0x100000E5	file transfer protocol
->4	lelong		0x100000E5	file transfer protocol
->4	lelong		0x10000140	printer definition
->4	lelong		0x10000141	printer definition
-
-0	lelong		0x1000007A	Psion Series 5 executable
-
-#------------------------------------------------------------------------------
-# pulsar:  file(1) magic for Pulsar POP3 daemon binary files
-#
-# http://pulsar.sourceforge.net
-# mailto:rok.papez@lugos.si
-#
-
-0	belong	0x1ee7f11e	Pulsar POP3 daemon mailbox cache file.
->4	ubelong	x		Version: %d.
->8	ubelong	x		\b%d
-
-
-#------------------------------------------------------------------------------
-# pyramid:  file(1) magic for Pyramids
-#
-# XXX - byte order?
-#
-0	long		0x50900107	Pyramid 90x family executable
-0	long		0x50900108	Pyramid 90x family pure executable
->16	long		>0		not stripped
-0	long		0x5090010b	Pyramid 90x family demand paged pure executable
->16	long		>0		not stripped
-
-#------------------------------------------------------------------------------
-# python:  file(1) magic for python
-#
-# From: David Necas <yeti@physics.muni.cz>
-# often the module starts with a multiline string
-0	string		"""	a python script text executable
-# MAGIC as specified in Python/import.c (1.5 to 2.3.0a)
-# 20121  ( YEAR - 1995 ) + MONTH  + DAY (little endian followed by "\r\n"
-0	belong		0x994e0d0a	python 1.5/1.6 byte-compiled
-0	belong		0x87c60d0a	python 2.0 byte-compiled
-0	belong		0x2aeb0d0a	python 2.1 byte-compiled
-0	belong		0x2ded0d0a	python 2.2 byte-compiled
-0	belong		0x3bf20d0a	python 2.3 byte-compiled
-0	belong		0x6df20d0a	python 2.4 byte-compiled
-0	belong		0xb3f20d0a	python 2.5 byte-compiled
-0	belong		0xd1f20d0a	python 2.6 byte-compiled
-
-
-0	string/b  #!\ /usr/bin/python	python script text executable
-
-
-#------------------------------------------------------------------------------
-# file(1) magic for revision control files
-# From Hendrik Scholz <hendrik@scholz.net>
-0	string	/1\ :pserver:	cvs password text file
-
-# Conary changesets
-# From: Jonathan Smith <smithj@rpath.com>
-0	belong	0xea3f81bb	Conary changeset data
-
-# Type: Git bundles (git-bundle)
-# From: Josh Triplett <josh@freedesktop.org>
-0	string	#\ v2\ git\ bundle\n	Git bundle
-
-# Type: Git pack
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# The actual magic is 'PACK', but that clashes with Doom/Quake packs. However,
-# those have a little-endian offset immediately following the magic 'PACK',
-# the first byte of which is never 0, while the first byte of the Git pack
-# version, since it's a tiny number stored in big-endian format, is always 0.
-0	string	PACK\0		Git pack
->4	belong	>0		\b, version %d
->>8	belong	>0		\b, %d objects
-
-# Type: Git pack index
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-0	string	\377tOc		Git pack index
->4	belong	=2		\b, version 2
-
-# Type:	Mercurial bundles
-# From:	Seo Sanghyeon <tinuviel@sparcs.kaist.ac.kr>
-0	string	HG10		Mercurial bundle,
->4	string	UN		uncompressed
->4	string	BZ		bzip2 compressed
-
-# Type:	Subversion (SVN) dumps
-# From:	Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de>
-0	string	SVN-fs-dump-format-version:	Subversion dumpfile
->28	string	>\0				(version: %s)
-
-# Type:	Bazaar revision bundles and merge requests
-# URL:	http://www.bazaar-vcs.org/
-# From:	Jelmer Vernooij <jelmer@samba.org>
-0	string	#\ Bazaar\ revision\ bundle\ v Bazaar Bundle
-0	string	#\ Bazaar\ merge\ directive\ format Bazaar merge directive
-
-#------------------------------------------------------------------------------
-# riff:  file(1) magic for RIFF format
-# See
-#
-#	http://www.seanet.com/users/matts/riffmci/riffmci.htm
-#
-# AVI section extended by Patrik R�dman <patrik+file-magic@iki.fi>
-#
-0	string		RIFF		RIFF (little-endian) data
-# RIFF Palette format
->8	string		PAL		\b, palette
->>16	leshort		x		\b, version %d
->>18	leshort		x		\b, %d entries
-# RIFF Device Independent Bitmap format
->8	string		RDIB		\b, device-independent bitmap
->>16	string		BM		
->>>30	leshort		12		\b, OS/2 1.x format
->>>>34	leshort		x		\b, %d x
->>>>36	leshort		x		%d
->>>30	leshort		64		\b, OS/2 2.x format
->>>>34	leshort		x		\b, %d x
->>>>36	leshort		x		%d
->>>30	leshort		40		\b, Windows 3.x format
->>>>34	lelong		x		\b, %d x
->>>>38	lelong		x		%d x
->>>>44	leshort		x		%d
-# RIFF MIDI format
->8	string		RMID		\b, MIDI
-# RIFF Multimedia Movie File format
->8	string		RMMP		\b, multimedia movie
-# RIFF wrapper for MP3
->8	string		RMP3		\b, MPEG Layer 3 audio
-# Microsoft WAVE format (*.wav)
->8	string		WAVE		\b, WAVE audio
-!:mime	audio/x-wav
->>20	leshort		1		\b, Microsoft PCM
->>>34	leshort		>0		\b, %d bit
->>20	leshort		2		\b, Microsoft ADPCM
->>20	leshort		6		\b, ITU G.711 A-law
->>20	leshort		7		\b, ITU G.711 mu-law
->>20	leshort		8		\b, Microsoft DTS
->>20	leshort		17		\b, IMA ADPCM
->>20	leshort		20		\b, ITU G.723 ADPCM (Yamaha)
->>20	leshort		49		\b, GSM 6.10
->>20	leshort		64		\b, ITU G.721 ADPCM
->>20	leshort		80		\b, MPEG
->>20	leshort		85		\b, MPEG Layer 3
->>20	leshort		0x2001		\b, DTS
->>22	leshort		=1		\b, mono
->>22	leshort		=2		\b, stereo
->>22	leshort		>2		\b, %d channels
->>24	lelong		>0		%d Hz
-# Corel Draw Picture
->8	string		CDRA		\b, Corel Draw Picture
-!:mime	image/x-coreldraw
-# AVI == Audio Video Interleave
->8	string		AVI\040		\b, AVI
-!:mime	video/x-msvideo
->>12    string          LIST
->>>20   string          hdrlavih
->>>>&36 lelong          x               \b, %lu x
->>>>&40 lelong          x               %lu,
->>>>&4  lelong          >1000000        <1 fps,
->>>>&4  lelong          1000000         1.00 fps,
->>>>&4  lelong          500000          2.00 fps,
->>>>&4  lelong          333333          3.00 fps,
->>>>&4  lelong          250000          4.00 fps,
->>>>&4  lelong          200000          5.00 fps,
->>>>&4  lelong          166667          6.00 fps,
->>>>&4  lelong          142857          7.00 fps,
->>>>&4  lelong          125000          8.00 fps,
->>>>&4  lelong          111111          9.00 fps,
->>>>&4  lelong          100000          10.00 fps,
-# ]9.9,10.1[
->>>>&4  lelong          <101010
->>>>>&-4        lelong  >99010
->>>>>>&-4       lelong  !100000         ~10 fps,
->>>>&4  lelong          83333           12.00 fps,
-# ]11.9,12.1[
->>>>&4  lelong          <84034
->>>>>&-4        lelong  >82645
->>>>>>&-4       lelong  !83333          ~12 fps,
->>>>&4  lelong          66667           15.00 fps,
-# ]14.9,15.1[
->>>>&4  lelong          <67114
->>>>>&-4        lelong  >66225
->>>>>>&-4       lelong  !66667          ~15 fps,
->>>>&4  lelong          50000           20.00 fps,
->>>>&4  lelong          41708           23.98 fps,
->>>>&4  lelong          41667           24.00 fps,
-# ]23.9,24.1[
->>>>&4  lelong          <41841
->>>>>&-4        lelong  >41494
->>>>>>&-4       lelong  !41708
->>>>>>>&-4      lelong  !41667          ~24 fps,
->>>>&4  lelong          40000           25.00 fps,
-# ]24.9,25.1[
->>>>&4  lelong          <40161
->>>>>&-4        lelong  >39841
->>>>>>&-4       lelong  !40000          ~25 fps,
->>>>&4  lelong          33367           29.97 fps,
->>>>&4  lelong          33333           30.00 fps,
-# ]29.9,30.1[
->>>>&4  lelong          <33445
->>>>>&-4        lelong  >33223
->>>>>>&-4       lelong  !33367
->>>>>>>&-4      lelong  !33333          ~30 fps,
->>>>&4  lelong          <32224          >30 fps,
-##>>>>&4  lelong          x               (%lu)
-##>>>>&20 lelong          x               %lu frames,
-# Note: The tests below assume that the AVI has 1 or 2 streams,
-#       "vids" optionally followed by "auds".
-#       (Should cover 99.9% of all AVIs.)
-# assuming avih length = 56
->>>88   string  LIST
->>>>96  string  strlstrh
->>>>>108        string  vids    video:
->>>>>>&0        lelong  0               uncompressed
-# skip past vids strh
->>>>>>(104.l+108)       string  strf
->>>>>>>(104.l+132)      lelong          1       RLE 8bpp
->>>>>>>(104.l+132)      string/c        cvid    Cinepak
->>>>>>>(104.l+132)      string/c        i263    Intel I.263
->>>>>>>(104.l+132)      string/c        iv32    Indeo 3.2
->>>>>>>(104.l+132)      string/c        iv41    Indeo 4.1
->>>>>>>(104.l+132)      string/c        iv50    Indeo 5.0
->>>>>>>(104.l+132)      string/c        mp42    Microsoft MPEG-4 v2
->>>>>>>(104.l+132)      string/c        mp43    Microsoft MPEG-4 v3
->>>>>>>(104.l+132)      string/c        fmp4    FFMpeg MPEG-4
->>>>>>>(104.l+132)      string/c        mjpg    Motion JPEG
->>>>>>>(104.l+132)      string/c        div3    DivX 3
->>>>>>>>112             string/c        div3    Low-Motion
->>>>>>>>112             string/c        div4    Fast-Motion
->>>>>>>(104.l+132)      string/c        divx    DivX 4
->>>>>>>(104.l+132)      string/c        dx50    DivX 5
->>>>>>>(104.l+132)      string/c        xvid    XviD
->>>>>>>(104.l+132)	string/c	h264	H.264
->>>>>>>(104.l+132)      string/c        wmv3    Windows Media Video 9
->>>>>>>(104.l+132)      string/c        h264    X.264 or H.264
->>>>>>>(104.l+132)      lelong  0
-##>>>>>>>(104.l+132)      string  x       (%.4s)
-# skip past first (video) LIST
->>>>(92.l+96)   string  LIST
->>>>>(92.l+104) string  strlstrh
->>>>>>(92.l+116)        string          auds    \b, audio:
-# auds strh length = 56:
->>>>>>>(92.l+172)       string          strf
->>>>>>>>(92.l+180)      leshort 0x0001  uncompressed PCM
->>>>>>>>(92.l+180)      leshort 0x0002  ADPCM
->>>>>>>>(92.l+180)      leshort 0x0006  aLaw
->>>>>>>>(92.l+180)      leshort 0x0007  uLaw
->>>>>>>>(92.l+180)      leshort 0x0050  MPEG-1 Layer 1 or 2
->>>>>>>>(92.l+180)      leshort 0x0055  MPEG-1 Layer 3
->>>>>>>>(92.l+180)      leshort 0x2000  Dolby AC3
->>>>>>>>(92.l+180)      leshort 0x0161  DivX
-##>>>>>>>>(92.l+180)      leshort x       (0x%.4x)
->>>>>>>>(92.l+182)      leshort 1       (mono,
->>>>>>>>(92.l+182)      leshort 2       (stereo,
->>>>>>>>(92.l+182)      leshort >2      (%d channels,
->>>>>>>>(92.l+184)      lelong  x       %d Hz)
-# auds strh length = 64:
->>>>>>>(92.l+180)       string          strf
->>>>>>>>(92.l+188)      leshort 0x0001  uncompressed PCM
->>>>>>>>(92.l+188)      leshort 0x0002  ADPCM
->>>>>>>>(92.l+188)      leshort 0x0055  MPEG-1 Layer 3
->>>>>>>>(92.l+188)      leshort 0x2000  Dolby AC3
->>>>>>>>(92.l+188)      leshort 0x0161  DivX
-##>>>>>>>>(92.l+188)      leshort x       (0x%.4x)
->>>>>>>>(92.l+190)      leshort 1       (mono,
->>>>>>>>(92.l+190)      leshort 2       (stereo,
->>>>>>>>(92.l+190)      leshort >2      (%d channels,
->>>>>>>>(92.l+192)      lelong  x       %d Hz)
-# Animated Cursor format
->8	string		ACON		\b, animated cursor
-# SoundFont 2 <mpruett@sgi.com>
->8	string		sfbk		SoundFont/Bank
-# MPEG-1 wrapped in a RIFF, apparently
->8      string          CDXA            \b, wrapped MPEG-1 (CDXA)
->8	string		4XMV		\b, 4X Movie file 
-
-#
-# XXX - some of the below may only appear in little-endian form.
-#
-# Also "MV93" appears to be for one form of Macromedia Director
-# files, and "GDMF" appears to be another multimedia format.
-#
-0	string		RIFX		RIFF (big-endian) data
-# RIFF Palette format
->8	string		PAL		\b, palette
->>16	beshort		x		\b, version %d
->>18	beshort		x		\b, %d entries
-# RIFF Device Independent Bitmap format
->8	string		RDIB		\b, device-independent bitmap
->>16	string		BM		
->>>30	beshort		12		\b, OS/2 1.x format
->>>>34	beshort		x		\b, %d x
->>>>36	beshort		x		%d
->>>30	beshort		64		\b, OS/2 2.x format
->>>>34	beshort		x		\b, %d x
->>>>36	beshort		x		%d
->>>30	beshort		40		\b, Windows 3.x format
->>>>34	belong		x		\b, %d x
->>>>38	belong		x		%d x
->>>>44	beshort		x		%d
-# RIFF MIDI format
->8	string		RMID		\b, MIDI
-# RIFF Multimedia Movie File format
->8	string		RMMP		\b, multimedia movie
-# Microsoft WAVE format (*.wav)
->8	string		WAVE		\b, WAVE audio
->>20	leshort		1		\b, Microsoft PCM
->>>34	leshort		>0		\b, %d bit
->>22	beshort		=1		\b, mono
->>22	beshort		=2		\b, stereo
->>22	beshort		>2		\b, %d channels
->>24	belong		>0		%d Hz
-# Corel Draw Picture
->8	string		CDRA		\b, Corel Draw Picture
-# AVI == Audio Video Interleave
->8	string		AVI\040		\b, AVI
-# Animated Cursor format
->8	string		ACON		\b, animated cursor
-# Notation Interchange File Format (big-endian only)
->8	string		NIFF		\b, Notation Interchange File Format
-# SoundFont 2 <mpruett@sgi.com>
->8	string		sfbk		SoundFont/Bank
-#------------------------------------------------------------------------------
-#
-# RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
-#
-0	beshort		0xedab
->2	beshort		0xeedb		RPM
-!:mime	application/x-rpm
->>4	byte		x		v%d
->>6	beshort		0		bin
->>6	beshort		1		src
->>8	beshort		1		i386
->>8	beshort		2		Alpha
->>8	beshort		3		Sparc
->>8	beshort		4		MIPS
->>8	beshort		5		PowerPC
->>8	beshort		6		68000
->>8	beshort		7		SGI
->>8	beshort		8		RS6000
->>8	beshort		9		IA64
->>8	beshort		10		Sparc64
->>8	beshort		11		MIPSel
->>8	beshort		12		ARM
->>10	string		x		%s
-
-#------------------------------------------------------------------------------
-# rtf:	file(1) magic for Rich Text Format (RTF)
-#
-# Duncan P. Simpson, D.P.Simpson@dcs.warwick.ac.uk
-#
-0	string		{\\rtf		Rich Text Format data,
-!:mime	text/rtf
->5	string		1		version 1,
->>6	string		\\ansi		ANSI
->>6	string		\\mac		Apple Macintosh
->>6	string		\\pc		IBM PC, code page 437
->>6	string		\\pca		IBM PS/2, code page 850
->>6	default		x		unknown character set
->5	default		x		unknown version
-#------------------------------------------------------------------------------
-# ruby:  file(1) magic for Lua scripting language
-# URL:  http://www.ruby-lang.org/
-# From: Reuben Thomas <rrt@sc3d.org>
-
-# Ruby scripts
-0	search/1/b	#!\ /usr/bin/ruby	Ruby script text executable
-!:mime	application/x-ruby
-0	search/1/b	#!\ /usr/local/bin/ruby	Ruby script text executable
-!:mime	application/x-ruby
-0	search/1	#!/usr/bin/env\ ruby	Ruby script text executable
-!:mime	application/x-ruby
-0	search/1	#!\ /usr/bin/env\ ruby	Ruby script text executable
-!:mime	application/x-ruby
-
-#------------------------------------------------------------------------------
-# sc:  file(1) magic for "sc" spreadsheet
-#
-38	string		Spreadsheet	sc spreadsheet file
-!:mime	application/x-sc
-
-#------------------------------------------------------------------------------
-# sccs:  file(1) magic for SCCS archives
-#
-# SCCS archive structure:
-# \001h01207
-# \001s 00276/00000/00000
-# \001d D 1.1 87/09/23 08:09:20 ian 1 0
-# \001c date and time created 87/09/23 08:09:20 by ian
-# \001e
-# \001u
-# \001U
-# ... etc.
-# Now '\001h' happens to be the same as the 3B20's a.out magic number (0550).
-# *Sigh*. And these both came from various parts of the USG.
-# Maybe we should just switch everybody from SCCS to RCS!
-# Further, you can't just say '\001h0', because the five-digit number
-# is a checksum that could (presumably) have any leading digit,
-# and we don't have regular expression matching yet. 
-# Hence the following official kludge:
-8	string		\001s\ 			SCCS archive data
-#------------------------------------------------------------------------------
-# scientific:  file(1) magic for scientific formats 
-#
-# From: Joe Krahn <krahn@niehs.nih.gov>
-
-########################################################
-# CCP4 data and plot files:
-0	string		MTZ\040		MTZ reflection file
-
-92	string		PLOT%%84	Plot84 plotting file
->52	byte		1		, Little-endian
->55	byte		1		, Big-endian
-
-########################################################
-# Electron density MAP/MASK formats
-
-0	string		EZD_MAP	NEWEZD Electron Density Map
-109	string		MAP\040(  Old EZD Electron Density Map
-
-0	string/c	:-)\040Origin	BRIX Electron Density Map
->170	string		>0	, Sigma:%.12s
-#>4	string		>0	%.178s
-#>4	addr		x	%.178s
-
-7	string		18\040!NTITLE	XPLOR ASCII Electron Density Map
-9	string		\040!NTITLE\012\040REMARK	CNS ASCII electron density map
-
-208	string		MAP\040	CCP4 Electron Density Map
-# Assumes same stamp for float and double (normal case)
->212	byte		17	\b, Big-endian
->212	byte		34	\b, VAX format
->212	byte		68	\b, Little-endian
->212	byte		85	\b, Convex native
-
-############################################################
-# X-Ray Area Detector images
-0	string	R-AXIS4\ \ \ 	R-Axis Area Detector Image:
->796	lelong	<20		Little-endian, IP #%d,
->>768	lelong	>0		Size=%dx
->>772	lelong	>0		\b%d
->796	belong	<20		Big-endian, IP #%d,
->>768	belong	>0		Size=%dx
->>772	belong	>0		\b%d
-
-0	string	RAXIS\ \ \ \ \ 	R-Axis Area Detector Image, Win32:
->796	lelong	<20		Little-endian, IP #%d,
->>768	lelong	>0		Size=%dx
->>772	lelong	>0		\b%d
->796	belong	<20		Big-endian, IP #%d,
->>768	belong	>0		Size=%dx
->>772	belong	>0		\b%d
-
-
-1028	string	MMX\000\000\000\000\000\000\000\000\000\000\000\000\000	MAR Area Detector Image,
->1072	ulong	>1		Compressed(%d),
->1100	ulong	>1		%d headers,
->1104	ulong	>0		%d x
->1108	ulong	>0		%d,
->1120	ulong	>0		%d bits/pixel
-
-# Type: GEDCOM genealogical (family history) data
-# From: Giuseppe Bilotta
-0       search/1/c	0\ HEAD         GEDCOM genealogy text
->&0     search		1\ GEDC
->>&0    search		2\ VERS         version
->>>&1   search/1	>\0		%s
-# From: Phil Endecott <phil05@chezphil.org>
-0	string	\000\060\000\040\000\110\000\105\000\101\000\104		GEDCOM data
-0	string	\060\000\040\000\110\000\105\000\101\000\104\000		GEDCOM data
-0	string	\376\377\000\060\000\040\000\110\000\105\000\101\000\104	GEDCOM data
-0	string	\377\376\060\000\040\000\110\000\105\000\101\000\104\000	GEDCOM data
-0	search/1		-----BEGIN\ CERTIFICATE------	RFC1421 Security Certificate text
-0	search/1		-----BEGIN\ NEW\ CERTIFICATE	RFC1421 Security Certificate Signing Request text
-0	belong	0xedfeedfe	Sun 'jks' Java Keystore File data
-# Type:	SE Linux policy modules *.pp reference policy
-#	for Fedora 5 to 9, RHEL5, and Debian Etch and Lenny.
-# URL:	http://doc.coker.com.au/computers/selinux-magic
-# From:	Russell Coker <russell@coker.com.au>
-
-0		lelong	0xf97cff8f	SE Linux modular policy
->4		lelong	x		version %d,
->8		lelong	x		%d sections,
->>(12.l)	lelong	0xf97cff8d
->>>(12.l+27)	lelong	x		mod version %d,
->>>(12.l+31)	lelong	0		Not MLS,
->>>(12.l+31)	lelong	1		MLS,
->>>(12.l+23)	lelong	2
->>>>(12.l+47)	string	>\0		module name %s
->>>(12.l+23)	lelong	1		base
-
-1	string	policy_module(	SE Linux policy module source
-2	string	policy_module(	SE Linux policy module source
-
-0	string	##\ <summary>	SE Linux policy interface source
-
-#0	search	gen_context(	SE Linux policy file contexts
-
-#0	search	gen_sens(	SE Linux policy MLS constraints source
-
-#------------------------------------------------------------------------------
-# sendmail:  file(1) magic for sendmail config files
-#
-# XXX - byte order?
-#
-0	byte	046	  Sendmail frozen configuration 
->16	string	>\0	  - version %s
-0	short	0x271c	  Sendmail frozen configuration
->16	string	>\0	  - version %s
-
-#------------------------------------------------------------------------------
-# sendmail:  file(1) magic for sendmail m4(1) files
-#
-# From Hendrik Scholz <hendrik@scholz.net>
-# i.e. files in /usr/share/sendmail/cf/
-#
-0   string  divert(-1)\n    sendmail m4 text file
-
-
-#------------------------------------------------------------------------------
-# sequent:  file(1) magic for Sequent machines
-#
-# Sequent information updated by Don Dwiggins <atsun!dwiggins>.
-# For Sequent's multiprocessor systems (incomplete).
-0	lelong	0x00ea        	BALANCE NS32000 .o
->16	lelong	>0		not stripped
->124	lelong	>0		version %ld
-0	lelong	0x10ea        	BALANCE NS32000 executable (0 @ 0)
->16	lelong  >0            	not stripped
->124	lelong	>0		version %ld
-0	lelong	0x20ea        	BALANCE NS32000 executable (invalid @ 0)
->16	lelong  >0            	not stripped
->124	lelong	>0		version %ld
-0	lelong	0x30ea        	BALANCE NS32000 standalone executable
->16	lelong  >0          	not stripped
->124	lelong	>0		version %ld
-#
-# Symmetry information added by Jason Merrill <jason@jarthur.claremont.edu>.
-# Symmetry magic nums will not be reached if DOS COM comes before them;
-# byte 0xeb is matched before these get a chance.
-0	leshort	0x12eb		SYMMETRY i386 .o
->16	lelong	>0		not stripped
->124	lelong	>0		version %ld
-0	leshort	0x22eb		SYMMETRY i386 executable (0 @ 0)
->16	lelong	>0		not stripped
->124	lelong	>0		version %ld
-0	leshort	0x32eb		SYMMETRY i386 executable (invalid @ 0)
->16	lelong	>0		not stripped
->124	lelong	>0		version %ld
-0	leshort	0x42eb		SYMMETRY i386 standalone executable
->16	lelong	>0		not stripped
->124	lelong	>0		version %ld
-
-#------------------------------------------------------------------------------
-# sgi:  file(1) magic for Silicon Graphics applications
-
-#
-#
-# Performance Co-Pilot file types
-0	string	PmNs				PCP compiled namespace (V.0)
-0	string	PmN				PCP compiled namespace
->3	string	>\0				(V.%1.1s)
-#3	lelong	0x84500526			PCP archive
-3	belong	0x84500526			PCP archive
->7	byte	x				(V.%d)
-#>20	lelong	-2				temporal index
-#>20	lelong	-1				metadata
-#>20	lelong	0				log volume #0
-#>20	lelong	>0				log volume #%ld
->20	belong	-2				temporal index
->20	belong	-1				metadata
->20	belong	0				log volume #0
->20	belong	>0				log volume #%ld
->24	string	>\0				host: %s
-0	string	PCPFolio			PCP
->9	string	Version:			Archive Folio
->18	string	>\0				(V.%s)
-0	string	#pmchart			PCP pmchart view
->9	string	Version
->17	string	>\0				(V%-3.3s)
-0	string	#kmchart			PCP kmchart view
->9	string	Version
->17	string	>\0				(V.%s)
-0	string	pmview				PCP pmview config
->7	string	Version
->15	string	>\0				(V%-3.3s)
-0	string	#pmlogger			PCP pmlogger config
->10	string	Version
->18	string	>\0				(V%1.1s)
-0	string	#pmdahotproc			PCP pmdahotproc config
->13	string	Version
->21	string	>\0				(V%-3.3s)
-0	string	PcPh				PCP Help
->4	string	1				Index
->4	string	2				Text
->5	string	>\0				(V.%1.1s)
-0	string	#pmieconf-rules			PCP pmieconf rules
->16	string	>\0				(V.%1.1s)
-3	string	pmieconf-pmie			PCP pmie config
->17	string	>\0				(V.%1.1s)
-
-# SpeedShop data files
-0	lelong	0x13130303			SpeedShop data file
-
-# mdbm files
-0	lelong	0x01023962			mdbm file, version 0 (obsolete)
-0	string	mdbm				mdbm file,
->5	byte	x				version %d,
->6	byte	x				2^%d pages,
->7	byte	x				pagesize 2^%d,
->17	byte	x				hash %d,
->11	byte	x				dataformat %d
-
-# Alias Maya files
-0	string	//Maya ASCII	Alias Maya Ascii File,
->13	string	>\0	version %s
-8	string	MAYAFOR4	Alias Maya Binary File,
->32	string	>\0	version %s scene
-8	string	MayaFOR4	Alias Maya Binary File,
->32	string	>\0	version %s scene
-8	string	CIMG		Alias Maya Image File
-8	string	DEEP		Alias Maya Image File
-#------------------------------------------------------------------------------
-# Type:	SVG Vectorial Graphics
-# From:	Noel Torres <tecnico@ejerciciosresueltos.com>
-0	string		\<?xml\ version="
->15	string		>\0
->>23	search/400	\<svg			SVG Scalable Vector Graphics image
-!:mime	image/svg+xml
->>23	search/400	\<gnc-v2		GnuCash file
-!:mime	application/x-gnucash
-
-# Sitemap file
-0	string		\<?xml\ version="
->15	string		>\0
->>23	search/400	\<urlset		XML Sitemap document text
-!:mime	application/xml-sitemap
-
-#------------------------------------------------------------------------------
-# sgml:  file(1) magic for Standard Generalized Markup Language
-# HyperText Markup Language (HTML) is an SGML document type,
-# from Daniel Quinlan (quinlan@yggdrasil.com)
-# adapted to string extenstions by Anthon van der Neut <anthon@mnt.org)
-0	search/1/cB	\<!doctype\ html	HTML document text
-!:mime	text/html
-0	search/1/cb	\<head			HTML document text
-!:mime	text/html
-0	search/1/cb	\<title			HTML document text
-!:mime	text/html
-0	search/1/cb	\<html			HTML document text
-!:mime	text/html
-
-# Extensible markup language (XML), a subset of SGML
-# from Marc Prud'hommeaux (marc@apocalypse.org)
-0	search/1/cb	\<?xml			XML document text
-!:mime	application/xml
-0	string		\<?xml\ version\ "	XML
-!:mime	application/xml
-0	string		\<?xml\ version="	XML
-!:mime	application/xml
->15	search/1	>\0			%.3s document text
->>23	search/1	\<xsl:stylesheet	(XSL stylesheet)
->>24	search/1	\<xsl:stylesheet	(XSL stylesheet)
-0	string		\<?xml\ version='	XML
-!:mime	application/xml
->15	search/1	>\0			%.3s document text
->>23	search/1	\<xsl:stylesheet	(XSL stylesheet)
->>24	search/1	\<xsl:stylesheet	(XSL stylesheet)
-0	search/1/b	\<?xml			XML document text
-!:mime	application/xml
-0	search/1/b	\<?XML			broken XML document text
-!:mime	application/xml
-
-
-# SGML, mostly from rph@sq
-0	search/1/cb	\<!doctype		exported SGML document text
-0	search/1/cb	\<!subdoc		exported SGML subdocument text
-0	search/1/cb	\<!--			exported SGML document text
-
-# Web browser cookie files
-# (Mozilla, Galeon, Netscape 4, Konqueror..)
-# Ulf Harnhammar <ulfh@update.uu.se>
-0	search/1	#\ HTTP\ Cookie\ File	Web browser cookie text
-0	search/1	#\ Netscape\ HTTP\ Cookie\ File	Netscape cookie text
-0	search/1	#\ KDE\ Cookie\ File	Konqueror cookie text
-
-#------------------------------------------------------------------------
-# file(1) magic for sharc files
-#
-# SHARC DSP, MIDI SysEx and RiscOS filetype definitions added by 
-# FutureGroove Music (dsp@futuregroove.de)
-
-#------------------------------------------------------------------------
-#0	string			Draw		RiscOS Drawfile
-#0	string			PACK		RiscOS PackdDir archive
-
-#------------------------------------------------------------------------
-# SHARC DSP stuff (based on the FGM SHARC DSP SDK)
-
-#0	string			=!		Assembler source
-#0	string			Analog		ADi asm listing file
-0	string			.SYSTEM		SHARC architecture file
-0	string			.system		SHARC architecture file
-
-0	leshort			0x521C		SHARC COFF binary
->2	leshort			>1		, %hd sections
->>12	lelong			>0		, not stripped
-
-#------------------------------------------------------------------------------
-# sinclair:  file(1) sinclair QL
-
-# additions to /etc/magic by Thomas M. Ott (ThMO)
-
-# Sinclair QL floppy disk formats (ThMO)
-0	string	=QL5		QL disk dump data,
->3	string	=A		720 KB,
->3	string	=B		1.44 MB,
->3	string	=C		3.2 MB,
->4	string	>\0		label:%.10s
-
-# Sinclair QL OS dump (ThMO)
-# (NOTE: if `file' would be able to use indirect references in a endian format
-#	 differing from the natural host format, this could be written more
-#	 reliably and faster...)
-#
-# we *can't* lookup QL OS code dumps, because `file' is UNABLE to read more
-# than the first 8K of a file... #-(
-#
-#0		belong	=0x30000
-#>49124		belong	<47104
-#>>49128		belong	<47104
-#>>>49132	belong	<47104
-#>>>>49136	belong	<47104	QL OS dump data,
-#>>>>>49148	string	>\0	type %.3s,
-#>>>>>49142	string	>\0	version %.4s
-
-# Sinclair QL firmware executables (ThMO)
-0	string	NqNqNq`\004	QL firmware executable (BCPL)
-
-# Sinclair QL libraries (was ThMO)
-0	beshort	0xFB01		QDOS object
->2	pstring	x		'%s'
-
-# Sinclair QL executables (was ThMO)
-4	belong	0x4AFB		QDOS executable
->9	pstring	x		'%s'
-
-# Sinclair QL ROM (ThMO)
-0	belong	=0x4AFB0001	QL plugin-ROM data,
->9	pstring	=\0		un-named
->9	pstring	>\0		named: %s
-# Type: SiSU Markup Language
-# URL:  http://www.sisudoc.org/
-# From: Ralph Amissah <ralph.amissah@gmail.com>
-
-0	regex	\^%?[\ \t]*SiSU[\ \t]+insert	SiSU text insert
->5	regex	[0-9.]+				%s
-
-0	regex	\^%[\ \t]+SiSU[\ \t]+master	SiSU text master
->5	regex	[0-9.]+				%s
-
-0	regex	\^%?[\ \t]*SiSU[\ \t]+text	SiSU text
->5	regex	[0-9.]+				%s
-
-0	regex	\^%?[\ \t]*SiSU[\ \t][0-9.]+	SiSU text
->5	regex	[0-9.]+				%s
-
-0	regex	\^%*[\ \t]*sisu-[0-9.]+		SiSU text
->5	regex	[0-9.]+				%s
-#------------------------------------------------------------------------------
-# Sketch Drawings: http://sketch.sourceforge.net/ 
-# From: Edwin Mons <e@ik.nu>
-0	search/1	##Sketch	Sketch document text
-
-#-----------------------------------------------
-# GNU Smalltalk image, starting at version 1.6.2
-# From: catull_us@yahoo.com
-#
-0	string	GSTIm\0\0	GNU SmallTalk
-# little-endian
->7	byte&1	=0		LE image version
->>10	byte	x		%d.
->>9	byte	x		\b%d.
->>8	byte	x		\b%d
-#>>12	lelong	x		, data: %ld
-#>>16	lelong	x		, table: %ld
-#>>20	lelong	x		, memory: %ld
-# big-endian
->7	byte&1	=1		BE image version
->>8	byte	x		%d.
->>9	byte	x		\b%d.
->>10	byte	x		\b%d
-#>>12	belong	x		, data: %ld
-#>>16	belong	x		, table: %ld
-#>>20	belong	x		, memory: %ld
-
-
-
-#------------------------------------------------------------------------------
-# sniffer:  file(1) magic for packet capture files
-#
-# From: guy@alum.mit.edu (Guy Harris)
-#
-
-#
-# Microsoft Network Monitor 1.x capture files.
-#
-0	string		RTSS		NetMon capture file
->5	byte		x		- version %d
->4	byte		x		\b.%d
->6	leshort		0		(Unknown)
->6	leshort		1		(Ethernet)
->6	leshort		2		(Token Ring)
->6	leshort		3		(FDDI)
->6	leshort		4		(ATM)
-
-#
-# Microsoft Network Monitor 2.x capture files.
-#
-0	string		GMBU		NetMon capture file
->5	byte		x		- version %d
->4	byte		x		\b.%d
->6	leshort		0		(Unknown)
->6	leshort		1		(Ethernet)
->6	leshort		2		(Token Ring)
->6	leshort		3		(FDDI)
->6	leshort		4		(ATM)
-
-#
-# Network General Sniffer capture files.
-# Sorry, make that "Network Associates Sniffer capture files."
-# Sorry, make that "Network General old DOS Sniffer capture files."
-#
-0	string		TRSNIFF\ data\ \ \ \ \032	Sniffer capture file
->33	byte		2		(compressed)
->23	leshort		x		- version %d
->25	leshort		x		\b.%d
->32	byte		0		(Token Ring)
->32	byte		1		(Ethernet)
->32	byte		2		(ARCNET)
->32	byte		3		(StarLAN)
->32	byte		4		(PC Network broadband)
->32	byte		5		(LocalTalk)
->32	byte		6		(Znet)
->32	byte		7		(Internetwork Analyzer)
->32	byte		9		(FDDI)
->32	byte		10		(ATM)
-
-#
-# Cinco Networks NetXRay capture files.
-# Sorry, make that "Network General Sniffer Basic capture files."
-# Sorry, make that "Network Associates Sniffer Basic capture files."
-# Sorry, make that "Network Associates Sniffer Basic, and Windows
-# Sniffer Pro", capture files."
-# Sorry, make that "Network General Sniffer capture files."
-#
-0	string		XCP\0		NetXRay capture file
->4	string		>\0		- version %s
->44	leshort		0		(Ethernet)
->44	leshort		1		(Token Ring)
->44	leshort		2		(FDDI)
->44	leshort		3		(WAN)
->44	leshort		8		(ATM)
->44	leshort		9		(802.11)
-
-#
-# "libpcap" capture files.
-# (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
-# the main program that uses that format, but there are other programs
-# that use "libpcap", or that use the same capture file format.)
-#
-0	ubelong		0xa1b2c3d4	tcpdump capture file (big-endian)
->4	beshort		x		- version %d
->6	beshort		x		\b.%d
->20	belong		0		(No link-layer encapsulation
->20	belong		1		(Ethernet
->20	belong		2		(3Mb Ethernet
->20	belong		3		(AX.25
->20	belong		4		(ProNET
->20	belong		5		(CHAOS
->20	belong		6		(Token Ring
->20	belong		7		(BSD ARCNET
->20	belong		8		(SLIP
->20	belong		9		(PPP
->20	belong		10		(FDDI
->20	belong		11		(RFC 1483 ATM
->20	belong		12		(raw IP
->20	belong		13		(BSD/OS SLIP
->20	belong		14		(BSD/OS PPP
->20	belong		19		(Linux ATM Classical IP
->20	belong		50		(PPP or Cisco HDLC
->20	belong		51		(PPP-over-Ethernet
->20	belong		99		(Symantec Enterprise Firewall
->20	belong		100		(RFC 1483 ATM
->20	belong		101		(raw IP
->20	belong		102		(BSD/OS SLIP
->20	belong		103		(BSD/OS PPP
->20	belong		104		(BSD/OS Cisco HDLC
->20	belong		105		(802.11
->20	belong		106		(Linux Classical IP over ATM
->20	belong		107		(Frame Relay
->20	belong		108		(OpenBSD loopback
->20	belong		109		(OpenBSD IPsec encrypted
->20	belong		112		(Cisco HDLC
->20	belong		113		(Linux "cooked"
->20	belong		114		(LocalTalk
->20	belong		117		(OpenBSD PFLOG
->20	belong		119		(802.11 with Prism header
->20	belong		122		(RFC 2625 IP over Fibre Channel
->20	belong		123		(SunATM
->20	belong		127		(802.11 with radiotap header
->20	belong		129		(Linux ARCNET
->20	belong		138		(Apple IP over IEEE 1394
->20	belong		140		(MTP2
->20	belong		141		(MTP3
->20	belong		143		(DOCSIS
->20	belong		144		(IrDA
->20	belong		147		(Private use 0
->20	belong		148		(Private use 1
->20	belong		149		(Private use 2
->20	belong		150		(Private use 3
->20	belong		151		(Private use 4
->20	belong		152		(Private use 5
->20	belong		153		(Private use 6
->20	belong		154		(Private use 7
->20	belong		155		(Private use 8
->20	belong		156		(Private use 9
->20	belong		157		(Private use 10
->20	belong		158		(Private use 11
->20	belong		159		(Private use 12
->20	belong		160		(Private use 13
->20	belong		161		(Private use 14
->20	belong		162		(Private use 15
->20	belong		163		(802.11 with AVS header
->16	belong		x		\b, capture length %d)
-0	ulelong		0xa1b2c3d4	tcpdump capture file (little-endian)
->4	leshort		x		- version %d
->6	leshort		x		\b.%d
->20	lelong		0		(No link-layer encapsulation
->20	lelong		1		(Ethernet
->20	lelong		2		(3Mb Ethernet
->20	lelong		3		(AX.25
->20	lelong		4		(ProNET
->20	lelong		5		(CHAOS
->20	lelong		6		(Token Ring
->20	lelong		7		(ARCNET
->20	lelong		8		(SLIP
->20	lelong		9		(PPP
->20	lelong		10		(FDDI
->20	lelong		11		(RFC 1483 ATM
->20	lelong		12		(raw IP
->20	lelong		13		(BSD/OS SLIP
->20	lelong		14		(BSD/OS PPP
->20	lelong		19		(Linux ATM Classical IP
->20	lelong		50		(PPP or Cisco HDLC
->20	lelong		51		(PPP-over-Ethernet
->20	lelong		99		(Symantec Enterprise Firewall
->20	lelong		100		(RFC 1483 ATM
->20	lelong		101		(raw IP
->20	lelong		102		(BSD/OS SLIP
->20	lelong		103		(BSD/OS PPP
->20	lelong		104		(BSD/OS Cisco HDLC
->20	lelong		105		(802.11
->20	lelong		106		(Linux Classical IP over ATM
->20	lelong		107		(Frame Relay
->20	lelong		108		(OpenBSD loopback
->20	lelong		109		(OpenBSD IPsec encrypted
->20	lelong		112		(Cisco HDLC
->20	lelong		113		(Linux "cooked"
->20	lelong		114		(LocalTalk
->20	lelong		117		(OpenBSD PFLOG
->20	lelong		119		(802.11 with Prism header
->20	lelong		122		(RFC 2625 IP over Fibre Channel
->20	lelong		123		(SunATM
->20	lelong		127		(802.11 with radiotap header
->20	lelong		129		(Linux ARCNET
->20	lelong		138		(Apple IP over IEEE 1394
->20	lelong		140		(MTP2
->20	lelong		141		(MTP3
->20	lelong		143		(DOCSIS
->20	lelong		144		(IrDA
->20	lelong		147		(Private use 0
->20	lelong		148		(Private use 1
->20	lelong		149		(Private use 2
->20	lelong		150		(Private use 3
->20	lelong		151		(Private use 4
->20	lelong		152		(Private use 5
->20	lelong		153		(Private use 6
->20	lelong		154		(Private use 7
->20	lelong		155		(Private use 8
->20	lelong		156		(Private use 9
->20	lelong		157		(Private use 10
->20	lelong		158		(Private use 11
->20	lelong		159		(Private use 12
->20	lelong		160		(Private use 13
->20	lelong		161		(Private use 14
->20	lelong		162		(Private use 15
->20	lelong		163		(802.11 with AVS header
->16	lelong		x		\b, capture length %d)
-
-#
-# "libpcap"-with-Alexey-Kuznetsov's-patches capture files.
-# (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
-# the main program that uses that format, but there are other programs
-# that use "libpcap", or that use the same capture file format.)
-#
-0	ubelong		0xa1b2cd34	extended tcpdump capture file (big-endian)
->4	beshort		x		- version %d
->6	beshort		x		\b.%d
->20	belong		0		(No link-layer encapsulation
->20	belong		1		(Ethernet
->20	belong		2		(3Mb Ethernet
->20	belong		3		(AX.25
->20	belong		4		(ProNET
->20	belong		5		(CHAOS
->20	belong		6		(Token Ring
->20	belong		7		(ARCNET
->20	belong		8		(SLIP
->20	belong		9		(PPP
->20	belong		10		(FDDI
->20	belong		11		(RFC 1483 ATM
->20	belong		12		(raw IP
->20	belong		13		(BSD/OS SLIP
->20	belong		14		(BSD/OS PPP
->16	belong		x		\b, capture length %d)
-0	ulelong		0xa1b2cd34	extended tcpdump capture file (little-endian)
->4	leshort		x		- version %d
->6	leshort		x		\b.%d
->20	lelong		0		(No link-layer encapsulation
->20	lelong		1		(Ethernet
->20	lelong		2		(3Mb Ethernet
->20	lelong		3		(AX.25
->20	lelong		4		(ProNET
->20	lelong		5		(CHAOS
->20	lelong		6		(Token Ring
->20	lelong		7		(ARCNET
->20	lelong		8		(SLIP
->20	lelong		9		(PPP
->20	lelong		10		(FDDI
->20	lelong		11		(RFC 1483 ATM
->20	lelong		12		(raw IP
->20	lelong		13		(BSD/OS SLIP
->20	lelong		14		(BSD/OS PPP
->16	lelong		x		\b, capture length %d)
-
-#
-# AIX "iptrace" capture files.
-#
-0	string		iptrace\ 1.0	"iptrace" capture file
-0	string		iptrace\ 2.0	"iptrace" capture file
-
-#
-# Novell LANalyzer capture files.
-#
-0	leshort		0x1001		LANalyzer capture file
-0	leshort		0x1007		LANalyzer capture file
-
-#
-# HP-UX "nettl" capture files.
-#
-0	string		\x54\x52\x00\x64\x00	"nettl" capture file
-
-#
-# RADCOM WAN/LAN Analyzer capture files.
-#
-0	string		\x42\xd2\x00\x34\x12\x66\x22\x88	RADCOM WAN/LAN Analyzer capture file
-
-#
-# NetStumbler log files.  Not really packets, per se, but about as
-# close as you can get.  These are log files from NetStumbler, a
-# Windows program, that scans for 802.11b networks.
-#
-0	string		NetS		NetStumbler log file
->8	lelong		x		\b, %d stations found
-
-#
-# EtherPeek/AiroPeek "version 9" capture files.
-#
-0	string		\177ver		EtherPeek/AiroPeek capture file
-
-#
-# Visual Networks traffic capture files.
-#
-0	string		\x05VNF		Visual Networks traffic capture file
-
-#
-# Network Instruments Observer capture files.
-#
-0	string		ObserverPktBuffe	Network Instruments Observer capture file
-
-#
-# Files from Accellent Group's 5View products.
-#
-0	string		\xaa\xaa\xaa\xaa	5View capture file
-#------------------------------------------------------------------------------
-# softquad:  file(1) magic for SoftQuad Publishing Software
-#
-# Author/Editor and RulesBuilder
-#
-# XXX - byte order?
-#
-0	string		\<!SQ\ DTD>	Compiled SGML rules file
->9	string		>\0		 Type %s
-0	string		\<!SQ\ A/E>	A/E SGML Document binary
->9	string		>\0		 Type %s
-0	string		\<!SQ\ STS>	A/E SGML binary styles file
->9	string		>\0		 Type %s
-0	short		0xc0de		Compiled PSI (v1) data
-0	short		0xc0da		Compiled PSI (v2) data
->3	string		>\0		(%s)
-# Binary sqtroff font/desc files...
-0	short		0125252		SoftQuad DESC or font file binary
->2	short		>0		- version %d
-# Bitmaps...
-0	search/1	SQ\ BITMAP1	SoftQuad Raster Format text
-#0	string		SQ\ BITMAP2	SoftQuad Raster Format data
-# sqtroff intermediate language (replacement for ditroff int. lang.)
-0	string		X\ 		SoftQuad troff Context intermediate
->2	string		495		for AT&T 495 laser printer
->2	string		hp		for Hewlett-Packard LaserJet
->2	string		impr		for IMAGEN imPRESS
->2	string		ps		for PostScript
-
-# From: Michael Piefel <piefel@debian.org>
-# sqtroff intermediate language (replacement for ditroff int. lang.)
-0	string		X\ 495		SoftQuad troff Context intermediate for AT&T 495 laser printer
-0	string		X\ hp		SoftQuad troff Context intermediate for HP LaserJet
-0	string		X\ impr		SoftQuad troff Context intermediate for IMAGEN imPRESS
-0	string		X\ ps		SoftQuad troff Context intermediate for PostScript
-
-#------------------------------------------------------------------------------
-# spec:  file(1) magic for SPEC raw results (*.raw, *.rsf)
-#
-# Cloyce D. Spradling <cloyce@headgear.org>
-
-0	string	spec			SPEC
->4	string	.cpu			CPU
->>8	string	<:			\b%.4s
->>12	string	.			raw result text
-
-17	string	version=SPECjbb		SPECjbb
->32	string	<:			\b%.4s
->>37	string	<:			v%.4s raw result text
-
-0	string	BEGIN\040SPECWEB	SPECweb
->13	string	<:			\b%.2s
->>15	string	_SSL			\b_SSL
->>>20	string	<:			v%.4s raw result text
->>16	string	<:			v%.4s raw result text
-
-#------------------------------------------------------------------------------
-# spectrum:  file(1) magic for Spectrum emulator files.
-#
-# John Elliott <jce@seasip.demon.co.uk>
-
-#
-# Spectrum +3DOS header
-#
-0       string          PLUS3DOS\032    Spectrum +3 data
->15     byte            0               - BASIC program
->15     byte            1               - number array
->15     byte            2               - character array
->15     byte            3               - memory block
->>16    belong          0x001B0040      (screen)
->15     byte            4               - Tasword document
->15     string          TAPEFILE        - ZXT tapefile
-#
-# Tape file. This assumes the .TAP starts with a Spectrum-format header,
-# which nearly all will.
-#
-# Update: Sanity-check string contents to be printable.
-#  -Adam Buchbinder <adam.buchbinder@gmail.com>
-#
-0       string          \023\000\000
->4      string          >\0
->>4     string          <\177           Spectrum .TAP data "%-10.10s"
->>>3    byte            0               - BASIC program
->>>3    byte            1               - number array
->>>3    byte            2               - character array
->>>3    byte            3               - memory block
->>>>14  belong          0x001B0040      (screen)
-
-# The following three blocks are from pak21-spectrum@srcf.ucam.org
-# TZX tape images
-0      string          ZXTape!\x1a     Spectrum .TZX data
->8     byte            x               version %d
->9     byte            x               \b.%d
-
-# RZX input recording files
-0      string          RZX!            Spectrum .RZX data
->4     byte            x               version %d
->5     byte            x               \b.%d
-
-# Floppy disk images
-0      string          MV\ -\ CPCEMU\ Disk-Fil Amstrad/Spectrum .DSK data
-0      string          MV\ -\ CPC\ format\ Dis Amstrad/Spectrum DU54 .DSK data
-0      string          EXTENDED\ CPC\ DSK\ Fil Amstrad/Spectrum Extended .DSK data
-0      string          SINCLAIR        Spectrum .SCL Betadisk image
-
-# Hard disk images
-0      string          RS-IDE\x1a      Spectrum .HDF hard disk image
->7     byte            x               \b, version 0x%02x
-
-#------------------------------------------------------------------------------
-# sql:  file(1) magic for SQL files
-#
-# From: "Marty Leisner" <mleisner@eng.mc.xerox.com>
-# Recognize some MySQL files.
-#
-0	beshort			0xfe01		MySQL table definition file
->2	byte			x		Version %d
-0	belong&0xffffff00	0xfefe0300	MySQL MISAM index file
->3	byte			x		Version %d
-0	belong&0xffffff00	0xfefe0700	MySQL MISAM compressed data file
->3	byte			x		Version %d
-0	belong&0xffffff00	0xfefe0500	MySQL ISAM index file
->3	byte			x		Version %d
-0	belong&0xffffff00	0xfefe0600	MySQL ISAM compressed data file
->3	byte			x		Version %d
-0	string		 	\376bin		MySQL replication log
-
-#------------------------------------------------------------------------------
-# iRiver H Series database file 
-# From Ken Guest <ken@linux.ie>
-# As observed from iRivNavi.iDB and unencoded firmware
-#
-0   string		iRivDB	iRiver Database file
->11  string	>\0	Version %s
->39  string		iHP-100	[H Series]
-
-#------------------------------------------------------------------------------
-# SQLite database files
-# Ken Guest <ken@linux.ie>, Ty Sarna, Zack Weinberg
-#
-# Version 1 used GDBM internally; its files cannot be distinguished
-# from other GDBM files.
-#
-# Version 2 used this format:
-0	string	**\ This\ file\ contains\ an\ SQLite  SQLite 2.x database
-
-# Version 3 of SQLite allows applications to embed their own "user version"
-# number in the database.  Detect this and distinguish those files.
-
-0   string  SQLite\ format\ 3
->60 string  _MTN               Monotone source repository
->60 belong  !0                 SQLite 3.x database, user version %u
->60 belong  0                  SQLite 3.x database
-# Type:	OpenSSH key files
-# From:	Nicolas Collignon <tsointsoin@gmail.com>
-
-0	string	SSH\ PRIVATE\ KEY	OpenSSH RSA1 private key,
->28	string	>\0			version %s
-
-0	string	ssh-dss\		OpenSSH DSA public key
-0	string	ssh-rsa\		OpenSSH RSA public key
-# Type: OpenSSL certificates/key files
-# From: Nicolas Collignon <tsointsoin@gmail.com>
-
-0	string	-----BEGIN\ CERTIFICATE-----	PEM certificate
-0	string	-----BEGIN\ CERTIFICATE\ REQ	PEM certificate request
-0	string	-----BEGIN\ RSA\ PRIVATE	PEM RSA private key
-0	string	-----BEGIN\ DSA\ PRIVATE	PEM DSA private key
-
-#------------------------------------------------------------------------------
-# sun:  file(1) magic for Sun machines
-#
-# Values for big-endian Sun (MC680x0, SPARC) binaries on pre-5.x
-# releases.  (5.x uses ELF.)
-#
-0	belong&077777777	0600413		sparc demand paged
->0	byte		&0x80
->>20	belong		<4096		shared library
->>20	belong		=4096		dynamically linked executable
->>20	belong		>4096		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0600410		sparc pure
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0600407		sparc
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0400413		mc68020 demand paged
->0	byte		&0x80
->>20	belong		<4096		shared library
->>20	belong		=4096		dynamically linked executable
->>20	belong		>4096		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0400410		mc68020 pure
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0400407		mc68020
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0200413		mc68010 demand paged
->0	byte		&0x80
->>20	belong		<4096		shared library
->>20	belong		=4096		dynamically linked executable
->>20	belong		>4096		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0200410		mc68010 pure
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-0	belong&077777777	0200407		mc68010
->0	byte		&0x80		dynamically linked executable
->0	byte		^0x80		executable
->16	belong		>0		not stripped
-
-# reworked these to avoid anything beginning with zero becoming "old sun-2"
-0	belong		0407		old sun-2 executable
->16	belong		>0		not stripped
-0	belong		0410		old sun-2 pure executable
->16	belong		>0		not stripped
-0	belong		0413		old sun-2 demand paged executable
->16	belong		>0		not stripped
-
-#
-# Core files.  "SPARC 4.x BCP" means "core file from a SunOS 4.x SPARC
-# binary executed in compatibility mode under SunOS 5.x".
-#
-0	belong		0x080456	SunOS core file
->4	belong		432		(SPARC)
->>132	string		>\0		from '%s'
->>116	belong		=3		(quit)
->>116	belong		=4		(illegal instruction)
->>116	belong		=5		(trace trap)
->>116	belong		=6		(abort)
->>116	belong		=7		(emulator trap)
->>116	belong		=8		(arithmetic exception)
->>116	belong		=9		(kill)
->>116	belong		=10		(bus error)
->>116	belong		=11		(segmentation violation)
->>116	belong		=12		(bad argument to system call)
->>116	belong		=29		(resource lost)
->>120	belong		x		(T=%dK,
->>124	belong		x		D=%dK,
->>128	belong		x		S=%dK)
->4	belong		826		(68K)
->>128	string		>\0		from '%s'
->4	belong		456		(SPARC 4.x BCP)
->>152	string		>\0		from '%s'
-# Sun SunPC
-0	long		0xfa33c08e	SunPC 4.0 Hard Disk
-0	string		#SUNPC_CONFIG	SunPC 4.0 Properties Values
-# Sun snoop (see RFC 1761, which describes the capture file format).
-#
-0	string		snoop		Snoop capture file
->8	belong		>0		- version %ld
->12	belong		0		(IEEE 802.3)
->12	belong		1		(IEEE 802.4)
->12	belong		2		(IEEE 802.5)
->12	belong		3		(IEEE 802.6)
->12	belong		4		(Ethernet)
->12	belong		5		(HDLC)
->12	belong		6		(Character synchronous)
->12	belong		7		(IBM channel-to-channel adapter)
->12	belong		8		(FDDI)
->12	belong		9		(Unknown)
-
-# Microsoft ICM color profile
-36	string		acspMSFT	Microsoft ICM Color Profile
-# Sun KCMS
-36	string		acsp		Kodak Color Management System, ICC Profile
-
-#---------------------------------------------------------------------------
-# The following entries have been tested by Duncan Laurie <duncan@sun.com> (a
-# lead Sun/Cobalt developer) who agrees that they are good and worthy of
-# inclusion.
-
-# Boot ROM images for Sun/Cobalt Linux server appliances
-0       string  Cobalt\ Networks\ Inc.\nFirmware\ v     Paged COBALT boot rom
->38     string x        V%.4s
-
-# New format for Sun/Cobalt boot ROMs is annoying, it stores the version code
-# at the very end where file(1) can't get it.
-0       string CRfs     COBALT boot rom data (Flat boot rom or file system)
-
-
-#------------------------------------------------------------------------
-# sysex: file(1) magic for MIDI sysex files
-#
-# 
-0	byte			0xF0		SysEx File -
-
-# North American Group
->1	byte			0x01		Sequential
->1	byte			0x02		IDP
->1	byte			0x03		OctavePlateau
->1	byte			0x04		Moog
->1	byte			0x05		Passport
->1	byte			0x06		Lexicon
->1	byte			0x07		Kurzweil/Future Retro
->>3	byte			0x77		777
->>4	byte			0x00		Bank
->>4	byte			0x01		Song
->>5	byte			0x0f		16
->>5	byte			0x0e		15
->>5	byte			0x0d		14
->>5	byte			0x0c		13
->>5	byte			0x0b		12
->>5	byte			0x0a		11
->>5	byte			0x09		10
->>5	byte			0x08		9
->>5	byte			0x07		8
->>5	byte			0x06		7
->>5	byte			0x05		6
->>5	byte			0x04		5
->>5	byte			0x03		4
->>5	byte			0x02		3
->>5	byte			0x01		2
->>5	byte			0x00		1
->>5	byte			0x10		(ALL)
->>2	byte			x			\b, Channel %d
->1	byte			0x08		Fender
->1	byte			0x09		Gulbransen
->1	byte			0x0a		AKG
->1	byte			0x0b		Voyce
->1	byte			0x0c		Waveframe
->1	byte			0x0d		ADA
->1	byte			0x0e		Garfield
->1	byte			0x0f		Ensoniq
->1	byte			0x10		Oberheim
->>2	byte			0x06		Matrix 6 series
->>3	byte			0x0A		Dump (All)
->>3	byte			0x01		Dump (Bank)
->>4 belong			0x0002040E		Matrix 1000
->>>11 byte			<2			User bank %d
->>>11 byte			>1			Preset bank %d
->1	byte			0x11		Apple
->1	byte			0x12		GreyMatter
->1	byte			0x14		PalmTree
->1	byte			0x15		JLCooper
->1	byte			0x16		Lowrey
->1	byte			0x17		AdamsSmith
->1	byte			0x18		E-mu
->1	byte			0x19		Harmony
->1	byte			0x1a		ART
->1	byte			0x1b		Baldwin
->1	byte			0x1c		Eventide
->1	byte			0x1d		Inventronics
->1	byte			0x1f		Clarity
-
-# European Group
->1	byte			0x21		SIEL
->1	byte			0x22		Synthaxe
->1	byte			0x24		Hohner
->1	byte			0x25		Twister
->1	byte			0x26		Solton
->1	byte			0x27		Jellinghaus
->1	byte			0x28		Southworth
->1	byte			0x29		PPG
->1	byte			0x2a		JEN
->1	byte			0x2b		SSL
->1	byte			0x2c		AudioVertrieb
-
->1	byte			0x2f		ELKA
->>3	byte			0x09		EK-44
-
->1	byte			0x30		Dynacord
->1	byte			0x31		Jomox
->1	byte			0x33		Clavia
->1	byte			0x39		Soundcraft
-# Some Waldorf info from http://Stromeko.Synth.net/Downloads#WaldorfDocs
->1	byte			0x3e		Waldorf
->>2	byte			0x00		microWave
->>2	byte			0x0E		microwave2 / XT
->>2	byte			0x0F		Q / Q+
->>3	byte			=0			(default id)
->>3 byte			>0			(
->>>3 byte			<0x7F		\bdevice %d)
->>>3 byte			=0x7F		\bbroadcast id)
->>3	byte			0x7f		Microwave I
->>>4	byte			0x00		SNDR (Sound Request)
->>>4	byte			0x10		SNDD (Sound Dump)
->>>4	byte			0x20		SNDP (Sound Parameter Change)
->>>4	byte			0x30		SNDQ (Sound Parameter Inquiry)
->>>4	byte			0x70		BOOT (Sound Reserved)
->>>4	byte			0x01		MULR (Multi Request)
->>>4	byte			0x11		MULD (Multi Dump)
->>>4	byte			0x21		MULP (Multi Parameter Change)
->>>4	byte			0x31		MULQ (Multi Parameter Inquiry)
->>>4	byte			0x71		OS (Multi Reserved)
->>>4	byte			0x02		DRMR (Drum Map Request)
->>>4	byte			0x12		DRMD (Drum Map Dump)
->>>4	byte			0x22		DRMP (Drum Map Parameter Change)
->>>4	byte			0x32		DRMQ (Drum Map Parameter Inquiry)
->>>4	byte			0x72		BIN (Drum Map Reserved)
->>>4	byte			0x03		PATR (Sequencer Pattern Request)
->>>4	byte			0x13		PATD (Sequencer Pattern Dump)
->>>4	byte			0x23		PATP (Sequencer Pattern Parameter Change)
->>>4	byte			0x33		PATQ (Sequencer Pattern Parameter Inquiry)
->>>4	byte			0x73		AFM (Sequencer Pattern Reserved)
->>>4	byte			0x04		GLBR (Global Parameter Request)
->>>4	byte			0x14		GLBD (Global Parameter Dump)
->>>4	byte			0x24		GLBP (Global Parameter Parameter Change)
->>>4	byte			0x34		GLBQ (Global Parameter Parameter Inquiry)
->>>4	byte			0x07		MODR (Mode Parameter Request)
->>>4	byte			0x17		MODD (Mode Parameter Dump)
->>>4	byte			0x27		MODP (Mode Parameter Parameter Change)
->>>4	byte			0x37		MODQ (Mode Parameter Parameter Inquiry)
->>2	byte			0x10		microQ
->>>4	byte			0x00		SNDR (Sound Request)
->>>4	byte			0x10		SNDD (Sound Dump)
->>>4	byte			0x20		SNDP (Sound Parameter Change)
->>>4	byte			0x30		SNDQ (Sound Parameter Inquiry)
->>>4	byte			0x70		(Sound Reserved)
->>>4	byte			0x01		MULR (Multi Request)
->>>4	byte			0x11		MULD (Multi Dump)
->>>4	byte			0x21		MULP (Multi Parameter Change)
->>>4	byte			0x31		MULQ (Multi Parameter Inquiry)
->>>4	byte			0x71		OS (Multi Reserved)
->>>4	byte			0x02		DRMR (Drum Map Request)
->>>4	byte			0x12		DRMD (Drum Map Dump)
->>>4	byte			0x22		DRMP (Drum Map Parameter Change)
->>>4	byte			0x32		DRMQ (Drum Map Parameter Inquiry)
->>>4	byte			0x72		BIN (Drum Map Reserved)
->>>4	byte			0x04		GLBR (Global Parameter Request)
->>>4	byte			0x14		GLBD (Global Parameter Dump)
->>>4	byte			0x24		GLBP (Global Parameter Parameter Change)
->>>4	byte			0x34		GLBQ (Global Parameter Parameter Inquiry)
->>2	byte			0x11		rackAttack
->>>4	byte			0x00		SNDR (Sound Parameter Request)
->>>4	byte			0x10		SNDD (Sound Parameter Dump)
->>>4	byte			0x20		SNDP (Sound Parameter Parameter Change)
->>>4	byte			0x30		SNDQ (Sound Parameter Parameter Inquiry)
->>>4	byte			0x01		PRGR (Program Parameter Request)
->>>4	byte			0x11		PRGD (Program Parameter Dump)
->>>4	byte			0x21		PRGP (Program Parameter Parameter Change)
->>>4	byte			0x31		PRGQ (Program Parameter Parameter Inquiry)
->>>4	byte			0x71		OS (Program Parameter Reserved)
->>>4	byte			0x03		PATR (Pattern Parameter Request)
->>>4	byte			0x13		PATD (Pattern Parameter Dump)
->>>4	byte			0x23		PATP (Pattern Parameter Parameter Change)
->>>4	byte			0x33		PATQ (Pattern Parameter Parameter Inquiry)
->>>4	byte			0x04		GLBR (Global Parameter Request)
->>>4	byte			0x14		GLBD (Global Parameter Dump)
->>>4	byte			0x24		GLBP (Global Parameter Parameter Change)
->>>4	byte			0x34		GLBQ (Global Parameter Parameter Inquiry)
->>>4	byte			0x05		EFXR (FX Parameter Request)
->>>4	byte			0x15		EFXD (FX Parameter Dump)
->>>4	byte			0x25		EFXP (FX Parameter Parameter Change)
->>>4	byte			0x35		EFXQ (FX Parameter Parameter Inquiry)
->>>4	byte			0x07		MODR (Mode Command Request)
->>>4	byte			0x17		MODD (Mode Command Dump)
->>>4	byte			0x27		MODP (Mode Command Parameter Change)
->>>4	byte			0x37		MODQ (Mode Command Parameter Inquiry)
->>2	byte			0x03		Wave
->>>4	byte			0x00		SBPR (Soundprogram)
->>>4	byte			0x01		SAPR (Performance)
->>>4	byte			0x02		SWAVE (Wave)
->>>4	byte			0x03		SWTBL (Wave control table)
->>>4	byte			0x04		SVT (Velocity Curve)
->>>4	byte			0x05		STT (Tuning Table)
->>>4	byte			0x06		SGLB (Global Parameters)
->>>4	byte			0x07		SARRMAP (Performance Program Change Map)
->>>4	byte			0x08		SBPRMAP (Sound Program Change Map)
->>>4	byte			0x09		SBPRPAR (Sound Parameter)
->>>4	byte			0x0A		SARRPAR (Performance Parameter)
->>>4	byte			0x0B		SINSPAR (Instrument/External Parameter)
->>>4	byte			0x0F		SBULK (Bulk Switch on/off)
-
-# Japanese Group
->1	byte			0x40		Kawai
->>3	byte			0x20		K1
->>3	byte			0x22		K4
-
->1	byte			0x41		Roland
->>3	byte			0x14		D-50
->>3	byte			0x2b		U-220
->>3	byte			0x02		TR-707
-
->1	byte			0x42		Korg
->>3	byte			0x19		M1
-
->1	byte			0x43		Yamaha
->1	byte			0x44		Casio
->1	byte			0x46		Kamiya
->1	byte			0x47		Akai
->1	byte			0x48		Victor
->1	byte			0x49		Mesosha
->1	byte			0x4b		Fujitsu
->1	byte			0x4c		Sony
->1	byte			0x4e		Teac
->1	byte			0x50		Matsushita
->1	byte			0x51		Fostex
->1	byte			0x52		Zoom
->1	byte			0x54		Matsushita
->1	byte			0x57		Acoustic tech. lab.
-
->1	belong&0xffffff00	0x00007400	Ta Horng
->1	belong&0xffffff00	0x00007500	e-Tek
->1	belong&0xffffff00	0x00007600	E-Voice
->1	belong&0xffffff00	0x00007700	Midisoft
->1	belong&0xffffff00	0x00007800	Q-Sound
->1	belong&0xffffff00	0x00007900	Westrex
->1	belong&0xffffff00	0x00007a00	Nvidia*
->1	belong&0xffffff00	0x00007b00	ESS
->1	belong&0xffffff00	0x00007c00	Mediatrix
->1	belong&0xffffff00	0x00007d00	Brooktree
->1	belong&0xffffff00	0x00007e00	Otari
->1	belong&0xffffff00	0x00007f00	Key Electronics
->1	belong&0xffffff00	0x00010000	Shure
->1	belong&0xffffff00	0x00010100	AuraSound
->1	belong&0xffffff00	0x00010200	Crystal
->1	belong&0xffffff00	0x00010300	Rockwell
->1	belong&0xffffff00	0x00010400	Silicon Graphics
->1	belong&0xffffff00	0x00010500	Midiman
->1	belong&0xffffff00	0x00010600	PreSonus
->1	belong&0xffffff00	0x00010800	Topaz
->1	belong&0xffffff00	0x00010900	Cast Lightning
->1	belong&0xffffff00	0x00010a00	Microsoft
->1	belong&0xffffff00	0x00010b00	Sonic Foundry
->1	belong&0xffffff00	0x00010c00	Line 6
->1	belong&0xffffff00	0x00010d00	Beatnik Inc.
->1	belong&0xffffff00	0x00010e00	Van Koerving
->1	belong&0xffffff00	0x00010f00	Altech Systems
->1	belong&0xffffff00	0x00011000	S & S Research
->1	belong&0xffffff00	0x00011100	VLSI Technology
->1	belong&0xffffff00	0x00011200	Chromatic
->1	belong&0xffffff00	0x00011300	Sapphire
->1	belong&0xffffff00	0x00011400	IDRC
->1	belong&0xffffff00	0x00011500	Justonic Tuning
->1	belong&0xffffff00	0x00011600	TorComp
->1	belong&0xffffff00	0x00011700	Newtek Inc.
->1	belong&0xffffff00	0x00011800	Sound Sculpture
->1	belong&0xffffff00	0x00011900	Walker Technical
->1	belong&0xffffff00	0x00011a00	Digital Harmony
->1	belong&0xffffff00	0x00011b00	InVision
->1	belong&0xffffff00	0x00011c00	T-Square
->1	belong&0xffffff00	0x00011d00	Nemesys
->1	belong&0xffffff00	0x00011e00	DBX
->1	belong&0xffffff00	0x00011f00	Syndyne
->1	belong&0xffffff00	0x00012000	Bitheadz	
->1	belong&0xffffff00	0x00012100	Cakewalk
->1	belong&0xffffff00	0x00012200	Staccato
->1	belong&0xffffff00	0x00012300	National Semicon.
->1	belong&0xffffff00	0x00012400	Boom Theory
->1	belong&0xffffff00	0x00012500	Virtual DSP Corp
->1	belong&0xffffff00	0x00012600	Antares
->1	belong&0xffffff00	0x00012700	Angel Software
->1	belong&0xffffff00	0x00012800	St Louis Music
->1	belong&0xffffff00	0x00012900	Lyrrus dba G-VOX
->1	belong&0xffffff00	0x00012a00	Ashley Audio
->1	belong&0xffffff00	0x00012b00	Vari-Lite
->1	belong&0xffffff00	0x00012c00	Summit Audio
->1	belong&0xffffff00	0x00012d00	Aureal Semicon.
->1	belong&0xffffff00	0x00012e00	SeaSound
->1	belong&0xffffff00	0x00012f00	U.S. Robotics
->1	belong&0xffffff00	0x00013000	Aurisis
->1	belong&0xffffff00	0x00013100	Nearfield Multimedia
->1	belong&0xffffff00	0x00013200	FM7 Inc.
->1	belong&0xffffff00	0x00013300	Swivel Systems
->1	belong&0xffffff00	0x00013400	Hyperactive
->1	belong&0xffffff00	0x00013500	MidiLite
->1	belong&0xffffff00	0x00013600	Radical
->1	belong&0xffffff00	0x00013700	Roger Linn
->1	belong&0xffffff00	0x00013800	Helicon
->1	belong&0xffffff00	0x00013900	Event
->1	belong&0xffffff00	0x00013a00	Sonic Network
->1	belong&0xffffff00	0x00013b00	Realtime Music
->1	belong&0xffffff00	0x00013c00	Apogee Digital
-
->1	belong&0xffffff00	0x00202b00	Medeli Electronics
->1	belong&0xffffff00	0x00202c00	Charlie Lab
->1	belong&0xffffff00	0x00202d00	Blue Chip Music
->1	belong&0xffffff00	0x00202e00	BEE OH Corp
->1	belong&0xffffff00	0x00202f00	LG Semicon America
->1	belong&0xffffff00	0x00203000	TESI
->1	belong&0xffffff00	0x00203100	EMAGIC
->1	belong&0xffffff00	0x00203200	Behringer
->1	belong&0xffffff00	0x00203300	Access Music
->1	belong&0xffffff00	0x00203400	Synoptic
->1	belong&0xffffff00	0x00203500	Hanmesoft Corp
->1	belong&0xffffff00	0x00203600	Terratec
->1	belong&0xffffff00	0x00203700	Proel SpA
->1	belong&0xffffff00	0x00203800	IBK MIDI
->1	belong&0xffffff00	0x00203900	IRCAM
->1	belong&0xffffff00	0x00203a00	Propellerhead Software
->1	belong&0xffffff00	0x00203b00	Red Sound Systems
->1	belong&0xffffff00	0x00203c00	Electron ESI AB
->1	belong&0xffffff00	0x00203d00	Sintefex Audio
->1	belong&0xffffff00	0x00203e00	Music and More
->1	belong&0xffffff00	0x00203f00	Amsaro
->1	belong&0xffffff00	0x00204000	CDS Advanced Technology
->1	belong&0xffffff00	0x00204100	Touched by Sound
->1	belong&0xffffff00	0x00204200	DSP Arts
->1	belong&0xffffff00	0x00204300	Phil Rees Music
->1	belong&0xffffff00	0x00204400	Stamer Musikanlagen GmbH
->1	belong&0xffffff00	0x00204500	Soundart
->1	belong&0xffffff00	0x00204600	C-Mexx Software
->1	belong&0xffffff00	0x00204700	Klavis Tech.
->1	belong&0xffffff00	0x00204800	Noteheads AB
-
-0	string			T707		Roland TR-707 Data
-#------------------------------------------------------------------------------
-# teapot:  file(1) magic for "teapot" spreadsheet
-#
-0       string          #!teapot\012xdr      teapot work sheet (XDR format)
-
-#------------------------------------------------------------------------------
-# terminfo:  file(1) magic for terminfo
-#
-# XXX - byte order for screen images?
-#
-0	string		\032\001	Compiled terminfo entry
-0	short		0433		Curses screen image
-0	short		0434		Curses screen image
-#------------------------------------------------------------------------------
-# tex:  file(1) magic for TeX files
-#
-# XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
-#
-# From <conklin@talisman.kaleida.com>
-
-# Although we may know the offset of certain text fields in TeX DVI
-# and font files, we can't use them reliably because they are not
-# zero terminated. [but we do anyway, christos]
-0	string		\367\002	TeX DVI file
-!:mime	application/x-dvi
->16	string		>\0		(%s)
-0	string		\367\203	TeX generic font data
-0	string		\367\131	TeX packed font data
->3	string		>\0		(%s)
-0	string		\367\312	TeX virtual font data
-0	search/1	This\ is\ TeX,	TeX transcript text
-0	search/1	This\ is\ METAFONT,	METAFONT transcript text
-
-# There is no way to detect TeX Font Metric (*.tfm) files without
-# breaking them apart and reading the data.  The following patterns
-# match most *.tfm files generated by METAFONT or afm2tfm.
-2	string		\000\021	TeX font metric data
-!:mime	application/x-tex-tfm
->33	string		>\0		(%s)
-2	string		\000\022	TeX font metric data
-!:mime	application/x-tex-tfm
->33	string		>\0		(%s)
-
-# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	search/1	\\input\ texinfo	Texinfo source text
-!:mime	text/x-texinfo
-0	search/1	This\ is\ Info\ file	GNU Info text
-!:mime	text/x-info
-
-# TeX documents, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	search/400	\\input		TeX document text
-!:mime	text/x-tex
-0	search/400	\\section	LaTeX document text
-!:mime	text/x-tex
-0	search/400	\\setlength	LaTeX document text
-!:mime	text/x-tex
-0	search/400	\\documentstyle	LaTeX document text
-!:mime	text/x-tex
-0	search/400	\\chapter	LaTeX document text
-!:mime	text/x-tex
-0	search/400	\\documentclass	LaTeX 2e document text
-!:mime	text/x-tex
-0	search/400	\\relax		LaTeX auxiliary file
-!:mime	text/x-tex
-0	search/400	\\contentsline	LaTeX table of contents
-!:mime	text/x-tex
-0	search/400	%\ -*-latex-*-	LaTeX document text
-!:mime	text/x-tex
-
-# Tex document, from Hendrik Scholz <hendrik@scholz.net>
-0   	search/1	\\ifx		TeX document text
-
-# Index and glossary files
-0	search/400	\\indexentry	LaTeX raw index file
-0	search/400	\\begin{theindex}	LaTeX sorted index
-0	search/400	\\glossaryentry	LaTeX raw glossary
-0	search/400	\\begin{theglossary}	LaTeX sorted glossary
-0	search/400	This\ is\ makeindex	Makeindex log file
-
-# End of TeX
-
-#------------------------------------------------------------------------------
-# file(1) magic for BibTex text files
-# From Hendrik Scholz <hendrik@scholz.net>
-
-0	search/1/c	@article{	BibTeX text file
-0	search/1/c	@book{		BibTeX text file
-0	search/1/c	@inbook{	BibTeX text file
-0	search/1/c	@incollection{	BibTeX text file
-0	search/1/c	@inproceedings{	BibTeX text file
-0	search/1/c	@manual{	BibTeX text file
-0	search/1/c	@misc{		BibTeX text file
-0	search/1/c	@preamble{	BibTeX text file
-0	search/1/c	@phdthesis{	BibTeX text file
-0	search/1/c	@techreport{	BibTeX text file
-0	search/1/c	@unpublished{	BibTeX text file
-
-73	search/1	%%%\ \ 		BibTeX-file{ BibTex text file (with full header)
-
-73	search/1	%%%\ \ @BibTeX-style-file{   BibTeX style text file (with full header)
-
-0	search/1	%\ BibTeX\ standard\ bibliography\ 	BibTeX standard bibliography style text file
-
-0	search/1	%\ BibTeX\ `	BibTeX custom bibliography style text file
-
-0	search/1	@c\ @mapfile{	TeX font aliases text file
-#------------------------------------------------------------------------------
-# file(1) magic for tgif(1) files
-# From Hendrik Scholz <hendrik@scholz.net>
-
-0	string	%TGIF\ x 		Tgif file version %s
-
-# ------------------------------------------------------------------------
-# ti-8x: file(1) magic for the TI-8x and TI-9x Graphing Calculators.
-#
-# From: Ryan McGuire (rmcguire@freenet.columbus.oh.us).
-#
-# Update: Romain Lievin (roms@lpg.ticalc.org).
-#
-# NOTE: This list is not complete.
-# Files for the TI-80 and TI-81 are pretty rare. I'm not going to put the
-# program/group magic numbers in here because I cannot find any.
-0		string		**TI80**	TI-80 Graphing Calculator File.
-0		string		**TI81**	TI-81 Graphing Calculator File.
-#
-# Magic Numbers for the TI-73
-#
-0		string		**TI73**	TI-73 Graphing Calculator
->0x00003B	byte		0x00		(real number)
->0x00003B	byte		0x01		(list)
->0x00003B	byte		0x02		(matrix)
->0x00003B	byte		0x03		(equation)
->0x00003B	byte		0x04		(string)
->0x00003B	byte		0x05		(program)
->0x00003B	byte		0x06		(assembly program)
->0x00003B	byte		0x07		(picture)
->0x00003B	byte		0x08		(gdb)
->0x00003B	byte		0x0C		(complex number)
->0x00003B	byte		0x0F		(window settings)
->0x00003B	byte		0x10		(zoom)
->0x00003B	byte		0x11		(table setup)
->0x00003B	byte		0x13		(backup)
-
-# Magic Numbers for the TI-82
-#
-0		string		**TI82**	TI-82 Graphing Calculator
->0x00003B	byte		0x00		(real)
->0x00003B	byte		0x01		(list)
->0x00003B	byte		0x02		(matrix)
->0x00003B	byte		0x03		(Y-variable)
->0x00003B	byte		0x05		(program)
->0x00003B	byte		0x06		(protected prgm)
->0x00003B	byte		0x07		(picture)
->0x00003B	byte		0x08		(gdb)
->0x00003B	byte		0x0B		(window settings)
->0x00003B	byte		0x0C		(window settings)
->0x00003B	byte		0x0D		(table setup)
->0x00003B	byte		0x0E		(screenshot)
->0x00003B	byte		0x0F		(backup)
-#
-# Magic Numbers for the TI-83
-#
-0		string		**TI83**	TI-83 Graphing Calculator
->0x00003B	byte		0x00		(real)
->0x00003B	byte		0x01		(list)
->0x00003B	byte		0x02		(matrix)
->0x00003B	byte		0x03		(Y-variable)
->0x00003B	byte		0x04		(string)
->0x00003B	byte		0x05		(program)
->0x00003B	byte		0x06		(protected prgm)
->0x00003B	byte		0x07		(picture)
->0x00003B	byte		0x08		(gdb)
->0x00003B	byte		0x0B		(window settings)
->0x00003B	byte		0x0C		(window settings)
->0x00003B	byte		0x0D		(table setup)
->0x00003B	byte		0x0E		(screenshot)
->0x00003B	byte		0x13		(backup)
-#
-# Magic Numbers for the TI-83+
-#
-0		string		**TI83F*	TI-83+ Graphing Calculator
->0x00003B	byte		0x00		(real number)
->0x00003B	byte		0x01		(list)
->0x00003B	byte		0x02		(matrix)
->0x00003B	byte		0x03		(equation)
->0x00003B	byte		0x04		(string)
->0x00003B	byte		0x05		(program)
->0x00003B	byte		0x06		(assembly program)
->0x00003B	byte		0x07		(picture)
->0x00003B	byte		0x08		(gdb)
->0x00003B	byte		0x0C		(complex number)
->0x00003B	byte		0x0F		(window settings)
->0x00003B	byte		0x10		(zoom)
->0x00003B	byte		0x11		(table setup)
->0x00003B	byte		0x13		(backup)
->0x00003B	byte		0x15		(application variable)
->0x00003B	byte		0x17		(group of variable)
-
-#
-# Magic Numbers for the TI-85
-#
-0		string		**TI85**	TI-85 Graphing Calculator
->0x00003B	byte		0x00		(real number)
->0x00003B	byte		0x01		(complex number)
->0x00003B	byte		0x02		(real vector)
->0x00003B	byte		0x03		(complex vector)
->0x00003B	byte		0x04		(real list)
->0x00003B	byte		0x05		(complex list)
->0x00003B	byte		0x06		(real matrix)
->0x00003B	byte		0x07		(complex matrix)
->0x00003B	byte		0x08		(real constant)
->0x00003B	byte		0x09		(complex constant)
->0x00003B	byte		0x0A		(equation)
->0x00003B	byte		0x0C		(string)
->0x00003B	byte		0x0D		(function GDB)
->0x00003B	byte		0x0E		(polar GDB)
->0x00003B	byte		0x0F		(parametric GDB)
->0x00003B	byte		0x10		(diffeq GDB)
->0x00003B	byte		0x11		(picture)
->0x00003B	byte		0x12		(program)
->0x00003B	byte		0x13		(range)
->0x00003B	byte		0x17		(window settings)
->0x00003B	byte		0x18		(window settings)
->0x00003B	byte		0x19		(window settings)
->0x00003B	byte		0x1A		(window settings)
->0x00003B	byte		0x1B		(zoom)
->0x00003B	byte		0x1D		(backup)
->0x00003B	byte		0x1E		(unknown)
->0x00003B	byte		0x2A		(equation)
->0x000032	string		ZS4		- ZShell Version 4 File.
->0x000032	string		ZS3		- ZShell Version 3 File.
-#
-# Magic Numbers for the TI-86
-#
-0		string		**TI86**	TI-86 Graphing Calculator
->0x00003B	byte		0x00		(real number)
->0x00003B	byte		0x01		(complex number)
->0x00003B	byte		0x02		(real vector)
->0x00003B	byte		0x03		(complex vector)
->0x00003B	byte		0x04		(real list)
->0x00003B	byte		0x05		(complex list)
->0x00003B	byte		0x06		(real matrix)
->0x00003B	byte		0x07		(complex matrix)
->0x00003B	byte		0x08		(real constant)
->0x00003B	byte		0x09		(complex constant)
->0x00003B	byte		0x0A		(equation)
->0x00003B	byte		0x0C		(string)
->0x00003B	byte		0x0D		(function GDB)
->0x00003B	byte		0x0E		(polar GDB)
->0x00003B	byte		0x0F		(parametric GDB)
->0x00003B	byte		0x10		(diffeq GDB)
->0x00003B	byte		0x11		(picture)
->0x00003B	byte		0x12		(program)
->0x00003B	byte		0x13		(range)
->0x00003B	byte		0x17		(window settings)
->0x00003B	byte		0x18		(window settings)
->0x00003B	byte		0x19		(window settings)
->0x00003B	byte		0x1A		(window settings)
->0x00003B	byte		0x1B		(zoom)
->0x00003B	byte		0x1D		(backup)
->0x00003B	byte		0x1E		(unknown)
->0x00003B	byte		0x2A		(equation)
-#
-# Magic Numbers for the TI-89
-#
-0		string		**TI89**	TI-89 Graphing Calculator
->0x000048	byte		0x00		(expression)
->0x000048	byte		0x04		(list)
->0x000048	byte		0x06		(matrix)
->0x000048	byte		0x0A		(data)
->0x000048	byte		0x0B		(text)
->0x000048	byte		0x0C		(string)
->0x000048	byte		0x0D		(graphic data base)
->0x000048	byte		0x0E		(figure)
->0x000048	byte		0x10		(picture)
->0x000048	byte		0x12		(program)
->0x000048	byte		0x13		(function)
->0x000048	byte		0x14		(macro)
->0x000048	byte		0x1C		(zipped)
->0x000048	byte		0x21		(assembler)
-#
-# Magic Numbers for the TI-92
-#
-0		string		**TI92**	TI-92 Graphing Calculator
->0x000048	byte		0x00		(expression)
->0x000048	byte		0x04		(list)
->0x000048	byte		0x06		(matrix)
->0x000048	byte		0x0A		(data)
->0x000048	byte		0x0B		(text)
->0x000048	byte		0x0C		(string)
->0x000048	byte		0x0D		(graphic data base)
->0x000048	byte		0x0E		(figure)
->0x000048	byte		0x10		(picture)
->0x000048	byte		0x12		(program)
->0x000048	byte		0x13		(function)
->0x000048	byte		0x14		(macro)
->0x000048	byte		0x1D		(backup)
-#
-# Magic Numbers for the TI-92+/V200
-#
-0		string		**TI92P*	TI-92+/V200 Graphing Calculator
->0x000048	byte		0x00		(expression)
->0x000048	byte		0x04		(list)
->0x000048	byte		0x06		(matrix)
->0x000048	byte		0x0A		(data)
->0x000048	byte		0x0B		(text)
->0x000048	byte		0x0C		(string)
->0x000048	byte		0x0D		(graphic data base)
->0x000048	byte		0x0E		(figure)
->0x000048	byte		0x10		(picture)
->0x000048	byte		0x12		(program)
->0x000048	byte		0x13		(function)
->0x000048	byte		0x14		(macro)
->0x000048	byte		0x1C		(zipped)
->0x000048	byte		0x21		(assembler)
-#
-# Magic Numbers for the TI-73/83+/89/92+/V200 FLASH upgrades
-#
-0x0000016	string		Advanced	TI-XX Graphing Calculator (FLASH)
-0		string		**TIFL**	TI-XX Graphing Calculator (FLASH)
->8		byte		>0		- Revision %d
->>9 		byte		x		\b.%d,
->12		byte		>0		Revision date %02x
->>13		byte		x		\b/%02x
->>14		beshort		x		\b/%04x,
->17		string		>/0		name: '%s',
->48		byte		0x74		device: TI-73,
->48		byte		0x73		device: TI-83+,
->48		byte		0x98		device: TI-89,
->48		byte		0x88		device: TI-92+,
->49		byte		0x23		type: OS upgrade,
->49		byte		0x24		type: application,
->49		byte		0x25		type: certificate,
->49		byte		0x3e		type: license,
->74		lelong		>0		size: %ld bytes
-
-# VTi & TiEmu skins (TI Graphing Calculators).
-# From: Romain Lievin (roms@lpg.ticalc.org).
-# Magic Numbers for the VTi skins
-0               string          VTI		Virtual TI skin
->3		string		v		- Version
->>4		byte		>0		\b %c
->>6		byte		x		\b.%c
-# Magic Numbers for the TiEmu skins
-0		string		TiEmu		TiEmu skin
->6              string          v               - Version
->>7             byte            >0              \b %c
->>9             byte            x               \b.%c
->>10		byte		x		\b%c
-
-#------------------------------------------------------------------------------
-# timezone:  file(1) magic for timezone data
-#
-# from Daniel Quinlan (quinlan@yggdrasil.com)
-# this should work on Linux, SunOS, and maybe others
-# Added new official magic number for recent versions of the Olson code
-0	string	TZif	timezone data
->4	byte	0	\b, old version
->4	byte	>0	\b, version %c
->20	belong	0	\b, no gmt time flags
->20	belong	1	\b, 1 gmt time flag
->20	belong	>1	\b, %d gmt time flags
->24	belong	0	\b, no std time flags
->20	belong	1	\b, 1 std time flag
->24	belong	>1	\b, %d std time flags
->28	belong	0	\b, no leap seconds
->28	belong	1	\b, 1 leap second
->28	belong  >1	\b, %d leap seconds
->32	belong	0	\b, no transition times
->32	belong	1	\b, 1 transition time
->32	belong  >1	\b, %d transition times
->36	belong	0	\b, no abbreviation chars
->36	belong	1	\b, 1 abbreviation char
->36	belong	>1	\b, %d abbreviation chars
-0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0	old timezone data
-0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0	old timezone data
-0	string  \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0	old timezone data
-0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0	old timezone data
-0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0	old timezone data
-0	string	\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0	old timezone data
-#------------------------------------------------------------------------------
-# troff:  file(1) magic for *roff
-#
-# updated by Daniel Quinlan (quinlan@yggdrasil.com)
-
-# troff input
-0	search/1	.\\"		troff or preprocessor input text
-!:mime	text/troff
-0	search/1	'\\"		troff or preprocessor input text
-!:mime	text/troff
-0	search/1	'.\\"		troff or preprocessor input text
-!:mime	text/troff
-0	search/1	\\"		troff or preprocessor input text
-!:mime	text/troff
-0	search/1	'''		troff or preprocessor input text
-!:mime	text/troff
-0	regex/20	\^\\.[A-Za-z0-9][A-Za-z0-9][\ \t]	troff or preprocessor input text
-!:mime	text/troff
-0	regex/20	\^\\.[A-Za-z0-9][A-Za-z0-9]$	troff or preprocessor input text
-!:mime	text/troff
-
-# ditroff intermediate output text
-0	search/1	x\ T		ditroff output text
->4	search/1	cat		for the C/A/T phototypesetter
->4	search/1	ps		for PostScript
->4	search/1	dvi		for DVI
->4	search/1	ascii		for ASCII
->4	search/1	lj4		for LaserJet 4
->4	search/1	latin1		for ISO 8859-1 (Latin 1)
->4	search/1	X75		for xditview at 75dpi
->>7	search/1	-12		(12pt)
->4	search/1	X100		for xditview at 100dpi
->>8	search/1	-12		(12pt)
-
-# output data formats
-0	string		\100\357	very old (C/A/T) troff output data
-#
-#------------------------------------------------------------------------------
-# tuxedo:	file(1) magic for BEA TUXEDO data files
-#
-# from Ian Springer <ispringer@hotmail.com>
-#
-0	string		\0\0\1\236\0\0\0\0\0\0\0\0\0\0\0\0	BEA TUXEDO DES mask data
-
-#------------------------------------------------------------------------------
-# typeset:  file(1) magic for other typesetting
-#
-0	string		Interpress/Xerox	Xerox InterPress data
->16	string		/			(version
->>17	string		>\0			%s)
-#---------------------------------------------------------------------------
-# Unicode:  BOM prefixed text files - Adrian Havill <havill@turbolinux.co.jp>
-# GRR: These types should be recognised in file_ascmagic so these
-# encodings can be treated by text patterns.
-# Missing types are already dealt with internally.
-#
-0	string	+/v8			Unicode text, UTF-7
-0	string	+/v9			Unicode text, UTF-7
-0	string	+/v+			Unicode text, UTF-7
-0	string	+/v/			Unicode text, UTF-7
-0	string	\335\163\146\163	Unicode text, UTF-8-EBCDIC
-0	string	\000\000\376\377	Unicode text, UTF-32, big-endian
-0	string	\377\376\000\000	Unicode text, UTF-32, little-endian
-0	string	\016\376\377		Unicode text, SCSU (Standard Compression Scheme for Unicode)
-
-#------------------------------------------------------------------------------
-# unknown:  file(1) magic for unknown machines
-#
-# XXX - this probably should be pruned, as it'll match PDP-11 and
-# VAX image formats.
-#
-# 0x107 is 0407; 0x108 is 0410; both are PDP-11 (executable and pure,
-# respectively).
-#
-# 0x109 is 0411; that's PDP-11 split I&D, but the PDP-11 version doesn't
-# have the "version %ld", which may be a bogus COFFism (I don't think
-# there ever was COFF for the PDP-11).
-#
-# 0x10B is 0413; that's VAX demand-paged, but this is a short, not a
-# long, as it would be on a VAX.
-#
-# 0x10C is 0414 and 0x10E is 416; those *are* unknown.
-#
-0	short		0x107		unknown machine executable
->8	short		>0		not stripped
->15	byte		>0		- version %ld
-0	short		0x108		unknown pure executable
->8	short		>0		not stripped
->15	byte		>0		- version %ld
-0	short		0x109		PDP-11 separate I&D
->8	short		>0		not stripped
->15	byte		>0		- version %ld
-0	short		0x10b		unknown pure executable
->8	short		>0		not stripped
->15	byte		>0		- version %ld
-0	long		0x10c		unknown demand paged pure executable
->16	long		>0		not stripped
-0	long		0x10e		unknown readable demand paged pure executable
-#------------------------------------------------------------------------------
-# uuencode:  file(1) magic for ASCII-encoded files
-#
-
-# GRR:  the first line of xxencoded files is identical to that in uuencoded
-# files, but the first character in most subsequent lines is 'h' instead of
-# 'M'.  (xxencoding uses lowercase letters in place of most of uuencode's
-# punctuation and survives BITNET gateways better.)  If regular expressions
-# were supported, this entry could possibly be split into two with
-# "begin\040\.\*\012M" or "begin\040\.\*\012h" (where \. and \* are REs).
-0	search/1	begin\ 		uuencoded or xxencoded text
-
-# btoa(1) is an alternative to uuencode that requires less space.
-0	search/1	xbtoa\ Begin	btoa'd text
-
-# ship(1) is another, much cooler alternative to uuencode.
-# Greg Roelofs, newt@uchicago.edu
-0	search/1	$\012ship	ship'd binary text
-
-# bencode(8) is used to encode compressed news batches (Bnews/Cnews only?)
-# Greg Roelofs, newt@uchicago.edu
-0	search/1	Decode\ the\ following\ with\ bdeco	bencoded News text
-
-# BinHex is the Macintosh ASCII-encoded file format (see also "apple")
-# Daniel Quinlan, quinlan@yggdrasil.com
-11	search/1	must\ be\ converted\ with\ BinHex	BinHex binary text
->41	search/1	x					\b, version %.3s
-
-# GRR: handle BASE64
-
-#------------------------------------------------------------------------------
-# varied.out:  file(1) magic for various USG systems
-#
-#	Herewith many of the object file formats used by USG systems.
-#	Most have been moved to files for a particular processor,
-#	and deleted if they duplicate other entries.
-#
-0	short		0610		Perkin-Elmer executable
-# AMD 29K
-0	beshort		0572		amd 29k coff noprebar executable
-0	beshort		01572		amd 29k coff prebar executable
-0	beshort		0160007		amd 29k coff archive
-# Cray
-6	beshort		0407		unicos (cray) executable
-# Ultrix 4.3
-596	string		\130\337\377\377	Ultrix core file
->600	string		>\0		from '%s'
-# BeOS and MAcOS PEF executables
-# From: hplus@zilker.net (Jon Watte)
-0	string		Joy!peffpwpc	header for PowerPC PEF executable
-#
-# ava assembler/linker Uros Platise <uros.platise@ijs.si>
-0       string          avaobj  AVR assembler object code
->7      string          >\0     version '%s'
-# gnu gmon magic From: Eugen Dedu <dedu@ese-metz.fr>
-0	string		gmon		GNU prof performance data
->4	long		x		- version %ld
-# From: Dave Pearson <davep@davep.org>
-# Harbour <URL:http://www.harbour-project.org/> HRB files.
-0	string		\xc0HRB		Harbour HRB file
->4	short		x		version %d
-
-# From: Alex Beregszaszi <alex@fsn.hu>
-# 0	string		exec 		BugOS executable
-# 0	string		pack		BugOS archive
-
-# From: Jason Spence <jspence@lightconsulting.com>
-# Generated by the "examples" in STM's ST40 devkit, and derived code.
-0	lelong		0x13a9f17e	ST40 component image format
->4	string		>\0		\b, name '%s'
-
-#------------------------------------------------------------------------------
-# varied.script:  file(1) magic for various interpreter scripts
-
-0	string		#!\ /			a
->3	string		>\0			%s script text executable
-0	string		#!\t/			a
->3	string		>\0			%s script text executable
-0	string		#!/			a
->2	string		>\0			%s script text executable
-0	string		#!\ 			script text executable
->3	string		>\0			for %s
-
-# From: arno <arenevier@fdn.fr>
-# mozilla xpconnect typelib
-# see http://www.mozilla.org/scriptable/typelib_file.html
-0	string 		XPCOM\nTypeLib\r\n\032		XPConnect Typelib
->0x10  byte        x       version %d
->>0x11 byte        x      \b.%d
-
-#------------------------------------------------------------------------------
-# vax:  file(1) magic for VAX executable/object and APL workspace
-#
-0	lelong		0101557		VAX single precision APL workspace
-0	lelong		0101556		VAX double precision APL workspace
-
-#
-# VAX a.out (32V, BSD)
-#
-0	lelong		0407		VAX executable
->16	lelong		>0		not stripped
-
-0	lelong		0410		VAX pure executable
->16	lelong		>0		not stripped
-
-0	lelong		0413		VAX demand paged pure executable
->16	lelong		>0		not stripped
-
-0	lelong		0420		VAX demand paged (first page unmapped) pure executable
->16	lelong		>0		not stripped
-
-#
-# VAX COFF
-#
-# The `versions' should be un-commented if they work for you.
-# (Was the problem just one of endianness?)
-#
-0	leshort		0570		VAX COFF executable
->12	lelong		>0		not stripped
->22	leshort		>0		- version %ld
-0	leshort		0575		VAX COFF pure executable
->12	lelong		>0		not stripped
->22	leshort		>0		- version %ld
-
-#------------------------------------------------------------------------------
-# vicar:  file(1) magic for VICAR files.
-#
-# From: Ossama Othman <othman@astrosun.tn.cornell.edu
-# VICAR is JPL's in-house spacecraft image processing program
-# VICAR image
-0	string	LBLSIZE=	VICAR image data
->32	string	BYTE		\b, 8 bits  = VAX byte
->32	string	HALF		\b, 16 bits = VAX word     = Fortran INTEGER*2
->32	string	FULL		\b, 32 bits = VAX longword = Fortran INTEGER*4
->32	string	REAL		\b, 32 bits = VAX longword = Fortran REAL*4
->32	string	DOUB		\b, 64 bits = VAX quadword = Fortran REAL*8
->32	string	COMPLEX		\b, 64 bits = VAX quadword = Fortran COMPLEX*8
-# VICAR label file
-43	string	SFDU_LABEL	VICAR label file
-#------------------------------------------------------------------------------
-# Virtutech Compressed Random Access File Format
-#
-# From <gustav@virtutech.com>
-0      string          \211\277\036\203        Virtutech CRAFF
->4     belong          x               v%d
->20    belong          0               uncompressed
->20    belong          1               bzipp2ed
->20    belong          2               gzipped
->24    belong          0               not clean
-
-#------------------------------------------------------------------------------
-# visx:  file(1) magic for Visx format files
-#
-0	short		0x5555		VISX image file
->2	byte		0		(zero)
->2	byte		1		(unsigned char)
->2	byte		2		(short integer)
->2	byte		3		(float 32)
->2	byte		4		(float 64)
->2	byte		5		(signed char)
->2	byte		6		(bit-plane)
->2	byte		7		(classes)
->2	byte		8		(statistics)
->2	byte		10		(ascii text)
->2	byte		15		(image segments)
->2	byte		100		(image set)
->2	byte		101		(unsigned char vector)
->2	byte		102		(short integer vector)
->2	byte		103		(float 32 vector)
->2	byte		104		(float 64 vector)
->2	byte		105		(signed char vector)
->2	byte		106		(bit plane vector)
->2	byte		121		(feature vector)
->2	byte		122		(feature vector library)
->2	byte		124		(chain code)
->2	byte		126		(bit vector)
->2	byte		130		(graph)
->2	byte		131		(adjacency graph)
->2	byte		132		(adjacency graph library)
->2	string		.VISIX		(ascii text)
-
-#------------------------------------------------------------------------------
-# vms:  file(1) magic for VMS executables (experimental)
-#
-# VMS .exe formats, both VAX and AXP (Greg Roelofs, newt@uchicago.edu)
-
-# GRR 950122:  I'm just guessing on these, based on inspection of the headers
-# of three executables each for Alpha and VAX architectures.  The VAX files
-# all had headers similar to this:
-#
-#   00000  b0 00 30 00 44 00 60 00  00 00 00 00 30 32 30 35  ..0.D.`.....0205
-#   00010  01 01 00 00 ff ff ff ff  ff ff ff ff 00 00 00 00  ................
-#
-0	string	\xb0\0\x30\0	VMS VAX executable
->44032	string	PK\003\004	\b, Info-ZIP SFX archive v5.12 w/decryption
-#
-# The AXP files all looked like this, except that the byte at offset 0x22
-# was 06 in some of them and 07 in others:
-#
-#   00000  03 00 00 00 00 00 00 00  ec 02 00 00 10 01 00 00  ................
-#   00010  68 00 00 00 98 00 00 00  b8 00 00 00 00 00 00 00  h...............
-#   00020  00 00 07 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
-#   00030  00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  ................
-#   00040  00 00 00 00 ff ff ff ff  ff ff ff ff 02 00 00 00  ................
-#
-0	belong	0x03000000	VMS Alpha executable
->75264	string	PK\003\004	\b, Info-ZIP SFX archive v5.12 w/decryption
-
-# -----------------------------------------------------------
-# VMware specific files (deducted from version 1.1 and log file entries)
-# Anthon van der Neut (anthon@mnt.org)
-0	belong	0x4d52564e	VMware nvram 
-
-#------------------------------------------------------------------------------
-# vorbis:  file(1) magic for Ogg/Vorbis files
-#
-# From Felix von Leitner <leitner@fefe.de>
-# Extended by Beni Cherniavsky <cben@crosswinds.net>
-# Further extended by Greg Wooledge <greg@wooledge.org>
-#
-# Most (everything but the number of channels and bitrate) is commented
-# out with `##' as it's not interesting to the average user.  The most
-# probable things advanced users would want to uncomment are probably
-# the number of comments and the encoder version.
-#
-# FIXME: The first match has been made a search, so that it can skip
-# over prepended ID3 tags. This will work for MIME type detection, but
-# won't work for detecting other properties of the file (they all need
-# to be made relative to the search). In any case, if the file has ID3
-# tags, the ID3 information will be printed, not the Ogg information,
-# so until that's fixed, this doesn't matter.
-# FIXME[2]: Disable the above for now, since search assumes text mode.
-#
-# --- Ogg Framing ---
-#0		search/1000	OggS		Ogg data
-0		string	OggS		Ogg data
-!:mime		application/ogg
->4		byte		!0		UNKNOWN REVISION %u
-##>4		byte		0		revision 0
->4		byte		0
-##>>14		lelong		x		(Serial %lX)
-# non-Vorbis content: FLAC (Free Lossless Audio Codec, http://flac.sourceforge.net)
->>28		string		\x7fFLAC	\b, FLAC audio
-# non-Vorbis content: Theora
->>28		string		\x80theora	\b, Theora video
-# non-Vorbis content: Kate
->>28		string		\x80kate\0\0\0\0	\b, Kate
->>>37		ubyte		x		v%u
->>>38		ubyte		x		\b.%u,
->>>40		byte		0		utf8 encoding,
->>>40		byte		!0		unknown character encoding,
->>>60		string		>\0		language %s,
->>>60		string		\0		no language set,
->>>76		string		>\0		category %s
->>>76		string		\0		no category set
-# non-Vorbis content: Skeleton
->>28		string		fishead\0	\b, Skeleton
->>>36		short		x		v%u
->>>40		short		x		\b.%u
-# non-Vorbis content: Speex
->>28		string		Speex\ \ \ 	\b, Speex audio
-# non-Vorbis content: OGM
->>28		string		\x01video\0\0\0	\b, OGM video
->>>37		string/c	div3		(DivX 3)
->>>37		string/c	divx		(DivX 4)
->>>37		string/c	dx50		(DivX 5)
->>>37		string/c	xvid		(XviD)
-# --- First vorbis packet - general header ---
->>28		string		\x01vorbis	\b, Vorbis audio,
->>>35		lelong		!0		UNKNOWN VERSION %lu,
-##>>>35		lelong		0		version 0,
->>>35		lelong		0
->>>>39		ubyte		1		mono,
->>>>39		ubyte		2		stereo,
->>>>39		ubyte		>2		%u channels,
->>>>40		lelong		x		%lu Hz
-# Minimal, nominal and maximal bitrates specified when encoding
->>>>48		string		<\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff	\b,
-# The above tests if at least one of these is specified:
->>>>>52		lelong		!-1
-# Vorbis RC2 has a bug which puts -1000 in the min/max bitrate fields
-# instead of -1.
-# Vorbis 1.0 uses 0 instead of -1.
->>>>>>52	lelong		!0
->>>>>>>52	lelong		!-1000
->>>>>>>>52	lelong		x		<%lu
->>>>>48		lelong		!-1
->>>>>>48	lelong		x		~%lu
->>>>>44		lelong		!-1
->>>>>>44	lelong		!-1000
->>>>>>>44	lelong		!0
->>>>>>>>44	lelong		x		>%lu
->>>>>48		string		<\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff	bps
-# -- Second vorbis header packet - the comments
-# A kludge to read the vendor string.  It's a counted string, not a
-# zero-terminated one, so file(1) can't read it in a generic way.
-# libVorbis is the only one existing currently, so I detect specifically
-# it.  The interesting value is the cvs date (8 digits decimal).
-# Post-RC1 Ogg files have the second header packet (and thus the version)
-# in a different place, so we must use an indirect offset.
->>>(84.b+85)		string		\x03vorbis
->>>>(84.b+96)		string/c	Xiphophorus\ libVorbis\ I	\b, created by: Xiphophorus libVorbis I
->>>>>(84.b+120)		string		>00000000	
-# Map to beta version numbers:
->>>>>>(84.b+120)	string		<20000508	(<beta1, prepublic)
->>>>>>(84.b+120)	string		20000508	(1.0 beta 1 or beta 2)
->>>>>>(84.b+120)	string		>20000508
->>>>>>>(84.b+120)	string		<20001031	(beta2-3)
->>>>>>(84.b+120)	string		20001031	(1.0 beta 3)
->>>>>>(84.b+120)	string		>20001031
->>>>>>>(84.b+120)	string		<20010225	(beta3-4)
->>>>>>(84.b+120)	string		20010225	(1.0 beta 4)
->>>>>>(84.b+120)	string		>20010225
->>>>>>>(84.b+120)	string		<20010615	(beta4-RC1)
->>>>>>(84.b+120)	string		20010615	(1.0 RC1)
->>>>>>(84.b+120)	string		20010813	(1.0 RC2)
->>>>>>(84.b+120)	string		20010816	(RC2 - Garf tuned v1)
->>>>>>(84.b+120)	string		20011014	(RC2 - Garf tuned v2)
->>>>>>(84.b+120)	string		20011217	(1.0 RC3)
->>>>>>(84.b+120)	string		20011231	(1.0 RC3)
-# Some pre-1.0 CVS snapshots still had "Xiphphorus"...
->>>>>>(84.b+120)	string		>20011231	(pre-1.0 CVS)
-# For the 1.0 release, Xiphophorus is replaced by Xiph.Org
->>>>(84.b+96)		string/c	Xiph.Org\ libVorbis\ I	\b, created by: Xiph.Org libVorbis I
->>>>>(84.b+117)		string		>00000000	
->>>>>>(84.b+117)	string		<20020717	(pre-1.0 CVS)
->>>>>>(84.b+117)	string		20020717	(1.0)
->>>>>>(84.b+117)	string		20030909	(1.0.1)
->>>>>>(84.b+117)	string		20040629	(1.1.0 RC1)
-
-#------------------------------------------------------------------------------
-# VXL: file(1) magic for VXL binary IO data files
-#
-# from Ian Scott <scottim@sf.net>
-#
-# VXL is a collection of C++ libraries for Computer Vision.
-# See the vsl chapter in the VXL Book for more info
-# http://www.isbe.man.ac.uk/public_vxl_doc/books/vxl/book.html
-# http:/vxl.sf.net
-
-2	lelong	0x472b2c4e	VXL data file,
->0	leshort	>0		schema version no %d
-
-#------------------------------------------------------------------------------
-# warc:  file(1) magic for WARC files
-
-0	string	WARC/	WARC Archive
->5	string	x	version %.4s
-#------------------------------------------------------------------------------
-# weak:  file(1) magic for very weak magic entries, disabled by default
-#
-# These entries are so weak that they might interfere identification of
-# other formats. Example include:
-# - Only identify for 1 or 2 bytes
-# - Match against very wide range of values
-# - Match against generic word in some spoken languages (e.g. English)
-
-# Summary: Computer Graphics Metafile
-# Extension: .cgm
-#0	beshort&0xffe0	0x0020		binary Computer Graphics Metafile
-#0	beshort		0x3020		character Computer Graphics Metafile
-
-#0	string		=!!		Bennet Yee's "face" format
-
-#------------------------------------------------------------------------------
-# windows:  file(1) magic for Microsoft Windows
-#
-# This file is mainly reserved for files where programs
-# using them are run almost always on MS Windows 3.x or
-# above, or files only used exclusively in Windows OS,
-# where there is no better category to allocate for.
-# For example, even though WinZIP almost run on Windows
-# only, it is better to treat them as "archive" instead.
-# For format usable in DOS, such as generic executable
-# format, please specify under "msdos" file.
-#
-
-
-# Summary: Outlook Express DBX file
-# Extension: .dbx
-# Created by: Christophe Monniez
-0	string	\xCF\xAD\x12\xFE	MS Outlook Express DBX file
->4	byte	=0xC5			\b, message database
->4	byte	=0xC6			\b, folder database
->4	byte	=0xC7			\b, account information
->4	byte	=0x30			\b, offline database
-
-
-# Summary: Windows crash dump
-# Extension: .dmp
-# Created by: Andreas Schuster (http://computer.forensikblog.de/)
-# Reference (1): http://computer.forensikblog.de/en/2008/02/64bit_magic.html
-# Modified by (1): Abel Cheung (Avoid match with first 4 bytes only)
-0	string		PAGE		
->4	string		DUMP		MS Windows 32bit crash dump
->>0x05c	byte            0		\b, no PAE
->>0x05c	byte            1		\b, PAE
->>0xf88	lelong		1		\b, full dump
->>0xf88	lelong		2		\b, kernel dump
->>0xf88	lelong		3		\b, small dump
->>0x068	lelong		x		\b, %ld pages
->4	string		DU64		MS Windows 64bit crash dump
->>0xf98	lelong		1		\b, full dump
->>0xf98	lelong		2		\b, kernel dump
->>0xf98	lelong		3		\b, small dump
->>0x090	lequad		x		\b, %lld pages
-
-
-# Summary: Vista Event Log
-# Extension: .evtx
-# Created by: Andreas Schuster (http://computer.forensikblog.de/)
-# Reference (1): http://computer.forensikblog.de/en/2007/05/some_magic.html
-0	string		ElfFile\0	MS Windows Vista Event Log
->0x2a	leshort		x		\b, %d chunks
->>0x10	lelong		x		\b (no. %d in use)
->0x18	lelong		>1		\b, next record no. %d
->0x18	lelong		=1		\b, empty
->0x78	lelong		&1		\b, DIRTY
->0x78	lelong		&2		\b, FULL
-
-
-# Summary: Windows 3.1 group files
-# Extension: .grp
-# Created by: unknown
-0	string		\120\115\103\103	MS Windows 3.1 group files
-
-
-# Summary: Old format help files
-# Extension: .hlp
-# Created by: Dirk Jagdmann <doj@cubic.org>
-0	lelong		0x00035f3f		MS Windows 3.x help file
-
-
-# Summary: Hyper terminal
-# Extension: .ht
-# Created by: unknown
-0	string		HyperTerminal\ 
->15	string		1.0\ --\ HyperTerminal\ data\ file	MS Windows HyperTerminal profile
-
-
-# Summary: Windows shortcut
-# Extension: .lnk
-# Created by: unknown
-0	string		\114\0\0\0\001\024\002\0\0\0\0\0\300\0\0\0\0\0\0\106	MS Windows shortcut
-
-
-# Summary: Outlook Personal Folders
-# Created by: unknown
-0	lelong		0x4E444221	Microsoft Outlook email folder
->10	leshort		0x0e		(<=2002)
->10	leshort		0x17		(>=2003)
-
-
-# Summary: Windows help cache
-# Created by: unknown
-0	string		\164\146\115\122\012\000\000\000\001\000\000\000	MS Windows help cache
-
-
-# Summary: IE cache file
-# Created by: Christophe Monniez
-0	string	Client\ UrlCache\ MMF 	Internet Explorer cache file
->20	string	>\0			version %s
-
-
-# Summary: Registry files
-# Created by: unknown
-# Modified by (1): Joerg Jenderek
-0	string		regf		MS Windows registry file, NT/2000 or above
-0	string		CREG		MS Windows 95/98/ME registry file
-0	string		SHCC3		MS Windows 3.1 registry file
-
-
-# Summary: Windows Registry text
-# Extension: .reg
-# Submitted by: Abel Cheung <abelcheung@gmail.com>
-0	string		REGEDIT4\r\n\r\n	Windows Registry text (Win95 or above)
-0	string		Windows\ Registry\ Editor\ 
->&0	string		Version\ 5.00\r\n\r\n	Windows Registry text (Win2K or above)
-
-
-# From: Pal Tamas <folti@balabit.hu>
-# Autorun File
-0       string/c          [autorun]\r\n   Microsoft Windows Autorun file.
-!:mime	application/x-setupscript. 
-#------------------------------------------------------------------------------
-# wireless-regdb:        file(1) magic for CRDA wireless-regdb file format
-#
-0	string	RGDB	CRDA wireless regulatory database file
->4	belong	19	(Version 1)
-#------------------------------------------------------------------------------
-# wordprocessors:  file(1) magic fo word processors.
-#
-####### PWP file format used on Smith Corona Personal Word Processors:
-2	string	\040\040\040\040\040\040\040\040\040\040\040ML4D\040'92	Smith Corona PWP
->24	byte	2	\b, single spaced
->24	byte	3	\b, 1.5 spaced
->24	byte	4	\b, double spaced
->25	byte	0x42	\b, letter
->25	byte	0x54	\b, legal
->26	byte	0x46	\b, A4
-
-#WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
-0	string	\377WPC\020\000\000\000\022\012\001\001\000\000\000\000	(WP) loadable file
->15	byte	0	Optimized for Intel
->15	byte	1	Optimized for Non-Intel
-1	string	WPC	(Corel/WP)
->8	short	257	WordPerfect macro
->8	short	258	WordPerfect help file
->8	short	259	WordPerfect keyboard file
->8	short	266	WordPerfect document
->8	short	267	WordPerfect dictionary
->8	short	268	WordPerfect thesaurus
->8	short	269	WordPerfect block
->8	short	270	WordPerfect rectangular block
->8	short	271	WordPerfect column block
->8	short	272	WordPerfect printer data
->8	short	275	WordPerfect printer data
->8	short	276	WordPerfect driver resource data
->8	short	279	WordPerfect hyphenation code
->8	short	280	WordPerfect hyphenation data
->8	short	281	WordPerfect macro resource data
->8	short	283	WordPerfect hyphenation lex
->8	short	285	WordPerfect wordlist
->8	short	286	WordPerfect equation resource data
->8	short	289	WordPerfect spell rules
->8	short	290	WordPerfect dictionary rules
->8	short	295	WordPerfect spell rules (Microlytics)
->8	short	299	WordPerfect settings file
->8	short	301	WordPerfect 4.2 document
->8	short	325	WordPerfect dialog file
->8	short	332	WordPerfect button bar
->8	short	513	Shell macro
->8	short	522	Shell definition
->8	short	769	Notebook macro
->8	short	770	Notebook help file
->8	short	771	Notebook keyboard file
->8	short	778	Notebook definition
->8	short	1026	Calculator help file
->8	short 	1538	Calendar help file
->8	short 	1546	Calendar data file
->8	short	1793	Editor macro
->8	short	1794	Editor help file
->8	short	1795	Editor keyboard file
->8	short	1817	Editor macro resource file
->8	short 	2049	Macro editor macro
->8	short 	2050	Macro editor help file
->8	short	2051	Macro editor keyboard file
->8	short	2305	PlanPerfect macro
->8	short	2306	PlanPerfect help file
->8	short	2307	PlanPerfect keyboard file
->8	short	2314	PlanPerfect worksheet
->8	short	2319	PlanPerfect printer definition
->8	short	2322	PlanPerfect graphic definition
->8	short	2323	PlanPerfect data
->8	short	2324	PlanPerfect temporary printer
->8	short	2329	PlanPerfect macro resource data
->8	byte	11	Mail
->8	short	2818	help file
->8	short	2821	distribution list
->8	short	2826	out box
->8	short	2827	in box
->8	short	2836	users archived mailbox
->8	short	2837	archived message database
->8	short	2838	archived attachments
->8	short	3083	Printer temporary file
->8	short	3330	Scheduler help file
->8	short	3338	Scheduler in file
->8	short	3339	Scheduler out file
->8	short	3594	GroupWise settings file
->8	short	3601	GroupWise directory services
->8	short	3627	GroupWise settings file
->8	short	4362	Terminal resource data
->8	short	4363	Terminal resource data
->8	short	4395	Terminal resource data
->8	short	4619	GUI loadable text
->8	short	4620	graphics resource data
->8	short	4621	printer settings file
->8	short	4622	port definition file
->8	short	4623	print queue parameters
->8	short	4624	compressed file
->8	short	5130	Network service msg file
->8	short	5131	Network service msg file
->8	short	5132	Async gateway login msg
->8	short	5134	GroupWise message file
->8	short	7956	GroupWise admin domain database
->8	short	7957	GroupWise admin host database
->8	short	7959	GroupWise admin remote host database
->8	short	7960	GroupWise admin ADS deferment data file
->8	short	8458	IntelliTAG (SGML) compiled DTD
->8	long	18219264	WordPerfect graphic image (1.0)
->8	long	18219520	WordPerfect graphic image (2.0)
-#end of WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
-
-# Hangul (Korean) Word Processor File
-0	string	HWP\ Document\ File	Hangul (Korean) Word Processor File 3.0
-# From: Won-Kyu Park <wkpark@kldp.org>
-512	string		R\0o\0o\0t\0	Hangul (Korean) Word Processor File 2000
-!:mime	application/x-hwp
-
-# CosmicBook, from Beno�t Rouits
-0       string  CSBK    Ted Neslson's CosmicBook hypertext file
-
-2       string  EYWR    AmigaWriter file
-
-# chi:  file(1) magic for ChiWriter files
-0       string          \\1cw\          ChiWriter file
->5      string          >\0             version %s
-0       string          \\1cw           ChiWriter file
-
-# Quark Express from http://www.garykessler.net/library/file_sigs.html
-2	string	IIXPR3			Intel Quark Express Document (English)
-2	string	IIXPRa			Intel Quark Express Document (Korean)
-2	string	MMXPR3			Motorola Quark Express Document (English)
-!:mime	application/x-quark-xpress-3
-2	string	MMXPRa			Motorola Quark Express Document (Korean)
-
-# adobe indesign (document, whatever...) from querkan
-0	belong	0x0606edf5		Adobe InDesign
->16	string	DOCUMENT		Document
-
-#------------------------------------------------------------------------------
-# ichitaro456: file(1) magic for Just System Word Processor Ichitaro
-#
-# Contributor kenzo-:
-# Reversed-engineered JS Ichitaro magic numbers
-#
-
-0	string		DOC
->43	byte		0x14	Just System Word Processor Ichitaro v4
-!:mime	application/x-ichitaro4
->144	string	JDASH		application/x-ichitaro4
-
-0	string		DOC
->43	byte		0x15	Just System Word Processor Ichitaro v5
-!:mime	application/x-ichitaro5
-
-0	string		DOC
->43	byte		0x16	Just System Word Processor Ichitaro v6
-!:mime	application/x-ichitaro6
-
-# Type: Freemind mindmap documents
-# From: Jamie Thompson <debian-bugs@jamie-thompson.co.uk>
-0	string/cB	\<map\ version	Freemind document
-!:mime	application/x-freemind
-
-# Type:        Scribus
-# From:        Werner Fink <werner@suse.de>
-0	string	\<SCRIBUSUTF8\ Version		Scribus Document
-0	string	\<SCRIBUSUTF8NEW\ Version	Scribus Document
-!:mime	application/x-scribus
-
-#------------------------------------------------------------------------------
-# file(1) magic(5) data for xdelta  Josh MacDonald <jmacd@CS.Berkeley.EDU>
-#
-0	string	%XDELTA%	XDelta binary patch file 0.14
-0	string	%XDZ000%	XDelta binary patch file 0.18
-0	string	%XDZ001%	XDelta binary patch file 0.20
-0	string	%XDZ002%	XDelta binary patch file 1.0
-0	string	%XDZ003%	XDelta binary patch file 1.0.4
-0	string	%XDZ004%	XDelta binary patch file 1.1
-
-#------------------------------------------------------------------------------
-# xenix:  file(1) magic for Microsoft Xenix
-#
-# "Middle model" stuff, and "Xenix 8086 relocatable or 80286 small
-# model" lifted from "magic.xenix", with comment "derived empirically;
-# treat as folklore until proven"
-#
-# "small model", "large model", "huge model" stuff lifted from XXX
-#
-# XXX - "x.out" collides with PDP-11 archives
-#
-0	string		core		core file (Xenix)
-0	byte		0x80		8086 relocatable (Microsoft)
-0	leshort		0xff65		x.out
->2	string		__.SYMDEF	 randomized
->0	byte		x		archive
-0	leshort		0x206		Microsoft a.out
->8	leshort		1		Middle model
->0x1e	leshort		&0x10		overlay
->0x1e	leshort		&0x2		separate
->0x1e	leshort		&0x4		pure
->0x1e	leshort		&0x800		segmented
->0x1e	leshort		&0x400		standalone
->0x1e	leshort		&0x8		fixed-stack
->0x1c	byte		&0x80		byte-swapped
->0x1c	byte		&0x40		word-swapped
->0x10	lelong		>0		not-stripped
->0x1e	leshort		^0xc000		pre-SysV
->0x1e	leshort		&0x4000		V2.3
->0x1e	leshort		&0x8000		V3.0
->0x1c	byte		&0x4		86
->0x1c	byte		&0xb		186
->0x1c	byte		&0x9		286
->0x1c	byte		&0xa		386
->0x1f	byte		<0x040		small model
->0x1f	byte		=0x048		large model	
->0x1f	byte		=0x049		huge model 
->0x1e	leshort		&0x1		executable
->0x1e	leshort		^0x1		object file
->0x1e	leshort		&0x40		Large Text
->0x1e	leshort		&0x20		Large Data
->0x1e	leshort		&0x120		Huge Objects Enabled
->0x10	lelong		>0		not stripped
-
-0	leshort		0x140		old Microsoft 8086 x.out
->0x3	byte		&0x4		separate
->0x3	byte		&0x2		pure
->0	byte		&0x1		executable
->0	byte		^0x1		relocatable
->0x14	lelong		>0		not stripped
-
-0	lelong		0x206		b.out
->0x1e	leshort		&0x10		overlay
->0x1e	leshort		&0x2		separate
->0x1e	leshort		&0x4		pure
->0x1e	leshort		&0x800		segmented
->0x1e	leshort		&0x400		standalone
->0x1e	leshort		&0x1		executable
->0x1e	leshort		^0x1		object file
->0x1e	leshort		&0x4000		V2.3
->0x1e	leshort		&0x8000		V3.0
->0x1c	byte		&0x4		86
->0x1c	byte		&0xb		186
->0x1c	byte		&0x9		286
->0x1c	byte		&0x29		286
->0x1c	byte		&0xa		386
->0x1e	leshort		&0x4		Large Text
->0x1e	leshort		&0x2		Large Data
->0x1e	leshort		&0x102		Huge Objects Enabled
-
-0	leshort		0x580		XENIX 8086 relocatable or 80286 small model
-
-#------------------------------------------------------------------------------
-# This is Aaron's attempt at a MAGIC file for Xilinx .bit files.
-# Xilinx-Magic@RevRagnarok.com
-# Got the info from FPGA-FAQ 0026
-#
-# First there is the sync header and its length
-0	beshort 0x0009
->2 	belong	=0x0ff00ff0
->>&0	belong  =0x0ff00ff0
->>>&0	beshort =0x0000	
->>>>&0	pstring	a	Xilinx BIT data
-# Next is a Pascal-style string with the NCD name. We want to capture that.
->>>>0x0F	pstring	x	- from %s
-# It is followed by a NUL
->>>>>&1	byte	0x00
-# And then 'b'
->>>>>&2	string b
-# With the part number:
-#>>>>>&5 string	4v	(Virtex4)
-#>>>>>&5 string  2v	(Virtex II
-#>>>>>>&0	string	!p	\b)
-#>>>>>>&0	string	p	Pro)
->>>>>&4	pstring x	- for %s
-# And then NUL / 'c' / Build Data / NUL / 'd' / Date / NUL / 'e' / Data Length
->>>>>>&1	byte	0x00
->>>>>>&2	string	c
->>>>>>&4	pstring	x	- built %s
->>>>>>>&1	byte	0x00
->>>>>>>&2	string	d
->>>>>>>&4	pstring	x	\b(%s)
->>>>>>>>&1	byte	0x00
->>>>>>>>&2	string	e
->>>>>>>>&4	belong	x	- data length 0x%lx
-
-#------------------------------------------------------------------------------
-# xo65 object files
-# From: "Ullrich von Bassewitz" <uz@cc65.org>
-#
-0	string		\x55\x7A\x6E\x61	xo65 object,
->4	leshort		x			version %d,
->6	leshort&0x0001 =0x0001			with debug info
->6	leshort&0x0001 =0x0000			no debug info
-
-# xo65 library files
-0	string		\x6E\x61\x55\x7A	xo65 library,
->4	leshort		x			version %d
-
-# o65 object files
-0	string		\x01\x00\x6F\x36\x35	o65
->6	leshort&0x1000	=0x0000			executable,
->6	leshort&0x1000	=0x1000			object,
->5	byte		x			version %d,
->6	leshort&0x8000	=0x8000			65816,
->6	leshort&0x8000	=0x0000			6502,
->6	leshort&0x2000	=0x2000			32 bit,
->6	leshort&0x2000	=0x0000			16 bit,
->6	leshort&0x4000	=0x4000			page reloc,
->6	leshort&0x4000	=0x0000			byte reloc,
->6	leshort&0x0003	=0x0000			alignment 1
->6	leshort&0x0003	=0x0001			alignment 2
->6	leshort&0x0003	=0x0002			alignment 4
->6	leshort&0x0003	=0x0003			alignment 256
-
-#------------------------------------------------------------------------------
-# xwindows:  file(1) magic for various X/Window system file formats.
-
-# Compiled X Keymap 
-# XKM (compiled X keymap) files (including version and byte ordering)
-1	string	mkx				Compiled XKB Keymap: lsb,
->0	byte	>0				version %d
->0	byte	=0				obsolete
-0	string	xkm				Compiled XKB Keymap: msb,
->3	byte	>0				version %d
->0	byte	=0				obsolete
-
-# xfsdump archive
-0	string	xFSdump0			xfsdump archive
->8	belong	x	(version %d)
-
-# Jaleo XFS files
-0	long	395726				Jaleo XFS file
->4	long	x				- version %ld
->8	long	x				- [%ld -
->20	long	x				%ldx
->24	long	x				%ldx
->28	long	1008				YUV422]
->28	long	1000				RGB24]
-
-# Xcursor data
-# X11 mouse cursor format defined in libXcursor, see
-# http://www.x.org/archive/X11R6.8.1/doc/Xcursor.3.html
-# http://cgit.freedesktop.org/xorg/lib/libXcursor/tree/include/X11/Xcursor/Xcursor.h
-0	string		Xcur		Xcursor data
-!:mime	image/x-xcursor
->10	leshort		x		version %hd
->>8	leshort		x		\b.%hd
-
-#------------------------------------------------------------------------------
-# zilog:  file(1) magic for Zilog Z8000.
-#
-# Was it big-endian or little-endian?  My Product Specification doesn't
-# say.
-#
-0	long		0xe807		object file (z8000 a.out)
-0	long		0xe808		pure object file (z8000 a.out)
-0	long		0xe809		separate object file (z8000 a.out)
-0	long		0xe805		overlay object file (z8000 a.out)
-
-#------------------------------------------------------------------------------
-# zyxel:  file(1) magic for ZyXEL modems
-#
-# From <rob@pe1chl.ampr.org>
-# These are the /etc/magic entries to decode datafiles as used for the
-# ZyXEL U-1496E DATA/FAX/VOICE modems.  (This header conforms to a
-# ZyXEL-defined standard)
-
-0	string		ZyXEL\002	ZyXEL voice data
->10	byte		0		- CELP encoding
->10	byte&0x0B	1		- ADPCM2 encoding
->10	byte&0x0B	2		- ADPCM3 encoding
->10	byte&0x0B	3		- ADPCM4 encoding
->10	byte&0x0B	8		- New ADPCM3 encoding
->10	byte&0x04	4		with resync
diff --git a/cloudfiles/share/magic.mgc b/cloudfiles/share/magic.mgc
deleted file mode 100644
index 634b6349c47555faef6e39b9a58fba228eca2780..0000000000000000000000000000000000000000
Binary files a/cloudfiles/share/magic.mgc and /dev/null differ
diff --git a/cloudfiles/share/magic.mime b/cloudfiles/share/magic.mime
deleted file mode 100644
index acfede24770011468151d4ef5f067b5125a09503..0000000000000000000000000000000000000000
--- a/cloudfiles/share/magic.mime
+++ /dev/null
@@ -1,1027 +0,0 @@
-# Magic data for KMimeMagic (originally for file(1) command)
-#
-# Note on adding additional MIME types:
-#
-# [RFC2045,RFC2046] specifies that Content Types, Content Subtypes, Character
-# Sets, Access Types, and conversion values for MIME mail will be assigned and
-# listed by the IANA.
-# http://www.iana.org/assignments/media-types/
-#
-# Any unregistered file type should be listed with a preceding x-, as in
-# application/x-foo (RFC2045 5.1), or a x., as in application/x.foo (RFC4288
-# 4.3).  Any non x-prefixed type should be registered with IANA and listed at
-# the above address.  Any other behavior is a MIME standards violation!
-#
-# It is preferred that when a registered MIME type exists, that
-# the registered Content-Type and Subtype be used to refer to a file of
-# that type, so don't use application/x-zip when application/zip is
-# registered.
-#
-# If an active RFC suggests that a MIME registration for a new type is in
-# progress, make a note of it pointing to that RFC.
-#
-# The format is 4-5 columns:
-#    Column #1: byte number to begin checking from, ">" indicates continuation
-#    Column #2: type of data to match
-#    Column #3: contents of data to match
-#    Column #4: MIME type of result
-#    Column #5: MIME encoding of result (optional)
-
-#------------------------------------------------------------------------------
-# Localstuff:  file(1) magic for locally observed files
-# Add any locally observed files here.
-
-# Real Audio (Magic .ra\0375)
-0	belong		0x2e7261fd	audio/x-pn-realaudio
-0	string		.RMF		application/vnd.rn-realmedia
-
-#video/x-pn-realvideo
-#video/vnd.rn-realvideo
-#application/vnd.rn-realmedia
-#	sigh, there are many mimes for that but the above are the most common.
-
-# Taken from magic, converted to magic.mime
-# mime types according to http://www.geocities.com/nevilo/mod.htm:
-#	audio/it	.it
-#	audio/x-zipped-it	.itz
-#	audio/xm	fasttracker modules
-#	audio/x-s3m	screamtracker modules
-#	audio/s3m	screamtracker modules
-#	audio/x-zipped-mod	mdz
-#	audio/mod	mod
-#	audio/x-mod	All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z)
-
-# Taken from loader code from mikmod version 2.14
-# by Steve McIntyre (stevem@chiark.greenend.org.uk)
-# <doj@cubic.org> added title printing on 2003-06-24
-0	string	MAS_UTrack_V00
->14	string	>/0		audio/x-mod
-#audio/x-tracker-module
-
-#0	string	UN05		MikMod UNI format module sound data
-
-0	string	Extended\ Module: audio/x-mod
-#audio/x-tracker-module
-##>17	string	>\0		Title: "%s"
-
-21	string/c	\!SCREAM!	audio/x-mod
-#audio/x-screamtracker-module
-21	string	BMOD2STM	audio/x-mod
-#audio/x-screamtracker-module
-1080	string	M.K.		audio/x-mod
-#audio/x-protracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	M!K!		audio/x-mod
-#audio/x-protracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	FLT4		audio/x-mod
-#audio/x-startracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	FLT8		audio/x-mod
-#audio/x-startracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	4CHN		audio/x-mod
-#audio/x-fasttracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	6CHN		audio/x-mod
-#audio/x-fasttracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	8CHN		audio/x-mod
-#audio/x-fasttracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	CD81		audio/x-mod
-#audio/x-oktalyzer-tracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	OKTA		audio/x-mod
-#audio/x-oktalyzer-tracker-module
-#>0	string	>\0		Title: "%s"
-# Not good enough.
-#1082	string	CH
-#>1080	string	>/0		%.2s-channel Fasttracker "oktalyzer" module sound data
-1080	string	16CN		audio/x-mod
-#audio/x-taketracker-module
-#>0	string	>\0		Title: "%s"
-1080	string	32CN		audio/x-mod
-#audio/x-taketracker-module
-#>0	string	>\0		Title: "%s"
-
-# Impuse tracker module (it)
-0	string		IMPM		audio/x-mod
-#>4	string		>\0		"%s"
-#>40	leshort		!0		compatible w/ITv%x
-#>42	leshort		!0		created w/ITv%x
-
-#------------------------------------------------------------------------------
-# end local stuff
-#------------------------------------------------------------------------------
-
-# xml based formats!
-
-# svg
-
-38	string		\<\!DOCTYPE\040svg	image/svg+xml
-
-0	belong		0xfeedfeed	application/x-java-keystore
-
-0	belong		0xcececece	application/x-java-jce-keystore
-
-
-# xml
-0	string		\<?xml			text/xml
-
-
-#------------------------------------------------------------------------------
-# Java
-
-0	beshort		0xcafe
->2	beshort		0xbabe		application/x-java-applet
->2	beshort		0xd00d		application/x-java-pack200
-
-#------------------------------------------------------------------------------
-# audio:  file(1) magic for sound formats
-#
-# from Jan Nicolai Langfeldt <janl@ifi.uio.no>,
-#
-
-# Sun/NeXT audio data
-0	string		.snd
->12	belong		1		audio/basic
->12	belong		2		audio/basic
->12	belong		3		audio/basic
->12	belong		4		audio/basic
->12	belong		5		audio/basic
->12	belong		6		audio/basic
->12	belong		7		audio/basic
-
->12	belong		23		audio/x-adpcm
-
-# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
-# that uses little-endian encoding and has a different magic number
-# (0x0064732E in little-endian encoding).
-0	lelong		0x0064732E
->12	lelong		1		audio/x-dec-basic
->12	lelong		2		audio/x-dec-basic
->12	lelong		3		audio/x-dec-basic
->12	lelong		4		audio/x-dec-basic
->12	lelong		5		audio/x-dec-basic
->12	lelong		6		audio/x-dec-basic
->12	lelong		7		audio/x-dec-basic
-#                                       compressed (G.721 ADPCM)
->12	lelong		23		audio/x-dec-adpcm
-
-# Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM"
-#					AIFF audio data
-8	string		AIFF		audio/x-aiff
-#					AIFF-C audio data
-8	string		AIFC		audio/x-aiff
-#					IFF/8SVX audio data
-8	string		8SVX		audio/x-aiff
-
-
-
-# Creative Labs AUDIO stuff
-#					Standard MIDI data
-0	string	MThd			audio/x-midi
-#>9 	byte	>0			(format %d)
-#>11	byte	>1			using %d channels
-0	string	MThd			audio/midi
-#					Creative Music (CMF) data
-0	string	CTMF			audio/x-unknown
-#					SoundBlaster instrument data
-0	string	SBI			audio/x-unknown
-#					Creative Labs voice data
-0	string	Creative\ Voice\ File	audio/x-unknown
-## is this next line right?  it came this way...
-#>19	byte	0x1A
-#>23	byte	>0			- version %d
-#>22	byte	>0			\b.%d
-
-# [GRR 950115:  is this also Creative Labs?  Guessing that first line
-#  should be string instead of unknown-endian long...]
-#0	long		0x4e54524b	MultiTrack sound data
-#0	string		NTRK		MultiTrack sound data
-#>4	long		x		- version %ld
-
-# Microsoft WAVE format (*.wav)
-# [GRR 950115:  probably all of the shorts and longs should be leshort/lelong]
-#					Microsoft RIFF
-0	string		RIFF
-#					- WAVE format
->8	string		WAVE		audio/x-wav
->8	string/B	AVI		video/x-msvideo
-#
->8 	string		CDRA		image/x-coreldraw
-
-# AAC (aka MPEG-2 NBC)
-0       beshort&0xfff6    0xfff0          audio/X-HX-AAC-ADTS
-0       string          ADIF            audio/X-HX-AAC-ADIF
-0       beshort&0xffe0  0x56e0          audio/MP4A-LATM
-0       beshort         0x4De1          audio/MP4A-LATM
-
-# MPEG Layer 3 sound files
-# modified by Joerg Jenderek
-# GRR the original test are too common for many DOS files
-# so test 1 <= kbits nibble <= E
-0       beshort		&0xffe0		
->2	ubyte&0xF0	>0x0F		
->>2	ubyte&0xF0	<0xE1		audio/mpeg
-#MP3 with ID3 tag
-0	string		ID3		audio/mpeg
-# Ogg/Vorbis
-0	string		OggS		application/ogg
-
-#------------------------------------------------------------------------------
-# c-lang:  file(1) magic for C programs or various scripts
-#
-
-# XPM icons (Greg Roelofs, newt@uchicago.edu)
-# ideally should go into "images", but entries below would tag XPM as C source
-0	string		/*\ XPM		image/x-xpmi
-
-# 3DS (3d Studio files) Conflicts with diff output 0x3d '='
-#16	beshort		0x3d3d		image/x-3ds
-
-# this first will upset you if you're a PL/1 shop... (are there any left?)
-# in which case rm it; ascmagic will catch real C programs
-#					C or REXX program text
-#0	string		/*		text/x-c
-#					C++ program text
-#0	string		//		text/x-c++
-
-#------------------------------------------------------------------------------
-# commands:  file(1) magic for various shells and interpreters
-#
-#0       string          :\ shell archive or commands for antique kernel text
-0       string          #!/bin/sh               application/x-shellscript
-0       string          #!\ /bin/sh             application/x-shellscript
-0       string          #!/bin/csh              application/x-shellscript
-0       string          #!\ /bin/csh            application/x-shellscript
-# korn shell magic, sent by George Wu, gwu@clyde.att.com
-0       string          #!/bin/ksh              application/x-shellscript
-0       string          #!\ /bin/ksh            application/x-shellscript
-0       string          #!/bin/tcsh             application/x-shellscript
-0       string          #!\ /bin/tcsh           application/x-shellscript
-0       string          #!/usr/local/tcsh       application/x-shellscript
-0       string          #!\ /usr/local/tcsh     application/x-shellscript
-0       string          #!/usr/local/bin/tcsh   application/x-shellscript
-0       string          #!\ /usr/local/bin/tcsh application/x-shellscript
-# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
-0       string          #!/bin/bash     		application/x-shellscript
-0       string          #!\ /bin/bash           application/x-shellscript
-0       string          #!/usr/local/bin/bash   application/x-shellscript
-0       string          #!\ /usr/local/bin/bash application/x-shellscript
-
-#
-# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
-0       string          #!/bin/zsh	        application/x-shellscript
-0       string          #!/usr/bin/zsh	        application/x-shellscript
-0       string          #!/usr/local/bin/zsh    application/x-shellscript
-0       string          #!\ /usr/local/bin/zsh  application/x-shellscript
-0       string          #!/usr/local/bin/ash    application/x-shellscript
-0       string          #!\ /usr/local/bin/ash  application/x-shellscript
-#0       string          #!/usr/local/bin/ae     Neil Brown's ae
-#0       string          #!\ /usr/local/bin/ae   Neil Brown's ae
-0       string          #!/bin/nawk             application/x-nawk
-0       string          #!\ /bin/nawk           application/x-nawk
-0       string          #!/usr/bin/nawk         application/x-nawk
-0       string          #!\ /usr/bin/nawk       application/x-nawk
-0       string          #!/usr/local/bin/nawk   application/x-nawk
-0       string          #!\ /usr/local/bin/nawk application/x-nawk
-0       string          #!/bin/gawk             application/x-gawk
-0       string          #!\ /bin/gawk           application/x-gawk
-0       string          #!/usr/bin/gawk         application/x-gawk
-0       string          #!\ /usr/bin/gawk       application/x-gawk
-0       string          #!/usr/local/bin/gawk   application/x-gawk
-0       string          #!\ /usr/local/bin/gawk application/x-gawk
-#
-0       string          #!/bin/awk              application/x-awk
-0       string          #!\ /bin/awk            application/x-awk
-0       string          #!/usr/bin/awk          application/x-awk
-0       string          #!\ /usr/bin/awk        application/x-awk
-# update to distinguish from *.vcf files by Joerg Jenderek: joerg dot jenderek at web dot de
-# Too general, \EBEGIN matches in postscript
-#0	regex		BEGIN[[:space:]]*[{]	application/x-awk
-
-# For Larry Wall's perl language.  The ``eval'' line recognizes an
-# outrageously clever hack for USG systems.
-#                               Keith Waclena <keith@cerberus.uchicago.edu>
-0       string          #!/bin/perl                     application/x-perl
-0       string          #!\ /bin/perl                   application/x-perl
-0       string          eval\ "exec\ /bin/perl          application/x-perl
-0       string          #!/usr/bin/perl                 application/x-perl
-0       string          #!\ /usr/bin/perl               application/x-perl
-0       string          eval\ "exec\ /usr/bin/perl      application/x-perl
-0       string          #!/usr/local/bin/perl           application/x-perl
-0       string          #!\ /usr/local/bin/perl         application/x-perl
-0       string          eval\ "exec\ /usr/local/bin/perl application/x-perl
-
-# Type: Lua scripting language
-# URL:  http://www.lua.org/
-# From: Reuben Thomas <rrt@sc3d.org>
-0	string/B	#!\ /usr/bin/lua	application/x-lua
-0	string/B	#!\ /usr/local/bin/lua	application/x-lua
-0	string		#!/usr/bin/env\ lua	application/x-lua
-0	string		#!\ /usr/bin/env\ lua	application/x-lua
-
-#------------------------------------------------------------------------------
-# compress:  file(1) magic for pure-compression formats (no archives)
-#
-# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc.
-#
-# Formats for various forms of compressed data
-# Formats for "compress" proper have been moved into "compress.c",
-# because it tries to uncompress it to figure out what's inside.
-
-# standard unix compress
-#0	string		\037\235	application/x-compress
-
-# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
-0       string          \037\213        application/x-gzip
-
-0		string			PK\003\004		application/zip
-
-# RAR archiver (Greg Roelofs, newt@uchicago.edu)
-0	string		Rar!		application/x-rar
-
-# According to gzip.h, this is the correct byte order for packed data.
-0	string		\037\036	application/octet-stream
-#
-# This magic number is byte-order-independent.
-#
-0	short		017437		application/octet-stream
-
-# XXX - why *two* entries for "compacted data", one of which is
-# byte-order independent, and one of which is byte-order dependent?
-#
-# compacted data
-0	short		0x1fff		application/octet-stream
-0	string		\377\037	application/octet-stream
-# huf output
-0	short		0145405		application/octet-stream
-
-# Squeeze and Crunch...
-# These numbers were gleaned from the Unix versions of the programs to
-# handle these formats.  Note that I can only uncrunch, not crunch, and
-# I didn't have a crunched file handy, so the crunch number is untested.
-#				Keith Waclena <keith@cerberus.uchicago.edu>
-#0	leshort		0x76FF		squeezed data (CP/M, DOS)
-#0	leshort		0x76FE		crunched data (CP/M, DOS)
-
-# Freeze
-#0	string		\037\237	Frozen file 2.1
-#0	string		\037\236	Frozen file 1.0 (or gzip 0.5)
-
-# lzh?
-#0	string		\037\240	LZH compressed data
-
-257	string		ustar\0		application/x-tar	posix
-257	string		ustar\040\040\0		application/x-tar	gnu
-
-0	short		070707		application/x-cpio
-0	short		0143561		application/x-cpio	swapped
-
-0	string		=<ar>		application/x-archive
-0	string		\!<arch>	application/x-archive
->8	string		debian		application/x-debian-package
-
-#------------------------------------------------------------------------------
-#
-# RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
-#
-0       beshort         0xedab
->2      beshort         0xeedb          application/x-rpm
-
-0	lelong&0x8080ffff	0x0000081a	application/x-arc	lzw
-0	lelong&0x8080ffff	0x0000091a	application/x-arc	squashed
-0	lelong&0x8080ffff	0x0000021a	application/x-arc	uncompressed
-0	lelong&0x8080ffff	0x0000031a	application/x-arc	packed
-0	lelong&0x8080ffff	0x0000041a	application/x-arc	squeezed
-0	lelong&0x8080ffff	0x0000061a	application/x-arc	crunched
-
-0	leshort	0xea60	application/x-arj
-
-# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
-2	string	-lh0-	application/x-lharc	lh0
-2	string	-lh1-	application/x-lharc	lh1
-2	string	-lz4-	application/x-lharc	lz4
-2	string	-lz5-	application/x-lharc	lz5
-#	[never seen any but the last; -lh4- reported in comp.compression:]
-2	string	-lzs-	application/x-lha	lzs
-2	string	-lh\ -	application/x-lha	lh
-2	string	-lhd-	application/x-lha	lhd
-2	string	-lh2-	application/x-lha	lh2
-2	string	-lh3-	application/x-lha	lh3
-2	string	-lh4-	application/x-lha	lh4
-2	string	-lh5-	application/x-lha	lh5
-2	string	-lh6-	application/x-lha	lh6
-2	string	-lh7-	application/x-lha	lh7
-# Shell archives
-10	string	#\ This\ is\ a\ shell\ archive	application/octet-stream	x-shell
-
-#------------------------------------------------------------------------------
-# frame:  file(1) magic for FrameMaker files
-#
-# This stuff came on a FrameMaker demo tape, most of which is
-# copyright, but this file is "published" as witness the following:
-#
-# Note that this is the Framemaker Maker Interchange Format, not the
-# Normal format which would be application/vnd.framemaker.
-#
-0	string		\<MakerFile	application/x-mif
-0	string		\<MIFFile	application/x-mif
-0	string		\<MakerDictionary	application/x-mif
-0	string		\<MakerScreenFon	application/x-mif
-0	string		\<MML		application/x-mif
-0	string		\<Book		application/x-mif
-0	string		\<Maker		application/x-mif
-
-#------------------------------------------------------------------------------
-# html:  file(1) magic for HTML (HyperText Markup Language) docs
-#
-# from Michael Piefel <piefel@debian.org>
-#
-0	string/cB	\<!DOCTYPE\ html	text/html
-0	string/cb	\<head			text/html
-0	string/cb	\<title			text/html
-0	string/bc	\<html			text/html
-0	string		\<!--			text/html
-0	string/c	\<h1			text/html
-
-#------------------------------------------------------------------------------
-# images:  file(1) magic for image formats (see also "c-lang" for XPM bitmaps)
-#
-# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
-# additions by janl@ifi.uio.no as well as others. Jan also suggested
-# merging several one- and two-line files into here.
-#
-# XXX - byte order for GIF and TIFF fields?
-# [GRR:  TIFF allows both byte orders; GIF is probably little-endian]
-#
-
-# [GRR:  what the hell is this doing in here?]
-#0	string		xbtoa		btoa'd file
-
-# PBMPLUS
-#					PBM file
-0	string		P1		image/x-portable-bitmap
-#					PGM file
-0	string		P2		image/x-portable-greymap
-#					PPM file
-0	string		P3		image/x-portable-pixmap
-#					PBM "rawbits" file
-0	string		P4		image/x-portable-bitmap
-#					PGM "rawbits" file
-0	string		P5		image/x-portable-greymap
-#					PPM "rawbits" file
-0	string		P6		image/x-portable-pixmap
-
-# NIFF (Navy Interchange File Format, a modification of TIFF)
-# [GRR:  this *must* go before TIFF]
-0	string		IIN1		image/x-niff
-
-# TIFF and friends
-#					TIFF file, big-endian
-0	string		MM		image/tiff
-#					TIFF file, little-endian
-0	string		II		image/tiff
-
-# possible GIF replacements; none yet released!
-# (Greg Roelofs, newt@uchicago.edu)
-#
-# GRR 950115:  this was mine ("Zip GIF"):
-#					ZIF image (GIF+deflate alpha)
-0	string		GIF94z		image/x-unknown
-#
-# GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
-#					FGF image (GIF+deflate beta)
-0	string		FGF95a		image/x-unknown
-#
-# GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
-# (best; not yet implemented):
-#					PBF image (deflate compression)
-0	string		PBF		image/x-unknown
-
-# GIF
-0	string		GIF		image/gif
-
-# JPEG images
-0	beshort		0xffd8		image/jpeg
-
-# PC bitmaps (OS/2, Windoze BMP files)  (Greg Roelofs, newt@uchicago.edu)
-0	string		BM		image/x-ms-bmp
-#>14	byte		12		(OS/2 1.x format)
-#>14	byte		64		(OS/2 2.x format)
-#>14	byte		40		(Windows 3.x format)
-#0	string		IC		icon
-#0	string		PI		pointer
-#0	string		CI		color icon
-#0	string		CP		color pointer
-#0	string		BA		bitmap array
-
-# CDROM Filesystems
-32769    string    CD001     application/x-iso9660-image
-
-# Newer StuffIt archives (grant@netbsd.org)
-0	string		StuffIt			application/x-stuffit
-#>162	string		>0			: %s
-
-# BinHex is the Macintosh ASCII-encoded file format (see also "apple")
-# Daniel Quinlan, quinlan@yggdrasil.com
-11	string	must\ be\ converted\ with\ BinHex\ 4	application/mac-binhex40
-##>41	string	x					\b, version %.3s
-
-
-#------------------------------------------------------------------------------
-# lisp:  file(1) magic for lisp programs
-#
-# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	string	;;			text/plain
-# Emacs 18 - this is always correct, but not very magical.
-0	string	\012(			application/x-elc
-# Emacs 19
-0	string	;ELC\023\000\000\000	application/x-elc
-
-#------------------------------------------------------------------------------
-# mail.news:  file(1) magic for mail and news
-#
-# There are tests to ascmagic.c to cope with mail and news.
-0	string		Relay-Version: 	message/rfc822
-0	string		#!\ rnews	message/rfc822
-0	string		N#!\ rnews	message/rfc822
-0	string		Forward\ to 	message/rfc822
-0	string		Pipe\ to 	message/rfc822
-0	string		Return-Path:	message/rfc822
-0	string		Received:	message/rfc822
-0	string		Path:		message/news
-0	string		Xref:		message/news
-0	string		From:		message/rfc822
-0	string		Article 	message/news
-#------------------------------------------------------------------------------
-# msword: file(1) magic for MS Word files
-#
-# Contributor claims:
-# Reversed-engineered MS Word magic numbers
-#
-
-0	string		\376\067\0\043			application/msword
-# disable this one because it applies also to other
-# Office/OLE documents for which msword is not correct. See PR#2608.
-# from magic file of the apache
-#0	string		\320\317\021\340\241\261	application/msword
-512	string		\354\245\301			application/msword
-0	string		\333\245-\0\0\0			application/msword
-
-
-
-#------------------------------------------------------------------------------
-# printer:  file(1) magic for printer-formatted files
-#
-
-# PostScript
-0	string		%!		application/postscript
-0	string		\004%!		application/postscript
-
-# Acrobat
-# (due to clamen@cs.cmu.edu)
-0	string		%PDF-		application/pdf
-
-#------------------------------------------------------------------------------
-# sc:  file(1) magic for "sc" spreadsheet
-#
-38	string		Spreadsheet	application/x-sc
-
-#------------------------------------------------------------------------------
-# tex:  file(1) magic for TeX files
-#
-# XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
-#
-# From <conklin@talisman.kaleida.com>
-
-# Although we may know the offset of certain text fields in TeX DVI
-# and font files, we can't use them reliably because they are not
-# zero terminated. [but we do anyway, christos]
-0	string		\367\002	application/x-dvi
-#0	string		\367\203	TeX generic font data
-#0	string		\367\131	TeX packed font data
-#0	string		\367\312	TeX virtual font data
-#0	string		This\ is\ TeX,	TeX transcript text
-#0	string		This\ is\ METAFONT,	METAFONT transcript text
-
-# There is no way to detect TeX Font Metric (*.tfm) files without
-# breaking them apart and reading the data.  The following patterns
-# match most *.tfm files generated by METAFONT or afm2tfm.
-2	string		\000\021	application/x-tex-tfm
-2	string		\000\022	application/x-tex-tfm
-#>34	string		>\0		(%s)
-
-# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	string		\\input\ texinfo		text/x-texinfo
-0	string		This\ is\ Info\ file	text/x-info
-
-# correct TeX magic for Linux (and maybe more)
-# from Peter Tobias (tobias@server.et-inf.fho-emden.de)
-#
-0	leshort		0x02f7		application/x-dvi
-
-# RTF - Rich Text Format
-0	string		{\\rtf		text/rtf
-
-# TeX documents, from Daniel Quinlan (quinlan@yggdrasil.com)
-0	search/400	\\input		text/x-tex
-0	search/400	\\section	text/x-tex
-0	search/400	\\setlength	text/x-tex
-0	search/400	\\documentstyle	text/x-tex
-0	search/400	\\chapter	text/x-tex
-0	search/400	\\documentclass	text/x-tex
-
-# Type: Inform interactive fiction language
-# URL:  http://www.inform-fiction.org/
-# From: Reuben Thomas <rrt@sc3d.org>
-0	regex		[Cc]onstant[[:space:]]+[Ss]tory	text/x-inform
-
-#------------------------------------------------------------------------------
-# animation:  file(1) magic for animation/movie formats
-#
-# animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8)
-#						MPEG file
-# MPEG sequences
-0       belong             0x000001BA
->4      byte               &0x40          video/mp2p
->4      byte               ^0x40          video/mpeg
-0       belong             0x000001BB     video/mpeg
-0       belong             0x000001B0     video/mp4v-es
-0       belong             0x000001B5     video/mp4v-es
-0       belong             0x000001B3     video/mpv
-0       belong&0xFF5FFF1F  0x47400010     video/mp2t
-0       belong             0x00000001
->4      byte&0x1F	   0x07           video/h264
-
-# FLI animation format
-0	leshort		0xAF11				video/x-fli
-# FLC animation format
-0	leshort		0xAF12				video/x-flc
-#
-# SGI and Apple formats
-# Added ISO mimes
-0	string		MOVI	      video/x-sgi-movie
-4	string		moov	      video/quicktime
-4	string		mdat	      video/quicktime
-4	string		wide	      video/quicktime
-4	string		skip	      video/quicktime
-4	string		free	      video/quicktime
-4	string		idsc	      image/x-quicktime
-4	string		idat	      image/x-quicktime
-4	string		pckg	      application/x-quicktime-player
-4	string/B	jP	      image/jp2
-4	string		ftyp
->8	string		isom	      video/mp4
->8	string		mp41	      video/mp4
->8	string		mp42	      video/mp4
->8	string/B	jp2	      image/jp2
->8	string		3gp	      video/3gpp
->8      string          avc1          video/3gpp
->8	string		mmp4	      video/mp4
->8	string/B	M4A	      audio/mp4
->8	string/B	M4V	      video/mp4
->8	string/B	qt	      video/quicktime
-# The contributor claims:
-#   I couldn't find a real magic number for these, however, this
-#   -appears- to work.  Note that it might catch other files, too,
-#   so BE CAREFUL!
-#
-# Note that title and author appear in the two 20-byte chunks
-# at decimal offsets 2 and 22, respectively, but they are XOR'ed with
-# 255 (hex FF)! DL format SUCKS BIG ROCKS.
-#
-#						DL file version 1 , medium format (160x100, 4 images/screen)
-0	byte		1			video/x-unknown
-0	byte		2			video/x-unknown
-#
-# Databases
-#
-# GDBM magic numbers
-#  Will be maintained as part of the GDBM distribution in the future.
-#  <downsj@teeny.org>
-0       belong  0x13579ace      application/x-gdbm
-0       lelong  0x13579ace      application/x-gdbm
-0       string  GDBM            application/x-gdbm
-#
-0       belong  0x061561        application/x-dbm
-#
-# Executables
-#
-0	string		\177ELF
->16	leshort		0		application/octet-stream
->16	leshort		1		application/x-object
->16	leshort		2		application/x-executable
->16	leshort		3		application/x-sharedlib
->16	leshort		4		application/x-coredump
->16	beshort		0		application/octet-stream
->16	beshort		1		application/x-object
->16	beshort		2		application/x-executable
->16	beshort		3		application/x-sharedlib
->16	beshort		4		application/x-coredump
-#
-# DOS
-0		string			MZ				application/x-dosexec
-#
-# KDE
-0		string	[KDE\ Desktop\ Entry]	application/x-kdelnk
-0		string	#\ KDE\ Config\ File	application/x-kdelnk
-# xmcd database file for kscd
-0		string	#\ xmcd                text/x-xmcd
-
-#------------------------------------------------------------------------------
-# pkgadd:  file(1) magic for SysV R4 PKG Datastreams
-#
-0       string          #\ PaCkAgE\ DaTaStReAm  application/x-svr4-package
-
-#PNG Image Format
-0	string		\x89PNG			image/png
-
-# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
-0	string		\x8aMNG			video/x-mng
-0	string		\x8aJNG			video/x-jng
-
-#------------------------------------------------------------------------------
-# Hierarchical Data Format, used to facilitate scientific data exchange
-# specifications at http://hdf.ncsa.uiuc.edu/
-#Hierarchical Data Format (version 4) data
-0	belong		0x0e031301		application/x-hdf
-#Hierarchical Data Format (version 5) data
-0	string		\211HDF\r\n\032		application/x-hdf
-
-# Adobe Photoshop
-0	string		8BPS			image/vnd.adobe.photoshop
-
-# Felix von Leitner <felix-file@fefe.de>
-0	string		d8:announce		application/x-bittorrent
-
-
-# lotus 1-2-3 document
-0	belong	0x00001a00	application/x-123
-0	belong	0x00000200 	application/x-123
-
-# MS Access database
-4	string	Standard\ Jet\ DB	application/x-msaccess
-
-## magic for XBase files
-#0      byte       0x02
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x03
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x04
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x05
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x30
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x43
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x7b
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x83
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x8b
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0x8e
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0xb3
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0      byte       0xf5
-#>8     leshort	  >0
-#>>12   leshort    0	application/x-dbf
-#
-#0	leshort		0x0006		application/x-dbt
-
-# Debian has entries for the old PGP formats:
-# pgp:  file(1) magic for Pretty Good Privacy
-# see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html
-#0       beshort         0x9900                  application/x-pgp-keyring
-#0       beshort         0x9501                  application/x-pgp-keyring
-#0       beshort         0x9500                  application/x-pgp-keyring
-#0       beshort         0xa600                  application/pgp-encrypted
-#0       string          -----BEGIN\040PGP       text/PGP armored data
-#>15     string          PUBLIC\040KEY\040BLOCK- public key block
-#>15     string          MESSAGE-                message
-#>15     string          SIGNED\040MESSAGE-      signed message
-#>15     string          PGP\040SIGNATURE-       signature
-#0       beshort         0x8501                  data
-#text/PGP key public ring
-0	beshort		0x9900		application/pgp
-#text/PGP key security ring
-0	beshort		0x9501		application/pgp
-#text/PGP key security ring
-0	beshort		0x9500		application/pgp
-#text/PGP encrypted data
-0	beshort		0xa600		application/pgp-encrypted
-#text/PGP armored data
-##public key block
-2	string	---BEGIN\ PGP\ PUBLIC\ KEY\ BLOCK-	application/pgp-keys
-0	string	-----BEGIN\040PGP\40MESSAGE-		application/pgp
-0	string	-----BEGIN\040PGP\40SIGNATURE-		application/pgp-signature
-
-#
-# GnuPG Magic:
-#
-#0       beshort         0x9901                  application/x-gnupg-keyring
-#0       beshort         0x8501                  text/OpenPGP data
-#text/GnuPG key public ring
-0	beshort		0x9901		application/pgp
-#text/OpenPGP data
-0	beshort		0x8501		application/pgp-encrypted
-
-# flash:        file(1) magic for Macromedia Flash file format
-#
-# See
-#
-#       http://www.macromedia.com/software/flash/open/
-#
-0	string		FWS
->3	byte		x			application/x-shockwave-flash
-# Flash Video
-0	string		FLV			video/x-flv
-
-
-# The following paramaters are created for Namazu.
-# <http://www.namazu.org/>
-#
-# 1999/08/13
-#0	string		\<!--\ MHonArc		text/html; x-type=mhonarc
-0	string		BZh			application/x-bzip2
-
-# 1999/09/09
-# VRML (suggested by Masao Takaku)
-0	string		#VRML\ V1.0\ ascii	model/vrml
-0	string		#VRML\ V2.0\ utf8	model/vrml
-
-#------------------------------------------------------------------------------
-# ichitaro456: file(1) magic for Just System Word Processor Ichitaro
-#
-# Contributor kenzo-:
-# Reversed-engineered JS Ichitaro magic numbers
-#
-
-0	string		DOC
->43	byte		0x14		application/x-ichitaro4
->144	string	JDASH		application/x-ichitaro4
-
-0	string		DOC
->43	byte		0x15		application/x-ichitaro5
-
-0	string		DOC
->43	byte		0x16		application/x-ichitaro6
-
-#------------------------------------------------------------------------------
-# office97: file(1) magic for MicroSoft Office files
-#
-# Contributor kenzo-:
-# Reversed-engineered MS Office magic numbers
-#
-
-#0       string          \320\317\021\340\241\261\032\341
-#>48     byte            0x1B            application/excel
-
-2080	string	Microsoft\ Excel\ 5.0\ Worksheet	application/vnd.ms-excel
-2114	string	Biff5					application/vnd.ms-excel
-
-0       string	\224\246\056		application/msword
-
-0	belong	0x31be0000		application/msword
-
-0	string	PO^Q`			application/msword
-
-0	string	\320\317\021\340\241\261\032\341
->546	string	bjbj			application/msword
->546	string	jbjb			application/msword
-
-512	string	R\0o\0o\0t\0\ \0E\0n\0t\0r\0y	application/msword
-
-2080	string	Microsoft\ Word\ 6.0\ Document	application/msword
-2080	string	Documento\ Microsoft\ Word\ 6	application/msword
-2112	string	MSWordDoc			application/msword
-
-#0	string	\320\317\021\340\241\261\032\341	application/powerpoint
-0	string	\320\317\021\340\241\261\032\341	application/msword
-
-0       string  #\ PaCkAgE\ DaTaStReAm  application/x-svr4-package
-
-
-# WinNT/WinCE PE files (Warner Losh, imp@village.org)
-#
-128		string	PE\000\000	application/octet-stream
-0		string	PE\000\000	application/octet-stream
-
-# miscellaneous formats
-0		string	LZ		application/octet-stream
-
-# DOS device drivers by Joerg Jenderek
-0	belong		0xffffffff	application/octet-stream
-
-# .EXE formats (Greg Roelofs, newt@uchicago.edu)
-#
-0		string	MZ
->24		string	@		application/octet-stream
-
-0		string	MZ
->30		string	Copyright\ 1989-1990\ PKWARE\ Inc.	application/zip
-
-0		string	MZ
->30		string	PKLITE\ Copr.	application/zip
-
-0		string	MZ
->36		string	LHa's\ SFX	application/x-lha
-
-0		string	MZ		application/octet-stream
-
-# LHA archiver
-2		string	-lh
->6		string	-		application/x-lha
-
-
-# Zoo archiver
-20		lelong	0xfdc4a7dc	application/x-zoo
-
-# ARC archiver
-0       	lelong&0x8080ffff	0x0000081a	application/x-arc
-0		lelong&0x8080ffff	0x0000091a	application/x-arc
-0		lelong&0x8080ffff	0x0000021a	application/x-arc
-0		lelong&0x8080ffff	0x0000031a	application/x-arc
-0		lelong&0x8080ffff	0x0000041a	application/x-arc
-0		lelong&0x8080ffff	0x0000061a	application/x-arc
-
-# Microsoft Outlook's Transport Neutral Encapsulation Format (TNEF)
-0		lelong	0x223e9f78	application/vnd.ms-tnef
-
-# From: stephane.loeuillet@tiscali.f
-# http://www.djvuzone.org/
-0	string		AT&TFORM	image/vnd.djvu
-
-# Danny Milosavljevic <danny.milo@gmx.net>
-# this are adrift (adventure game standard) game files, extension .taf
-# depending on version magic continues with 0x93453E6139FA (V 4.0)
-# 0x9445376139FA (V 3.90)
-# 0x9445366139FA (V 3.80)
-# this is from source (http://www.adrift.org.uk/) and I have some taf
-# files, and checked them.
-#0	belong	0x3C423FC9
-#>4	belong	0x6A87C2CF	application/x-adrift
-#0	string	\000\000\001\000	image/x-ico
-
-# Quark Xpress 3 Files:
-# (made the mimetype up)
-0	string	\0\0MMXPR3\0	application/x-quark-xpress-3
-
-# EET archive
-# From: Tilman Sauerbeck <tilman@code-monkey.de>
-0	belong	0x1ee7ff00	application/x-eet
-
-# From: Denis Knauf, via gentoo.
-0	string	fLaC		audio/x-flac
-0	string	CWS		application/x-shockwave-flash
-
-# Hangul Document Files:
-# Reversed-engineered HWP magic numbers
-# From: Won-Kyu Park <wkpark@kldp.org>
-512	string		R\0o\0o\0t\0	application/x-hwp
-
-0	string/c	BEGIN:VCARD	text/x-vcard
-0	string		WordPro\0	application/vnd.lotus-wordpro
-0	string		WordPro\r\373	application/vnd.lotus-wordpro
-0	string		CPC\262		image/x-cpi
-
-# 
-128	string		DICM		application/dicom
-
-# Symbian installation files
-8	lelong	0x10000419	application/vnd.symbian.install
-0	lelong	0x10201A7A	x-epoc/x-sisx-app
-# FORTRAN source
-0	string/c	c\ 		text/x-fortran
-
-# Gnumeric spreadsheet
-# This entry is only semi-helpful, as Gnumeric compresses its files, so
-# they will ordinarily reported as "compressed", but at least -z helps
-39	string	=<gmr:Workbook	application/x-gnumeric
diff --git a/cloudfiles/share/magic.mime.mgc b/cloudfiles/share/magic.mime.mgc
deleted file mode 100644
index 62c2a3f9b1f1c30b7aea2f24ca2826e32dfbade1..0000000000000000000000000000000000000000
Binary files a/cloudfiles/share/magic.mime.mgc and /dev/null differ
diff --git a/voce-settings.php b/voce-settings.php
new file mode 100644
index 0000000000000000000000000000000000000000..6a942052803f5d96cf4f73a133da4e5c71695c52
--- /dev/null
+++ b/voce-settings.php
@@ -0,0 +1,218 @@
+<?php
+/*  Copyright 2010 Chris Scott (cscott@voceconnect.com)
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License, version 2, as
+    published by the Free Software Foundation.
+
+    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 St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+if (!class_exists('Voce_Settings')) {
+	class Voce_Settings {
+
+		private $page_name;
+		private $option_name;
+		private $page;
+		private $section;
+
+		public function __construct($option_group, $option_name, $sanitize_callback = '') {
+			register_setting($option_group, $option_name, $sanitize_callback);
+			$this->option_name = $option_name;
+		}
+
+		public function add_section($name, $title, $page, $callback = null) {
+			// use blank output to allow not setting a callback if no output is desired between heading and fields
+			$callback = (null === $callback) ? create_function('', 'echo \'\';') : $callback;
+
+			add_settings_section($name, $title, $callback, $page);
+			$this->section = $name;
+			$this->page = $page;
+			return $this;
+		}
+
+		public function add_field($id, $label, $type, $args = null, $page = null, $section = null) {
+			$section = (null === $section) ? $this->section : $section;
+			$page = (null === $page) ? $this->page : $page;
+			$this->add_settings_field(
+				$id,
+				$label,
+				$type,
+				$page,
+				$section,
+				$args
+			);
+		}
+
+
+		/**
+		 * helper to use the settings API to add a field
+		 *
+		 * @param string $id the HTML ID for the field
+		 * @param string $label the label tag text
+		 * @param string $display_callback the function to use for the field display
+		 * @param string $extra_args extra args to pass to the callback
+		 * @return void
+		 */
+		public function add_settings_field($id, $label, $display_callback, $page, $section, $extra_args = null) {
+
+			$args = array(
+				'id' => $id,
+				'label_for' => $id
+			);
+
+			if (is_array($extra_args)) {
+				$args += $extra_args;
+			}
+
+			add_settings_field(
+				$id,
+				$label,
+				array(&$this, $display_callback),
+				$page,
+				$section,
+				$args
+			);
+		}
+
+
+		/**
+		 * checkbox callback for settings API
+		 *
+		 * @param string $args
+		 * @return string checkbox
+		 */
+		public function field_checkbox($args) {
+			$options = get_option($this->option_name);
+
+			$defaults = array('prepend_field' => '', 'append_field' => '', 'class' => '');
+			$args = wp_parse_args($args, $defaults);
+			extract($args);
+
+			$description = ($description) ? sprintf('<p><span class="description">%s</span></p>', $description) : '';
+
+			$checked = checked($options[$id], '1', false);
+
+			echo sprintf(
+				"%s<input id='%s' name='{$this->option_name}[%s]' type='checkbox' value='1' %s class='%s' />%s%s",
+				$prepend_field,
+				$id,
+				$id,
+				$checked,
+				$class,
+				$append_field,
+				$description
+			);
+		}
+
+		/**
+		 * input type text callback for settings API
+		 *
+		 * @param string $args
+		 * @return string input
+		 */
+		public function field_input($args) {
+			$options = get_option($this->option_name);
+
+			$defaults = array('prepend_field' => '', 'append_field' => '', 'class' => 'regular-text', 'type' => 'text');
+			$args = wp_parse_args($args, $defaults);
+			extract($args);
+
+			$description = (isset($description) && $description) ? sprintf('<p><span class="description">%s</span></p>', $description) : '';
+
+			if (!isset($value)) {
+				if (isset($options[$id])) {
+					$value = $options[$id];
+				} else {
+					$value = '';
+				}
+			}
+
+			echo sprintf(
+				"%s<input id='%s' name='{$this->option_name}[%s]' type='%s' class='%s' value='%s' />%s%s",
+				$prepend_field,
+				$id,
+				$id,
+				$type,
+				$class,
+				esc_attr($value),
+				$append_field,
+				$description
+			);
+		}
+
+		/**
+		 * textarea callback for settings API
+		 *
+		 * @param string $args
+		 * @return string textarea
+		 */
+		public function field_textarea($args) {
+			$options = get_option($this->option_name);
+			$id = $args['id'];
+
+			$defaults = array('prepend_field' => '', 'append_field' => '', 'columns' => 40, 'rows' => 8, 'class' => 'large-text');
+			$args = wp_parse_args($args, $defaults);
+			extract($args);
+
+			$description = (isset($description) && $description) ? sprintf('<p><span class="description">%s</span></p>', $description) : '';
+
+			echo sprintf(
+				"%s<textarea id='%s' name='{$this->option_name}[%s]' columns='%s' rows='%s' class='%s' />%s</textarea>%s%s",
+				$prepend_field,
+				$id,
+				$id,
+				$columns,
+				$rows,
+				$class,
+				esc_attr($options[$id]),
+				$append_field,
+				$description
+			);
+		}
+
+		public function field_radio($args) {
+			$options = get_option($this->option_name);
+			$id = $args['id'];
+
+			$defaults = array('type' => 'radio', 'class' => '');
+			$args = wp_parse_args($args, $defaults);
+			extract($args);
+
+			if (!$items) {
+				return;
+			}
+
+			echo '<fieldset><p>';
+			foreach ($items as $item) {
+				if (!empty($options[$id])) {
+					$checked = checked($options[$id], $item['value'], false);
+				} else {
+					$checked = false;
+				}
+
+				echo sprintf(
+					"<label> <input id='%s' name='{$this->option_name}[%s]' type='%s', class='%s' value='%s' %s /> %s</label><br />",
+					$id,
+					$id,
+					$type,
+					$class,
+					esc_attr($item['value']),
+					$checked,
+					esc_html($item['text'])
+				);
+			}
+			echo '</fieldset></p>';
+
+			$description = (isset($description) && $description) ? sprintf('<p><span class="description">%s</span></p>', $description) : '';
+			echo $description;
+		}
+	}
+}
\ No newline at end of file