<!DOCTYPE html>


























































































<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<link rel="shortcut icon" type="image/x-icon" href="/google/play-services/favicon.ico" />
<title>LocationSource | Android Developers</title>

<!-- STYLESHEETS -->
<link rel="stylesheet"
href="http://fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
<link href="/google/play-services/assets/css/default.css" rel="stylesheet" type="text/css">


<!-- JAVASCRIPT -->
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script src="/google/play-services/assets/js/global-libraries-combined.js" type="text/javascript"></script>
<script type="text/javascript">
  var toRoot = "/google/play-services/";
</script>
<script src="/google/play-services/assets/js/docs.js" type="text/javascript"></script>
<script src="/google/play-services/navtree_data.js" type="text/javascript"></script>

</head>
<body class="gc-documentation 
  develop" itemscope itemtype="http://schema.org/Article">
  <div id="doc-api-level" class="" style="display:none"></div>
  <a name="top"></a>

    <!-- Header -->
    <div id="header">
        <div class="wrap" id="header-wrap">
          <div class="col-3 logo">
          <a href="/google/play-services/../../index.html">
            <img src="/google/play-services/../../assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
          </a>
          <div class="btn-quicknav" id="btn-quicknav">
          	<a href="#" class="arrow-inactive">Quicknav</a>
			      <a href="#" class="arrow-active">Quicknav</a>
          </div>
          </div>
            <ul class="nav-x col-9">
                <li class="design">
                  <a href="/google/play-services/../../design/index.html" 
                  zh-TW-lang="設計"
                  zh-CN-lang="设计"
                  ru-lang="Проектирование"
                  ko-lang="디자인"
                  ja-lang="設計"
                  es-lang="Diseñar"
                  >Design</a></li>
                <li class="develop"><a href="/google/play-services/../../develop/index.html" class="selected"
                  zh-TW-lang="開發"
                  zh-CN-lang="开发"
                  ru-lang="Разработка"
                  ko-lang="개발"
                  ja-lang="開発"
                  es-lang="Desarrollar"               
                  >Develop</a></li>
                <li class="distribute last"><a href="/google/play-services/../../distribute/index.html" 
                  zh-TW-lang="發佈"
                  zh-CN-lang="分发"
                  ru-lang="Распространение"
                  ko-lang="배포"
                  ja-lang="配布"
                  es-lang="Distribuir"               
                  >Distribute</a></li>
            </ul>
            
            <!-- New Search -->
            <div class="menu-container">
            <div class="moremenu">
    <div id="more-btn"></div>
  </div>
  <div class="morehover" id="moremenu">
    <div class="top"></div>
    <div class="mid">
      <div class="header">Links</div>
      <ul>
        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
        <li><a href="/google/play-services/../../about/index.html">About Android</a></li>
      </ul>
      <div class="header">Android Sites</div>
      <ul>
        <li><a href="http://www.android.com">Android.com</a></li>
        <li class="active"><a>Android Developers</a></li>
        <li><a href="http://source.android.com">Android Open Source Project</a></li>
      </ul>
      <!-- <div class="header">Support</div>
      <ul>
        <li><a href="/google/play-services/../../support.html">Developer Support</a></li>
      </ul> -->
      <div class="header">Languages</div>
        <div id="language" class="locales">
          <select name="language" onChange="changeLangPref(this.value, true)">
              <option value="en">English</option>
              <option value="es">Español</option>
              <option value="ja">日本語</option>
              <option value="ko">한국어</option>
              <option value="ru">Русский</option>
              <option value="zh-CN">中文 (中国)</option>
              <option value="zh-TW">中文 (台灣)</option>
          </select>
        </div>
      <script type="text/javascript">
        <!--  
        loadLangPref();  
          //-->
      </script>
      <br class="clearfix" />
    </div>
    <div class="bottom"></div>
  </div>
  <div class="search" id="search-container">
    <div class="search-inner">
      <div id="search-btn"></div>
      <div class="left"></div>
      <form onsubmit="return submit_search()">
        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
onkeydown="return search_changed(event, true, '/google/play-services/../../')" 
onkeyup="return search_changed(event, false, '/google/play-services/../../')" />
      </form>
      <div class="right"></div>
        <a class="close hide">close</a>
        <div class="left"></div>
        <div class="right"></div>
    </div>
  </div>
  <div id="search_filtered_wrapper">
    <div id="search_filtered_div" class="no-display">
        <ul id="search_filtered">
        </ul>
    </div>
  </div>
  
  </div>
  <!-- /New Search>
          
          
          <!-- Expanded quicknav -->
           <div id="quicknav" class="col-9">
                <ul>
                    <li class="design">
                      <ul>
                        <li><a href="/google/play-services/../../design/index.html">Get Started</a></li>
                        <li><a href="/google/play-services/../../design/style/index.html">Style</a></li>
                        <li><a href="/google/play-services/../../design/patterns/index.html">Patterns</a></li>
                        <li><a href="/google/play-services/../../design/building-blocks/index.html">Building Blocks</a></li>
                        <li><a href="/google/play-services/../../design/downloads/index.html">Downloads</a></li>
                        <li><a href="/google/play-services/../../design/videos/index.html">Videos</a></li>
                      </ul>
                    </li>
                    <li class="develop">
                      <ul>
                        <li><a href="/google/play-services/../../training/index.html"
                          zh-TW-lang="訓練課程"
                          zh-CN-lang="培训"
                          ru-lang="Курсы"
                          ko-lang="교육"
                          ja-lang="トレーニング"
                          es-lang="Capacitación"               
                          >Training</a></li>
                        <li><a href="/google/play-services/../../guide/components/index.html"
                          zh-TW-lang="API 指南"
                          zh-CN-lang="API 指南"
                          ru-lang="Руководства по API"
                          ko-lang="API 가이드"
                          ja-lang="API ガイド"
                          es-lang="Guías de la API"               
                          >API Guides</a></li>
                        <li><a href="/google/play-services/../../reference/packages.html"
                          zh-TW-lang="參考資源"
                          zh-CN-lang="参考"
                          ru-lang="Справочник"
                          ko-lang="참조문서"
                          ja-lang="リファレンス"
                          es-lang="Referencia"               
                          >Reference</a></li>
                        <li><a href="/google/play-services/../../tools/index.html"
                          zh-TW-lang="相關工具"
                          zh-CN-lang="工具"
                          ru-lang="Инструменты"
                          ko-lang="도구"
                          ja-lang="ツール"
                          es-lang="Herramientas"               
                          >Tools</a>
                          <ul><li><a href="/google/play-services/../../sdk/index.html">Get the SDK</a></li></ul>
                        <li><a href="/google/play-services/../../google/index.html" 
                          zh-TW-lang=""
                          zh-CN-lang=""
                          ru-lang=""
                          ko-lang=""
                          ja-lang=""
                          es-lang=""               
                          >Google Services</a>

                  <ul>
                    <li><a href="/google/play-services/google/index.html">API Guides</a></li>
                    <li><a href="/google/play-services/google/play-services-reference/reference/packages.html">Reference</a></li>
                  </ul>
                  </li>
                      </ul>
                    </li>
                    <li class="distribute last">
                      <ul>
                        <li><a href="/google/play-services/../../distribute/index.html">Google Play</a></li>
                        <li><a href="/google/play-services/../../distribute/googleplay/publish/index.html">Publishing</a></li>
                        <li><a href="/google/play-services/../../distribute/googleplay/promote/index.html">Promoting</a></li>
                        <li><a href="/google/play-services/../../distribute/googleplay/quality/index.html">App Quality</a></li>
                        <li><a href="/google/play-services/../../distribute/googleplay/spotlight/index.html">Spotlight</a></li>
                        <li><a href="/google/play-services/../../distribute/open.html">Open Distribution</a></li>
                      </ul>
                    </li>
                </ul>
          </div>
          <!-- /Expanded quicknav -->
        </div>
    </div>
    <!-- /Header -->
    
    
  <div id="searchResults" class="wrap" style="display:none;">
          <h2 id="searchTitle">Results</h2>
          <div id="leftSearchControl" class="search-control">Loading...</div>
  </div>
    
    
    

    <!-- Secondary x-nav -->
    <div id="nav-x">
        <div class="wrap">
            <ul class="nav-x col-9 develop" style="width:75%">
                <li><a href="/google/play-services/../../training/index.html" 
                  zh-TW-lang="訓練課程"
                  zh-CN-lang="培训"
                  ru-lang="Курсы"
                  ko-lang="교육"
                  ja-lang="トレーニング"
                  es-lang="Capacitación"               
                  >Training</a></li>
                <li><a href="/google/play-services/../../guide/components/index.html" 
                  zh-TW-lang="API 指南"
                  zh-CN-lang="API 指南"
                  ru-lang="Руководства по API"
                  ko-lang="API 가이드"
                  ja-lang="API ガイド"
                  es-lang="Guías de la API"               
                  >API Guides</a></li>
                <li><a href="/google/play-services/../../reference/packages.html" 
                  zh-TW-lang="參考資源"
                  zh-CN-lang="参考"
                  ru-lang="Справочник"
                  ko-lang="참조문서"
                  ja-lang="リファレンス"
                  es-lang="Referencia"               
                  >Reference</a></li>
                <li><a href="/google/play-services/../../tools/index.html" 
                  zh-TW-lang="相關工具"
                  zh-CN-lang="工具"
                  ru-lang="Инструменты"
                  ko-lang="도구"
                  ja-lang="ツール"
                  es-lang="Herramientas"               
                  >Tools</a></li>                
                <li><a href="/google/play-services/../../google/index.html" class="selected"
                          >Google Services</a><!--
                  <ul>
                    <li><a href="/google/play-services/../../google/index.html" style="font-size:14px; margin-left:-35px;">API Guides</a></li>
                    <li><a href="/google/play-services/../../google/play-services/reference/packages.html"
                    class="selected-gms-ref" style="font-size:14px; margin-left:-35px; color:#f80">Reference</a></li>
                  </ul>-->
                </li>
            </ul>
        </div>
        
    </div>
    <!-- /Sendondary x-nav -->

  

  <div class="wrap clearfix" id="body-content">
    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
      <div id="devdoc-nav" class="scroll-pane">
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>



<ul id="nav">
  <li class="nav-section">
    <div class="nav-section-header empty"><a href="/google/index.html">
        <span class="en">Overview</span>
      </a></div>
  </li>

  <li class="nav-section">
    <div class="nav-section-header"><a href="/google/play-services/index.html">
      <span class="en">Google Play services</span></a>
    </div>
    <ul>
      <li><a href="/google/play-services/setup.html">
          <span class="en">Setup</span></a>
      </li>

      <li><a href="/google/play-services/auth.html">
          <span class="en">Authentication</span></a>
      </li>

      <li><a href="/google/play-services/plus.html">
          <span class="en">Google+</span></a>
      </li>

      <li><a href="/google/play-services/maps.html">
          <span class="en">Maps</span></a>
      </li>

      <li id="tree-list" class="nav-section">
        <div class="nav-section-header">
          <a href="/google/play-services/reference/packages.html">
            <span class="en">Reference</span>
          </a>
        <div>
      </li>
    </ul>
  </li>

  <li class="nav-section">
    <div class="nav-section-header"><a href="/google/play/billing/index.html">
      <span class="en">Google Play <br />In-app Billing</span></a>
    </div>
    <ul>
          <li><a href="/google/play/billing/billing_overview.html">
              <span class="en">In-app Billing Overview</span></a>
          </li>
          <li><a href="/google/play/billing/billing_integrate.html">
              <span class="en">Implementing In-app Billing</span></a>
          </li>
          <li><a href="/google/play/billing/billing_subscriptions.html">
              <span class="en">Subscriptions</span></a>
          </li>
          <li><a href="/google/play/billing/billing_best_practices.html">
              <span class="en">Security and Design</span></a>
          </li>
          <li><a href="/google/play/billing/billing_testing.html">
              <span class="en">Testing <br/>In-app Billing</span></a>
          </li>
          <li><a href="/google/play/billing/billing_admin.html">
              <span class="en">Administering In-app Billing</span></a>
          </li>
          <li><a href="/google/play/billing/billing_reference.html">
              <span class="en">In-app Billing Reference</span></a>
          </li>
    </ul>
  </li>

  <li class="nav-section">
    <div class="nav-section-header"><a href="/google/play/dist.html">
      <span class="en">Google Play Distribution and Licensing</span></a>
    </div>
    <ul>
      <li><a href="/google/play/filters.html">
          <span class="en">Filters on Google Play</span></a>
      </li>

      <li><a href="/google/play/publishing/multiple-apks.html">
          <span class="en">Multiple APK Support</span></a>
      </li>

      <li><a href="/google/play/expansion-files.html">
          <span class="en">APK Expansion Files</span></a>
      </li>

      <li class="nav-section">
        <div class="nav-section-header"><a href="/google/play/licensing/index.html">
          <span class="en">Application Licensing</span></a>
        </div>
        <ul>
          <li><a href="/google/play/licensing/overview.html">
              <span class="en">Licensing Overview</span></a>
          </li>
          <li><a href="/google/play/licensing/setting-up.html">
              <span class="en">Setting Up for Licensing</span></a>
          </li>
          <li><a href="/google/play/licensing/adding-licensing.html">
              <span class="en">Adding Licensing to Your App</span></a>
          </li>
          <li><a href="/google/play/licensing/licensing-reference.html">
              <span class="en">Licensing Reference</span></a>
          </li>
        </ul>
      </li>
    </ul>


    <li class="nav-section">
        <div class="nav-section-header"><a href="/google/gcm/index.html">
          <span class="en">Google Cloud Messaging</span></a>
        </div>
        <ul>
          <li><a href="google/gcm/gs.html">
              <span class="en">Getting Started</span></a>
          </li>
          <li><a href="google/gcm/gcm.html">
              <span class="en">Architectural Overview</span></a>
          </li>
          <li><a href="google/gcm/demo.html">
              <span class="en">Demo App Tutorial</span></a>
          </li>
          <li><a href="/google/gcm/adv.html">
              <span class="en">Advanced Topics</span></a>
          </li>
          <li><a href="/google/gcm/c2dm.html">
              <span class="en">Migration</span></a>
          </li>
        </ul>
      </li>
</ul>

<script type="text/javascript">
<!--
    buildToggleLists();
    changeNavLang(getLangPref());
//-->
</script>




      </div>
   <script type="text/javascript">showTree();</script>


    </div> <!-- end side-nav -->
    <script>
      $(document).ready(function() {
        scrollIntoView("devdoc-nav");
        });
    </script>

    <script>
      $(document).ready(function() {
        changeDocLang(getLangPref());
        });
    </script>



<div class="col-12"  id="doc-col">

<div id="api-info-block">




<div class="sum-details-links">

</div><!-- end sum-details-links -->
<div class="api-level">
  
  
  

</div>
</div><!-- end api-info-block -->


<!-- ======== START OF CLASS DATA ======== -->

<div id="jd-header">
    public
     
     
    
    interface
<h1 itemprop="name">LocationSource</h1>



  
  
  


</div><!-- end header -->

<div id="naMessage"></div>

<div id="jd-content" class="api apilevel-">
<table class="jd-inheritance-table">


    <tr>
         	
        <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.maps.LocationSource</td>
    </tr>
    

</table>







<div class="jd-descr">


<h2>Class Overview</h2>
<p itemprop="articleBody">Defines an interface for providing location data, typically to a <code><a href="/google/play-services/reference/com/google/android/gms/maps/GoogleMap.html">GoogleMap</a></code> object.
 <p>
 A <code><a href="/google/play-services/reference/com/google/android/gms/maps/GoogleMap.html">GoogleMap</a></code> object has a built-in location provider for its my-location layer, but it can
 be <code><a href="/google/play-services/reference/com/google/android/gms/maps/GoogleMap.html#setLocationSource(com.google.android.gms.maps.LocationSource)">replaced</a></code> with another one that implements
 this interface.
 <p>
 A <code><a href="/google/play-services/reference/com/google/android/gms/maps/GoogleMap.html">GoogleMap</a></code> object activates its location provider using
 <code><a href="/google/play-services/reference/com/google/android/gms/maps/LocationSource.html#activate(com.google.android.gms.maps.LocationSource.OnLocationChangedListener)">activate(OnLocationChangedListener)</a></code>. While active (between
 <code><a href="/google/play-services/reference/com/google/android/gms/maps/LocationSource.html#activate(com.google.android.gms.maps.LocationSource.OnLocationChangedListener)">activate(OnLocationChangedListener)</a></code> and <code><a href="/google/play-services/reference/com/google/android/gms/maps/LocationSource.html#deactivate()">deactivate()</a></code>), a location provider
 should push periodic location updates to the listener registered in
 <code><a href="/google/play-services/reference/com/google/android/gms/maps/LocationSource.html#activate(com.google.android.gms.maps.LocationSource.OnLocationChangedListener)">activate(OnLocationChangedListener)</a></code>. It is the provider's responsibility to use location
 services wisely according to the map's lifecycle state. For example, it should only using
 battery-intensive services (like GPS) occasionally, or only while an activity is in the
 foreground.
</p>





</div><!-- jd-descr -->
















<div class="jd-descr">


<h2>Summary</h2>



<!-- ======== NESTED CLASS SUMMARY ======== -->
<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>


  
    <tr class="alt-color api apilevel-" >
      <td class="jd-typecol"><nobr>
        
         
         
        
        interface</nobr></td>
      <td class="jd-linkcol"><a href="/google/play-services/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html">LocationSource.OnLocationChangedListener</a></td>
      <td class="jd-descrcol" width="100%">Handles a location update.&nbsp;</td>
    </tr>
    
    



























<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>



	 
    <tr class="alt-color api apilevel-" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="/google/play-services/reference/com/google/android/gms/maps/LocationSource.html#activate(com.google.android.gms.maps.LocationSource.OnLocationChangedListener)">activate</a></span>(<a href="/google/play-services/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html">LocationSource.OnLocationChangedListener</a> listener)</nobr>
        
        <div class="jd-descrdiv">Activates this provider.</div>
  
  </td></tr>


	 
    <tr class=" api apilevel-" >
        <td class="jd-typecol"><nobr>
            abstract
            
            
            
            
            void</nobr>
        </td>
        <td class="jd-linkcol" width="100%"><nobr>
        <span class="sympad"><a href="/google/play-services/reference/com/google/android/gms/maps/LocationSource.html#deactivate()">deactivate</a></span>()</nobr>
        
        <div class="jd-descrdiv">Deactivates this provider.</div>
  
  </td></tr>



</table>







</div><!-- jd-descr (summary) -->

<!-- Details -->








<!-- XML Attributes -->


<!-- Enum Values -->


<!-- Constants -->


<!-- Fields -->


<!-- Public ctors -->



<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->



<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->

<h2>Public Methods</h2>



<A NAME="activate(com.google.android.gms.maps.LocationSource.OnLocationChangedListener)"></A>

<div class="jd-details api apilevel-"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
         
        abstract 
         
        void
      </span>
      <span class="sympad">activate</span>
      <span class="normal">(<a href="/google/play-services/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html">LocationSource.OnLocationChangedListener</a> listener)</span>
    </h4>
      <div class="api-level">
        <div></div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Activates this provider. This provider will notify the supplied listener periodically, until
 you call <code><a href="/google/play-services/reference/com/google/android/gms/maps/LocationSource.html#deactivate()">deactivate()</a></code>. Notifications will be broadcast on the main thread.</p></div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Parameters</h5>
      <table class="jd-tagtable">
        <tr>
          <th>listener</td>
          <td>listener that's called when a new location is available</td>
        </tr>
      </table>
  </div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Throws</h5>
      <table class="jd-tagtable">  
        <tr>
            <th><a href="http://developer.android.com/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
            <td>if this provider is already active</td>
        </tr>  
        <tr>
            <th><a href="http://developer.android.com/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
            <td>if <code>listener</code> is <code>null</code>
</td>
        </tr>
      </table>
  </div>

    </div>
</div>


<A NAME="deactivate()"></A>

<div class="jd-details api apilevel-"> 
    <h4 class="jd-details-title">
      <span class="normal">
        public 
         
         
        abstract 
         
        void
      </span>
      <span class="sympad">deactivate</span>
      <span class="normal">()</span>
    </h4>
      <div class="api-level">
        <div></div>
        
  

      </div>
    <div class="jd-details-descr">
      
  <div class="jd-tagdata jd-tagdescr"><p>Deactivates this provider. The previously-registered callback is not notified of any further
 updates.</p></div>
  <div class="jd-tagdata">
      <h5 class="jd-tagtitle">Throws</h5>
      <table class="jd-tagtable">  
        <tr>
            <th><a href="http://developer.android.com/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
            <td>if this provider is already inactive
</td>
        </tr>
      </table>
  </div>

    </div>
</div>





<!-- ========= METHOD DETAIL ======== -->



<!-- ========= END OF CLASS DATA ========= -->
<A NAME="navbar_top"></A>

<div id="footer" class="wrap" >
        

  <div id="copyright">
    
  Except as noted, this content is licensed under <a
  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
  For details and restrictions, see the <a href="/google/play-services/license.html">
  Content License</a>.
  </div>
  <div id="build_info">
    
  Android &nbsp;r - 29 Nov 2012 13:37

  </div>


  <div id="footerlinks">
    
  <p>
    <a href="/google/play-services/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
    <a href="/google/play-services/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
    <a href="/google/play-services/support.html">Support</a>
  </p>
  </div>

</div> <!-- end footer -->
</div> <!-- jd-content -->

</div><!-- end doc-content -->

</div> <!-- end body-content --> 




<!-- Grid - for dev 
<script type="text/javascript">

window.gOverride = {
		gColor: '#FF0000',
		pColor: '#EEEEEE',
		gOpacity: 0.10,
		pOpacity: 0.40,
		pHeight: 16,
		pOffset: 2,
		gColumns:16,
		gEnabled:false,
		pEnabled:false
	}
</script>
	
<link href="/google/play-services/assets/js/grid/960.gridder.css" rel="stylesheet" type="text/css">
<script src="/google/play-services/assets/js/grid/960.gridder.js" type="text/javascript"></script>
-->





<script type="text/javascript">
init(); /* initialize android-developer-docs.js */
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>

<script type="text/javascript">
  var pageTracker = _gat._getTracker("UA-5831155-1");
  pageTracker._trackPageview();
</script>



</body>
</html>
