<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>
  <title>ImageMagick: Resources</title/>
  <meta http-equiv="Content-Language" content="en-US"/>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
  <meta name="Application-name" content="ImageMagick"/>
  <meta name="Description" content="ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, and DPX. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.  ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems.  The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images automagically and dynamically."/>
  <meta name="Application-url" content="http://www.imagemagick.org"/>
  <meta name="Generator" content="PHP"/>
  <meta name="Keywords" content="resources, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
  <meta name="Rating" content="GENERAL"/>
  <meta name="Robots" content="INDEX, FOLLOW"/>
  <meta name="Generator" content="ImageMagick Studio LLC"/>
  <meta name="Author" content="ImageMagick Studio LLC"/>
  <meta name="Revisit-after" content="2 DAYS"/>
  <meta name="Resource-type" content="document"/>
  <meta name="Copyright" content="Copyright (c) 1999-2010 ImageMagick Studio LLC"/>
  <meta name="Distribution" content="Global"/>
  <link rel="icon" href="../images/wand.png"  sizes="32x32"/>
  <link rel="shortcut icon" href="../images/wand.ico"  type="images/x-icon"/>
  <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>
  <style type="text/css" media="all">
    @import url("../www/magick.css");
  </style>
</head>

<body id="www-imagemagick-org">
<div class="titlebar">
<a href="../index.html">
  <img src="../images/script.png" alt="[ImageMagick]"
  style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
<a href="http://www.networkredux.com">
  <img src="../images/networkredux.png" alt="[sponsor]"
  style="margin: 45px auto; border: 0px; float: left;" /></a>
<a href="http://www.imagemagick.org/discourse-server/">
  <img src="../images/logo.jpg" alt=""
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
<a href="../index.html">
  <img src="../images/sprite.jpg" alt=""
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
</div>

<div class="westbar">

<div class="menu">
  <a title="About ImageMagick" href="../index.html">About ImageMagick</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Binary Releases" href="../www/binary-releases.html">Binary Releases</a>
</div>
<div class="sub">
    <a title="Binary Release: Unix" href="../www/binary-releases.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Binary Release: MacOS X" href="../www/binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
    <a title="Binary Release: Windows" href="../www/binary-releases.html#windows">Windows</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Command-line Tools" href="../www/command-line-tools.html">Command-line Tools</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Processing" href="../www/command-line-processing.html">Processing</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Options" href="../www/command-line-options.html">Options</a>
</div>
<div class="sub">
    <a title="Command-line Tools: Usage" href="http://www.imagemagick.org/Usage/">Usage</a>
</div>
<div class="menu">
  <a title="Program Interfaces" href="../www/api.html">Program Interfaces</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickWand" href="../www/magick-wand.html">MagickWand</a>
</div>
<div class="sub">
    <a title="Program Interface: MagickCore" href="../www/magick-core.html">MagickCore</a>
</div>
<div class="sub">
    <a title="Program Interface: PerlMagick" href="../www/perl-magick.html">PerlMagick</a>
</div>
<div class="sub">
    <a title="Program Interface: Magick++" href="../Magick++/">Magick++</a>
</div>
<div class="sep"></div>
<div  class="menu">
   <a title="Install from Source" href="../www/install-source.html">Install from Source</a>
</div>
<div class="sub">
    <a title="Install from Source: Unix" href="../www/install-source.html#unix">Unix</a>
</div>
<div class="sub">
    <a title="Install from Source: Windows" href="../www/install-source.html#windows">Windows</a>
 </div>
<div class="menu">
  <a title="Resources" href="../www/resources.html">Resources</a>
</div>
<div class="menu">
  <a title="Architecture" href="../www/architecture.html">Architecture</a>
</div>
<div class="menu">
  <a title="Download" href="../www/download.html">Download</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Search" href="http://www.imagemagick.org/script/search.php">Search</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a title="Site Map"href="../www/sitemap.html">Site Map</a>
</div>
<div  class="sub">
    <a title="Site Map: Links"href="../www/links.html">Links</a>
</div>
<div class="sep"></div>
<div  class="menu">
  <a title="Sponsors" href="../www/sponsors.html">Sponsors:</a>

<div class="sponsbox">
<div  class="sponsor">
   <a title="Sponsor: alaTest.com" href="http://alatest.com">alaTest.com</a><!-- 20110801000300 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
</div>
<div  class="sponsor">
  <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
</div>
<div  class="sponsor">
  <a title="Sponsor: Webdesign Agentur" href="http://www.ventzke-partner.de">Webdesign Agentur</a><!-- 201101010480 invendio.de-->
</div>
<div  class="sponsor">
  <a title="Sponsor: LVM Versicherung" href="http://www.neu-reich.de">LVM Versicherung</a><!-- 201101010480 -->
</div>
<div  class="sponsor">
  <a title="Sponsor: Diamonds are a Girls Best Friend" href="http://www.schmuck.org">Diamonds are a Girls Best Friend</a><!-- 201101010600 Peterssen-->
</div>
</div>
</div>
</div>

<div class="eastbar">
  <script type="text/javascript">
  <!--
    google_ad_client = "pub-3129977114552745";
    google_ad_slot = "0574824969";
    google_ad_width = 160;
    google_ad_height = 600;
  //-->
  </script>
  <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  </script>
</div>

<div class="main">

<p class="navigation-index">[<a href="#configure">Configuration Files</a> &bull; <a href="#modules">Modules</a> &bull; <a href="#fonts">Fonts</a> &bull; <a href="#environment">Environment Variables</a>]</p>

<div class="doc-section">
<p>ImageMagick depends on a number of external resources including configuration files, loadable modules, fonts, and environment variables.</p>
</div>

<h2><a name="configure"></a>Configuration Files</h2>
<div class="doc-section">

<p>ImageMagick depends on a number of external configuration files detailed here:</p>

<dl class="doc">
<dt class="doc"><a href="../www/source/coder.xml">coder.xml</a></dt>
  <dd>Associate an image format with the specified coder module.

  <p>ImageMagick has a number of coder modules to support the reading and/or writing of an image format (e.g. JPEG).  Some coder modules support more than one associated image format and the mapping between an associated format and its respective coder module is defined in this configuration file.  For example, the PNG coder module not only supports the PNG image format, but the JNG and MNG formats as well.</p>
  </dd>

<dt class="doc"><a href="../www/source/colors.xml">colors.xml</a></dt>
  <dd>Associate a color name with its red, green, blue, and alpha intensities.

  <p>A number of command line options require a <a href="../www/color.html">color parameter</a>.  It is often convenient to refer to a color by name (e.g. white) rather than by hex value (e.g. #fff).  This file maps a color name to its equivalent red, green, blue, and alpha intensities (e.g. for white, red = 255, green = 255, blue = 255, and alpha = 0).</p>
  </dd>

<dt class="doc"><a name="configure.xml"/><a href="../www/source/configure.xml">configure.xml</a></dt>
  <dd>Set ImageMagick build parameters and system-wide environment variables (e.g. MAGICK_TEMPORARY_PATH).
  <p>
  As ImageMagick is built, a number of build parameters are saved to this configuration file.  They include the version, release date, dependent delegate libraries, and quantum depth among others.</p>
  </dd>

<dt class="doc"><a href="../www/source/delegates.xml">delegates.xml</a></dt>
  <dd>Associate delegate programs with certain image formats.

  <p>ImageMagick relies on a number of delegate programs to support certain image formats such as <a href="http://ufraw.sourceforge.net/">ufraw-batch</a> to read raw camera formats or <a href="http://www.cs.wisc.edu/~ghost/">Ghostscript</a> to read Postscript images.  Use this configuration file to map an input or output format to an external delegate program.</p>
  </dd>

<dt class="doc"><a href="../www/source/english.xml">english.xml</a></dt>
  <dd>Associate message tags with English translations.</dd><br />

<dt class="doc"><a href="../www/source/francais.xml">francais.xml</a></dt>
  <dd>Associate message tags with French translations.  </dd><br />

<dt class="doc"><a href="../www/source/locale.xml">locale.xml</a></dt>
  <dd>Associate message tags with a  translation for your locale.

  <p>ImageMagick has a number of informational, warning, and error messages that are represented as tags.  Tags are short descriptions of a message such as
  <em>FileNotFound</em> or <em>MemoryAllocationFailed</em>.  This configuration file lists locales that have a translation for each tag recognized by ImageMagick.  Currently only English and French translations are available in the <kbd>english.xml</kbd> and <kbd>francais.xml</kbd> configuration files.</p>
  </dd>

<dt class="doc"><a href="../www/source/log.xml">log.xml</a></dt>
  <dd>Configure logging parameters.
  <p>ImageMagick is capable of spewing copious amounts of informational or debugging statements.  Use this file to configure how the information will appear in a log message and where you want the logging messages posted.</p>
  </dd>

<dt class="doc"><a href="../www/source/magic.xml">magic.xml</a></dt>
  <dd>Associate an image format with a unique identifier.
  <p>Many image formats have identifiers that uniquely identify a particular image format.  For example, the GIF image format always begins with <kbd>GIF8</kbd> as the first 4 characters of the image.  ImageMagick uses this information to quickly determine the type of image it is dealing with when it reads an image.</p>
  </dd>

<dt class="doc"><a href="../www/source/mime.xml">mime.xml</a></dt>
  <dd>Associate an internet media type with a unique identifier.
  <p>Many files and data streams have identifiers that uniquely identify a
particular internet media type. For example, files in the "Corel Draw
drawing" format (mime type="application/vnd.corel-draw") are associated with
the filename pattern <kbd>*.cdr</kbd>, and also have an initial string of the
characters "CDRXvrsn". ImageMagick uses combinations of this information,
when available, to attempt to quickly determine the internet media type of a
file or data stream.</p>
</dd>

<dt class="doc"><a href="../www/source/policy.xml">policy.xml</a></dt>
  <dd>Configure ImageMagick policies.
  <p>By default any coder, delegate, filter, or file path is permitted.  Use a policy to deny access to, for example, the MPEG video delegate, or permit reading images from a file system but deny writing to that same file system.  Or use the resource policy to set resource limits.  Policies are useful for multi-user servers that want to limit the overall impact ImageMagick has on the system.  For example, to limit the maximum image size in memory to 100MB:</p>

<pre class="text">
  &lt;policy domain="resource" name="area" value="100MB"/>
</pre>

<p>Any image larger than this area limit is cached to disk rather than memory.</p>

<p>To limit the elapsed time of any ImageMagick command to 5 minutes, use this policy:</p>

<pre class="text">
  &lt;policy domain="resource" name="time" value="300"/>
</pre>
  </dd>

<dt class="doc"><a href="../www/source/thresholds.xml">thresholds.xml</a></dt>
  <dd>Set threshold maps for ordered posterized dither.</dd><br />

<dt class="doc"><a name="type.xml"></a><a href="../www/source/type.xml">type.xml</a></dt>
  <dd>Configure fonts.
  <p>Define the font name, family, foundry, style, format, metrics, and glyphs for any font you want to use within ImageMagick.</p>
  </dd>

<dt class="doc"><a href="../www/source/type-ghostscript.xml">type-ghostscript.xml</a></dt>
  <dd>Configure <a href="http://www.cs.wisc.edu/~ghost/">Ghostscript</a> fonts.
  <p>The Ghostscript package includes a number of fonts that can be accessed with ImageMagick.</p>
  </dd>

<dt class="doc"><a href="../www/source/type-windows.xml">type-windows.xml</a></dt>
  <dd>Associate names with Windows font glyphs.</dd>

</dl>

<p>Under Unix and Linux, ImageMagick searches for each of the configuration files listed above by looking in the locations given below, in order, and loads them if found:</p>

<pre class="text">
  $MAGICK_CONFIGURE_PATH
  $PREFIX/lib/ImageMagick-6.6.5/config
  $PREFIX/share/ImageMagick-6.6.5/config
  $PREFIX/share/ImageMagick-6.6.5  $HOME/.magick/
  &lt;<em>client path</em>&gt;/lib/ImageMagick-6.6.5/
</pre>

<p>The environmental variable $PREFIX is the default install path (e.g. <kbd>/usr/local</kbd>). The <em>client path</em> is the execution path of your ImageMagick client (e.g. <kbd>/usr/local</kbd>) .</p>

<p>For the Unix or Linux pre-compiled uninstalled binary distributions, the configuration load order is:</p>

<pre class="text">
  $MAGICK_CONFIGURE_PATH
  $MAGICK_HOME/lib/ImageMagick-6.6.5/config
  $MAGICK_HOME/share/ImageMagick-6.6.5/config
  $PREFIX/share/ImageMagick-6.6.5  $HOME/.magick/
  &lt;<em>client path</em>&gt;/lib/ImageMagick-6.6.5/
  &lt;<em>current directory</em>&gt;
</pre>

<p>Under Windows, ImageMagick searches for these configuration files in the following order, and loads them if found:</p>

<pre class="text">
  $MAGICK_CONFIGURE_PATH
  &lt;<em>windows registry</em>&gt;
  $PREFIX/config
  $USERPROFILE/.magick/
  &lt;<em>client path</em>&gt;
</pre>

<p>Above, $PREFIX is the default install path, typically <kbd>c:\\Program Files\\ImageMagick-6.6.5</kbd>.</p>

<p>For an uninstalled Windows installation, the configuration load order is:</p>

<pre class="text">
  $MAGICK_CONFIGURE_PATH
  $MAGICK_HOME
  $USERPROFILE/.magick/
  <em>client path</em>
  &lt;<em>current directory</em>&gt;
</pre>

<p>If a configuration file cannot not be found, ImageMagick relies on built-in default values.</p>

</div>

<h2><a name="modules"></a>Modules</h2>
<div class="doc-section">

<p>ImageMagick's image format support is usually provided in the form of loadable modules. It searches for loadable modules in the following order and it uses the first match found:</p>

<pre class="text">
  $MAGICK_HOME/lib/ImageMagick-6.6.5/modules-Q16/coders/
  $HOME/.magick/
  &lt;<em>client path</em>&gt;/../lib/ImageMagick-6.6.5/modules-Q16/coders/
  $MAGICK_HOME/lib/ImageMagick-6.6.5/modules-Q16/coders
  $MAGICK_HOME/share/ImageMagick-6.6.5/modules-Q16/coders
  $HOME/.magick/
  &lt;<em>client path</em>&gt;/lib/ImageMagick-6.6.5/modules-Q16/coders
</pre>

</div>

<h2><a name="fonts"></a>Fonts</h2>
<div class="doc-section">

<p>ImageMagick is able to load raw TrueType and Postscript font files.  It searches for the font configuration file, <a href="#type.xml">type.xml</a>, in the following order, and loads them if found:</p>

<pre class="text">
  $MAGICK_CONFIGURE_PATH
  $MAGICK_HOME/lib/ImageMagick-6.6.5/config
  $MAGICK_HOME/share/ImageMagick-6.6.5/config
  $HOME/.magick/
  &lt;<em>client path</em>&gt;/lib/ImageMagick-6.6.5/
  $MAGICK_FONT_PATH
</pre>

</div>

<h2><a name="environment"></a>Environment Variables</h2>
<div class="doc-section">

<p>Environment variables recognized by ImageMagick include:</p>

<dl class="doc">
<dt class="doc">HOME</dt>
  <dd>Set path to search for configuration files in <em>$HOME/.magick</em> if the directory exists.</dd><br />
<dt class="doc">LD_LIBRARY_PATH</dt>
  <dd>Set path to the ImageMagick shareable libraries and other dependent libraries.</dd><br />
<dt class="doc">MAGICK_AREA_LIMIT</dt>
  <dd>Set the maximum <em>width * height</em> of an image that can reside in the pixel cache memory.</dd><br />
  <dd>Images that exceed the area limit are cached to disk (see <a href="#disk-limit">MAGICK_DISK_LIMIT</a>).</dd><br />
<dt class="doc">MAGICK_CODER_FILTER_PATH</dt>
  <dd>Set search path to use when searching for filter process modules (invoked via  <a href="../www/command-line-options.html#process">-process</a>).<dd><br />
  <dd>This path permits the user to extend ImageMagick's image processing functionality by adding loadable modules to a preferred location rather than copying them into the ImageMagick installation directory.  The formatting of the search path is similar to operating system search paths (i.e. colon delimited for Unix, and semi-colon delimited for Microsoft Windows). This user specified search path is searched before trying the <a href="#modules">default search path</a>.</dd><br />
<dt class="doc">MAGICK_CODER_MODULE_PATH</dt>
  <dd>Set path where ImageMagick can locate its coder modules.</dd><br />
  <dd>This path permits the user to arbitrarily extend the image formats supported by ImageMagick by adding loadable coder modules from an preferred location rather than copying them into the ImageMagick installation directory.  The formatting of the search path is similar to operating system search paths (i.e. colon delimited for Unix, and semi-colon delimited for Microsoft Windows). This user specified search path is searched before trying the <a href="#modules">default search path</a>.</dd><br />
<dt class="doc">MAGICK_CONFIGURE_PATH</dt>
  <dd>Set path where ImageMagick can locate its configuration files</dd><br />
  <dd>Use this search path to search for configuration (.xml) files. The formatting of the search path is similar to operating system search paths (i.e. colon delimited for Unix, and semi-colon delimited for Microsoft Windows). This user specified search path is searched before trying the <a href="#configure">default search path</a>.</dd><br />
<dt class="doc">MAGICK_DEBUG</dt>
  <dd>Set debug options.</dd><br />
  <dd>See <a href="../www/command-line-options.html#debug">-debug</a> for a description of debugging options.</dd><br />
<dt class="doc"><a name="disk-limit"></a>MAGICK_DISK_LIMIT</dt>
  <dd>Set maximum amount of disk space in bytes permitted for use by the pixel cache.</dd><br />
  <dd>When this limit is exceeded, the pixel cache is not be created and an error message is returned.</dd><br />
<dt class="doc">MAGICK_FILE_LIMIT</dt>
  <dd>Set maximum number of open pixel cache files.</dd><br />
  <dd>When this limit is exceeded, any subsequent pixels cached to disk are closed and reopened on demand.  This behavior permits a large number of images to be accessed simultaneously on disk, but with a speed penalty due to repeated open/close calls.</dd><br />
<dt class="doc">MAGICK_FONT_PATH</dt>
  <dd>Set path ImageMagick searches for TrueType and Postscript Type1 font files.</dd><br />
  <dd>This path is only consulted if a particular font file is not found in the current directory.</dd><br />
<dt class="doc">MAGICK_HOME</dt>
  <dd>Set the path at the top of ImageMagick installation directory.</dd><br />
  <dd>This path is consulted by <em>uninstalled</em> builds of ImageMagick which do not have their location hard-coded or set by an installer.</dd><br />
<dt class="doc"><a name="map-limit"></a>MAGICK_MAP_LIMIT</dt>
  <dd>Set maximum amount of memory map in bytes to allocate for the pixel cache.</dd><br />
  <dd>When this limit is exceeded, the image pixels are cached to disk (see MAGICK_DISK_LIMIT).</dd>
  </dd><br />
<dt class="doc">MAGICK_MEMORY_LIMIT</dt>
  <dd>Set maximum amount of memory in bytes to allocate for the pixel cache from the heap.</dd><br />
  <dd>When this limit is exceeded, the image pixels are cached to memory-mapped disk (see <a href="#map-limit">MAGICK_MAP_LIMIT</a>).</dd><br />
<dt class="doc">MAGICK_PRECISION</dt>
  <dd>Set the maximum number of significant digits to be printed.</dd><br />
<dt class="doc">MAGICK_SYNCHRONIZE</dt>
  <dd>Set to true to synchronize image to storage device.</dd><br />
<dt class="doc">MAGICK_TEMPORARY_PATH</dt>
  <dd>Set path to store temporary files.</dd><br />
<dt class="doc">MAGICK_THREAD_LIMIT</dt>
  <dd>Set maximum parallel threads.</dd><br />
  <dd>Many ImageMagick algorithms run in parallel on multi-processor systems.  Use this enviroment variable to set the maximum number of threads that are permitted to run in parallel.</dd>
<dt class="doc">MAGICK_THROTTLE</dt>
  <dd>Periodically yield the CPU for at least the time specified in milliseconds.</dd><br />
<dt class="doc">MAGICK_TIME_LIMIT</dt>
  <dd>Set maximum time in seconds.</dd><br />
  <dd>When this limit is exceeded, an exception is thrown and processing stops.</dd>
</dl>
</div>

</div>

<div id="linkbar">
    <span id="linkbar-west">&nbsp;</span>
    <span id="linkbar-center">
      <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
      <a href="http://www.imagemagick.org/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
    </span>
    <span id="linkbar-east">&nbsp;</span>
  </div>
  <div class="footer">
    <span id="footer-west">&copy; 1999-2010 ImageMagick Studio LLC</span>
    <span id="footer-east"> <a href="http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
  </div>
  <div style="clear: both; margin: 0; width: 100%; "></div>
  <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-17690367-1']);
    _gaq.push(['_trackPageview']);

    (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
  </script>
</body>
</html>
