You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nutch.apache.org by si...@apache.org on 2006/06/08 22:12:24 UTC

svn commit: r412849 [3/4] - in /lucene/nutch/trunk/site: ./ skin/ skin/images/

Modified: lucene/nutch/trunk/site/tutorial.html
URL: http://svn.apache.org/viewvc/lucene/nutch/trunk/site/tutorial.html?rev=412849&r1=412848&r2=412849&view=diff
==============================================================================
--- lucene/nutch/trunk/site/tutorial.html (original)
+++ lucene/nutch/trunk/site/tutorial.html Thu Jun  8 13:12:22 2006
@@ -3,9 +3,9 @@
 <head>
 <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.6">
+<meta name="Forrest-version" content="0.7">
 <meta name="Forrest-skin-name" content="pelt">
-<title>Nutch tutorial</title>
+<title>Nutch version 0.7 tutorial</title>
 <link type="text/css" href="skin/basic.css" rel="stylesheet">
 <link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
 <link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
@@ -16,49 +16,22 @@
 <body onload="init()">
 <script type="text/javascript">ndeSetTextSize();</script>
 <div id="top">
-<!--+
-    |breadtrail
-    +-->
 <div class="breadtrail">
 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a> &gt; <a href="http://lucene.apache.org/nutch/">Nutch</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
 </div>
-<!--+
-    |header
-    +-->
 <div class="header">
-<!--+
-    |start group logo
-    +-->
 <div class="grouplogo">
 <a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/java/docs/images/lucene_green_150.gif" title="Apache Lucene"></a>
 </div>
-<!--+
-    |end group logo
-    +-->
-<!--+
-    |start Project Logo
-    +-->
 <div class="projectlogo">
 <a href="http://lucene.apache.org/nutch/"><img class="logoImage" alt="Nutch" src="images/nutch-logo.gif" title="Open Source Web Search Software"></a>
 </div>
-<!--+
-    |end Project Logo
-    +-->
-<!--+
-    |start Search
-    +-->
 <div class="searchbox">
 <form action="http://www.google.com/search" method="get" class="roundtopsmall">
-<input value="lucene.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google:');" value="Search the site with google:" size="25" name="q" id="query" type="text">&nbsp; 
-                    <input name="Search" value="Search" type="submit">
+<input value="lucene.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input attr="value" name="Search" value="Search" type="submit">
 </form>
 </div>
-<!--+
-    |end search
-    +-->
-<!--+
-    |start Tabs
-    +-->
 <ul id="tabs">
 <li class="current">
 <a class="base-selected" href="index.html">Main</a>
@@ -67,115 +40,97 @@
 <a class="base-not-selected" href="http://wiki.apache.org/nutch/">Wiki</a>
 </li>
 </ul>
-<!--+
-    |end Tabs
-    +-->
 </div>
 </div>
 <div id="main">
 <div id="publishedStrip">
-<!--+
-    |start Subtabs
-    +-->
 <div id="level2tabs"></div>
-<!--+
-    |end Endtabs
-    +-->
-<script type="text/javascript" language="JavaScript"><!--
-              document.write("Published: " + document.lastModified);
-              //  --></script>
-</div>
-<!--+
-    |breadtrail
-    +-->
+<script type="text/javascript"><!--
+document.write("<text>Last Published:</text> " + document.lastModified);
+//  --></script>
+</div>
 <div class="breadtrail">
              
              &nbsp;
            </div>
-<!--+
-    |start Menu, mainarea
-    +-->
-<!--+
-    |start Menu
-    +-->
 <div id="menu">
 <div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">Project</div>
 <div id="menu_1.1" class="menuitemgroup">
 <div class="menuitem">
-<a title="" href="index.html">News</a>
+<a href="index.html">News</a>
 </div>
 <div class="menuitem">
-<a title="" href="about.html">About</a>
+<a href="about.html">About</a>
 </div>
 <div class="menuitem">
-<a title="" href="credits.html">Credits</a>
+<a href="credits.html">Credits</a>
 </div>
 <div class="menuitem">
-<a title="" href="http://www.cafepress.com/nutch/">Buy Stuff</a>
+<a href="http://www.cafepress.com/nutch/">Buy Stuff</a>
 </div>
 </div>
 <div onclick="SwitchMenu('menu_selected_1.2', 'skin/')" id="menu_selected_1.2Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Documentation</div>
 <div id="menu_selected_1.2" class="selectedmenuitemgroup" style="display: block;">
 <div class="menuitem">
-<a title="" href="http://wiki.apache.org/nutch/FAQ">FAQ</a>
+<a href="http://wiki.apache.org/nutch/FAQ">FAQ</a>
 </div>
 <div class="menuitem">
-<a title="" href="http://wiki.apache.org/nutch/">Wiki</a>
+<a href="http://wiki.apache.org/nutch/">Wiki</a>
 </div>
 <div class="menupage">
-<div class="menupagetitle">Tutorial</div>
+<div class="menupagetitle">Tutorial ver. 0.7</div>
+</div>
+<div class="menuitem">
+<a href="tutorial8.html">Tutorial ver. 0.8</a>
 </div>
 <div class="menuitem">
-<a title="" href="bot.html">Robot     </a>
+<a href="bot.html">Robot     </a>
 </div>
 <div class="menuitem">
-<a title="" href="i18n.html">i18n</a>
+<a href="i18n.html">i18n</a>
 </div>
 <div class="menuitem">
-<a title="" href="apidocs/index.html">API Docs</a>
+<a href="apidocs/index.html">API Docs</a>
 </div>
 </div>
 <div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Resources</div>
 <div id="menu_1.3" class="menuitemgroup">
 <div class="menuitem">
-<a title="" href="http://www.apache.org/dyn/closer.cgi/lucene/nutch/">Download</a>
+<a href="release/">Download</a>
+</div>
+<div class="menuitem">
+<a href="nightly.html">Nightly builds</a>
 </div>
 <div class="menuitem">
-<a title="" href="mailing_lists.html">Mailing Lists</a>
+<a href="mailing_lists.html">Mailing Lists</a>
 </div>
 <div class="menuitem">
-<a title="" href="issue_tracking.html">Issue Tracking</a>
+<a href="issue_tracking.html">Issue Tracking</a>
 </div>
 <div class="menuitem">
-<a title="" href="version_control.html">Version Control</a>
+<a href="version_control.html">Version Control</a>
 </div>
 </div>
 <div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" class="menutitle">Related Projects</div>
 <div id="menu_1.4" class="menuitemgroup">
 <div class="menuitem">
-<a title="" href="http://lucene.apache.org/java/">Lucene Java</a>
+<a href="http://lucene.apache.org/java/">Lucene Java</a>
+</div>
+<div class="menuitem">
+<a href="http://lucene.apache.org/hadoop/">Hadoop</a>
 </div>
 </div>
 <div id="credit"></div>
 <div id="roundbottom">
 <img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
-<!--+
-  |alternative credits
-  +-->
-</div>
-<!--+
-    |end Menu
-    +-->
-<!--+
-    |start content
-    +-->
+<div id="credit2"></div>
+</div>
 <div id="content">
-<div id="skinconf-txtlink"></div>
 <div title="Portable Document Format" class="pdflink">
 <a class="dida" href="tutorial.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
         PDF</a>
 </div>
-<h1>Nutch tutorial</h1>
+<h1>Nutch version 0.7 tutorial</h1>
 <div id="minitoc-area">
 <ul class="minitoc">
 <li>
@@ -276,11 +231,11 @@
 <ol>
 
 
-<li>Create a directory with a flat file of root urls.  For example, to
-crawl the <span class="codefrag">nutch</span> site you might start with a file named
-<span class="codefrag">urls/nutch</span> containing the url of just the Nutch home
-page.  All other Nutch pages should be reachable from this page.  The
-<span class="codefrag">urls/nutch</span> file would thus contain:
+<li>Create a flat file of root urls.  For example, to crawl the
+<span class="codefrag">nutch</span> site you might start with a file named
+<span class="codefrag">urls</span> containing just the Nutch home page.  All other
+Nutch pages should be reachable from this page.  The <span class="codefrag">urls</span>
+file would thus look like:
 <pre class="code">
 http://lucene.apache.org/nutch/
 </pre>
@@ -310,152 +265,138 @@
 <span class="codefrag">-dir</span> <em>dir</em> names the directory to put the crawl in.</li>
 
 <li>
-<span class="codefrag">-threads</span> <em>threads</em> determines the number of
-threads that will fetch in parallel.</li>
-
-<li>
 <span class="codefrag">-depth</span> <em>depth</em> indicates the link depth from the root
 page that should be crawled.</li>
 
 <li>
-<span class="codefrag">-topN</span> <em>N</em> determines the maximum number of pages that
-will be retrieved at each level up to the depth.</li>
+<span class="codefrag">-delay</span> <em>delay</em> determines the number of seconds
+between accesses to each host.</li>
+
+<li>
+<span class="codefrag">-threads</span> <em>threads</em> determines the number of
+threads that will fetch in parallel.</li>
 
 </ul>
 <p>For example, a typical call might be:</p>
 <pre class="code">
-bin/nutch crawl urls -dir crawl -depth 3 -topN 50
+bin/nutch crawl urls -dir crawl.test -depth 3 &gt;&amp; crawl.log
 </pre>
-<p>Typically one starts testing one's configuration by crawling at
-shallow depths, sharply limiting the number of pages fetched at each
-level (<span class="codefrag">-topN</span>), and watching the output to check that
-desired pages are fetched and undesirable pages are not.  Once one is
-confident of the configuration, then an appropriate depth for a full
-crawl is around 10.  The number of pages per level
-(<span class="codefrag">-topN</span>) for a full crawl can be from tens of thousands to
-millions, depending on your resources.</p>
+<p>Typically one starts testing one's configuration by crawling at low
+depths, and watching the output to check that desired pages are found.
+Once one is more confident of the configuration, then an appropriate
+depth for a full crawl is around 10.</p>
 <p>Once crawling has completed, one can skip to the Searching section
 below.</p>
 </div>
 
 
-<a name="N100EA"></a><a name="Whole-web+Crawling"></a>
+<a name="N100E4"></a><a name="Whole-web+Crawling"></a>
 <h2 class="h3">Whole-web Crawling</h2>
 <div class="section">
 <p>Whole-web crawling is designed to handle very large crawls which may
 take weeks to complete, running on multiple machines.</p>
-<a name="N100F3"></a><a name="Whole-web%3A+Concepts"></a>
+<a name="N100ED"></a><a name="Whole-web%3A+Concepts"></a>
 <h3 class="h4">Whole-web: Concepts</h3>
-<p>Nutch data is composed of:</p>
+<p>Nutch data is of two types:</p>
 <ol>
-
   
-<li>The crawl database, or <em>crawldb</em>.  This contains
-information about every url known to Nutch, including whether it was
-fetched, and, if so, when.</li>
-
-  
-<li>The link database, or <em>linkdb</em>.  This contains the list
-of known links to each url, including both the source url and anchor
-text of the link.</li>
-
+<li>The web database.  This contains information about every
+page known to Nutch, and about links between those pages.</li>
   
-<li>A set of <em>segments</em>.  Each segment is a set of urls that are
-fetched as a unit.  Segments are directories with the following
-subdirectories:</li>
-
+<li>A set of segments.  Each segment is a set of pages that are
+fetched and indexed as a unit.  Segment data consists of the
+following types:</li>
   
 <li>
 <ul>
     
-<li>a <em>crawl_generate</em> names a set of urls to be fetched</li>
+<li>a <em>fetchlist</em> is a file
+that names a set of pages to be fetched</li>
     
-<li>a <em>crawl_fetch</em> contains the status of fetching each url</li>
+<li>the<em> fetcher output</em> is a
+set of files containing the fetched pages</li>
     
-<li>a <em>content</em> contains the content of each url</li>
-    
-<li>a <em>parse_text</em> contains the parsed text of each url</li>
-    
-<li>a <em>parse_data</em> contains outlinks and metadata parsed
-    from each url</li>
-    
-<li>a <em>crawl_parse</em> contains the outlink urls, used to
-    update the crawldb</li>
+<li>the <em>index </em>is a
+Lucene-format index of the fetcher output.</li>
   
 </ul>
 </li>
 
-
-<li>The <em>indexes</em>are Lucene-format indexes.</li>
-
-
 </ol>
-<a name="N10140"></a><a name="Whole-web%3A+Boostrapping+the+Web+Database"></a>
+<p>In the following examples we will keep our web database in a directory
+named <span class="codefrag">db</span> and our segments
+in a directory named <span class="codefrag">segments</span>:</p>
+<pre class="code">mkdir db
+mkdir segments</pre>
+<a name="N10123"></a><a name="Whole-web%3A+Boostrapping+the+Web+Database"></a>
 <h3 class="h4">Whole-web: Boostrapping the Web Database</h3>
-<p>The <em>injector</em> adds urls to the crawldb.  Let's inject URLs
-from the <a href="http://dmoz.org/">DMOZ</a> Open Directory. First we
-must download and uncompress the file listing all of the DMOZ pages.
-(This is a 200+Mb file, so this will take a few minutes.)</p>
+<p>The admin tool is used to create a new, empty database:</p>
+<pre class="code">bin/nutch admin db -create</pre>
+<p>The <em>injector</em> adds urls into the database.  Let's inject
+URLs from the <a href="http://dmoz.org/">DMOZ</a> Open
+Directory. First we must download and uncompress the file listing all
+of the DMOZ pages.  (This is a 200+Mb file, so this will take a few
+minutes.)</p>
 <pre class="code">wget http://rdf.dmoz.org/rdf/content.rdf.u8.gz
 gunzip content.rdf.u8.gz</pre>
-<p>Next we select a random subset of these pages.
+<p>Next we inject a random subset of these pages into the web database.
  (We use a random subset so that everyone who runs this tutorial
 doesn't hammer the same sites.)  DMOZ contains around three million
-URLs.  We select one out of every 5000, so that we end up with
+URLs.  We inject one out of every 3000, so that we end up with
 around 1000 URLs:</p>
-<pre class="code">mkdir dmoz
-bin/nutch org.apache.nutch.crawl.DmozParser content.rdf.u8 -subset 5000 &gt; dmoz/urls</pre>
-<p>The parser also takes a few minutes, as it must parse the full
-file.  Finally, we initialize the crawl db with the selected urls.</p>
-<pre class="code">bin/nutch inject crawl/crawldb dmoz</pre>
+<pre class="code">bin/nutch inject db -dmozfile content.rdf.u8 -subset 3000</pre>
+<p>This also takes a few minutes, as it must parse the full file.</p>
 <p>Now we have a web database with around 1000 as-yet unfetched URLs in it.</p>
-<a name="N10166"></a><a name="Whole-web%3A+Fetching"></a>
+<a name="N1014C"></a><a name="Whole-web%3A+Fetching"></a>
 <h3 class="h4">Whole-web: Fetching</h3>
 <p>To fetch, we first generate a fetchlist from the database:</p>
-<pre class="code">bin/nutch generate crawl/crawldb crawl/segments
+<pre class="code">bin/nutch generate db segments
 </pre>
 <p>This generates a fetchlist for all of the pages due to be fetched.
  The fetchlist is placed in a newly created segment directory.
  The segment directory is named by the time it's created.  We
 save the name of this segment in the shell variable <span class="codefrag">s1</span>:</p>
-<pre class="code">s1=`ls -d crawl/segments/2* | tail -1`
+<pre class="code">s1=`ls -d segments/2* | tail -1`
 echo $s1
 </pre>
 <p>Now we run the fetcher on this segment with:</p>
 <pre class="code">bin/nutch fetch $s1</pre>
 <p>When this is complete, we update the database with the results of the
 fetch:</p>
-<pre class="code">bin/nutch updatedb crawl/crawldb $s1</pre>
+<pre class="code">bin/nutch updatedb db $s1</pre>
 <p>Now the database has entries for all of the pages referenced by the
 initial set.</p>
 <p>Now we fetch a new segment with the top-scoring 1000 pages:</p>
-<pre class="code">bin/nutch generate crawl/crawldb crawl/segments -topN 1000
-s2=`ls -d crawl/segments/2* | tail -1`
+<pre class="code">bin/nutch generate db segments -topN 1000
+s2=`ls -d segments/2* | tail -1`
 echo $s2
 
 bin/nutch fetch $s2
-bin/nutch updatedb crawl/crawldb $s2
+bin/nutch updatedb db $s2
 </pre>
 <p>Let's fetch one more round:</p>
 <pre class="code">
-bin/nutch generate crawl/crawldb crawl/segments -topN 1000
-s3=`ls -d crawl/segments/2* | tail -1`
+bin/nutch generate db segments -topN 1000
+s3=`ls -d segments/2* | tail -1`
 echo $s3
 
 bin/nutch fetch $s3
-bin/nutch updatedb crawl/crawldb $s3
+bin/nutch updatedb db $s3
 </pre>
 <p>By this point we've fetched a few thousand pages.  Let's index
 them!</p>
-<a name="N101A0"></a><a name="Whole-web%3A+Indexing"></a>
+<a name="N10186"></a><a name="Whole-web%3A+Indexing"></a>
 <h3 class="h4">Whole-web: Indexing</h3>
-<p>Before indexing we first invert all of the links, so that we may
-index incoming anchor text with the pages.</p>
-<pre class="code">bin/nutch invertlinks crawl/linkdb crawl/segments</pre>
-<p>To index the segments we use the <span class="codefrag">index</span> command, as follows:</p>
-<pre class="code">bin/nutch index indexes crawl/linkdb crawl/segments/*</pre>
+<p>To index each segment we use the <span class="codefrag">index</span>
+command, as follows:</p>
+<pre class="code">bin/nutch index $s1
+bin/nutch index $s2
+bin/nutch index $s3</pre>
+<p>Then, before we can search a set of segments, we need to delete
+duplicate pages.  This is done with:</p>
+<pre class="code">bin/nutch dedup segments dedup.tmp</pre>
 <p>Now we're ready to search!</p>
-<a name="N101C1"></a><a name="Searching"></a>
+<a name="N101A1"></a><a name="Searching"></a>
 <h3 class="h4">Searching</h3>
 <p>To search you need to put the nutch war file into your servlet
 container.  (If instead of downloading a Nutch release you checked the
@@ -466,35 +407,32 @@
 <pre class="code">rm -rf ~/local/tomcat/webapps/ROOT*
 cp nutch*.war ~/local/tomcat/webapps/ROOT.war
 </pre>
-<p>The webapp finds its indexes in <span class="codefrag">./crawl</span>, relative
-to where you start Tomcat, so use a command like:</p>
+<p>The webapp finds its indexes in <span class="codefrag">./segments</span>, relative
+to where you start Tomcat, so, if you've done intranet crawling,
+connect to your crawl directory, or, if you've done whole-web
+crawling, don't change directories, and give the command:</p>
 <pre class="code">~/local/tomcat/bin/catalina.sh start
 </pre>
 <p>Then visit <a href="http://localhost:8080/">http://localhost:8080/</a>
 and have fun!</p>
+<p>More detailed tutorials are available on the Nutch Wiki.
+</p>
 </div>
 
 
 </div>
-<!--+
-    |end content
-    +-->
 <div class="clearboth">&nbsp;</div>
 </div>
 <div id="footer">
-<!--+
-    |start bottomstrip
-    +-->
 <div class="lastmodified">
 <script type="text/javascript"><!--
-document.write("Last Published: " + document.lastModified);
+document.write("<text>Last Published:</text> " + document.lastModified);
 //  --></script>
 </div>
 <div class="copyright">
- Copyright &copy; 2005 The Apache Software Foundation.</div>
-<!--+
-    |end bottomstrip
-    +-->
+        Copyright &copy;
+         2005 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
 </div>
 </body>
 </html>

Modified: lucene/nutch/trunk/site/tutorial.pdf
URL: http://svn.apache.org/viewvc/lucene/nutch/trunk/site/tutorial.pdf?rev=412849&r1=412848&r2=412849&view=diff
==============================================================================
--- lucene/nutch/trunk/site/tutorial.pdf (original)
+++ lucene/nutch/trunk/site/tutorial.pdf Thu Jun  8 13:12:22 2006
@@ -5,10 +5,10 @@
 /Producer (FOP 0.20.5) >>
 endobj
 5 0 obj
-<< /Length 760 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 773 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gaua=c#VMl'SZ:1$8'@DWd\g?>tI[:?$)s#B<k(...@TW>H>_Cmso3p]tLTr[jir_;(lZ>H:n)t;KmfRf70(W)>Kum>?Ym`U*:-CEQ"Ds&igd%JhHOV"Z:I%-DA_HUg=j&$Sr:a04;a>[McXPC'/Cs.^;#Rb%KtQ6`g%?rcT\\Q]"PU%@,>HQp6d-V8)sj`^kAkXc1@OA&a^KN,+EiNY6Ti0KJc6AR7&d<]s(:l2hk*5JHk]&o`)cl,%,&.,?eYkMg@d?di_?\`Va3OqTKbk0Q*r]`XO#_`-p9,+5;F6,9rVUkm*>=GU&GbsICYHS/rklN47$_=NuY'7.>,8T3RBu_TeF*TD^!S>jA/qNlJ#n-iaS.f`-Tq:$\F$6/\s4=(/8&'9q(,c3$nsl6'mQkLM=suC?bKJGA?_RkGu")>OCm4j*!g%ipA.p2g@L\YS$JGr2>on-Zj<?WiC*u>6#MQ<YXr:cb0e-E\$fY\UZ:.*t<UOPQ~>
+Gaua=9lo#B&;KZQ'fqLF<.3K1\!!%PHK\%TB6%[4&0SbEN_O%E[/[k+%$o*Km*)85%^>Y1bHlM=[?Dm20Vs:RLd86QOSN&_#cn+:;#S3Q2YTOm+:Z@6Glg3#h^cCmgjiTANU'*0(TGQaaP@:.,A644(Fg0Q%JUBqDfr8ii-hh)"<MQ=C"PgE`&s5q%;m5HMO"(P-upn\?+0'=J5LMRN/1VuA&tBV4m[NZ,B*Ijn,4B$X&R3=-B*okYAkFn66J-%(m08V8g2kDOFCZbqlA4-c.=Sk1G+iWbNmR-Ig*mZ%IBHL[&9Vrm%3s"Y*I))G49]JlnY&jCX?:+5)e8r(lLa@5*3[g8gb>DNrO\/UBb/eX)qVrTl!M2-j'[B;[^hS6.a@-Cn]14]n,nT:I%-DH/?r`hT-p)r:a04;a>[EcU--)/CpkHhtqClAFamkkLZ'5JMp$A&88]EN3l<;%2$58hdUf[^6%)B[WrOU7YgOU5\uJCQ?[r.4o\I!PG0I@rGT0Kli#44`b2!a>a4f-1/tI#p:ZH9Y&$n_,Mk>ZqD@E6p\[h7:Lu]#>ZU#73/S4chN(@N;;8)f4BpJSg%R^bI%N(RT8Oq(c43k!qiSeK[5,i#OZi`4'^F+NqAM+P7fJPRcZY\a,;)FtN,"@+I6is6THmVC5D"_0_F^4:"NMcsgmc,7k:dB+LhliMpKb'&X4$Z1]2AGAiRh99+muG-.Ib@PZkWu+SeWch'?[pC/ZO247f_bdQ=\@GYtNE/V,T*g#p&k,'HrF7~>
 endstream
 endobj
 6 0 obj
@@ -146,10 +146,10 @@
 >>
 endobj
 30 0 obj
-<< /Length 2473 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2733 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gat%%D/\/u%/ui*+nWrU+?AcdV;K_(Y?9OrFZ0`P:rr@`;BkA4e#@*]r@$pkj4Pg76\-@XO$)tVq2eQ^0!?%/,0TM5D(W4u[^E_f/0"RK<artYd.`@VL"<Q:rk<QsF6hBdqY/UVdsp,Bdumb+H#ERj/O+b0a)]s4OflV3L`IlanoShmg9G.5glKJ8+4BVW]$qleq/N1$BeD0`eao*5;Q>5[]__A;e8"s]f",mmQm>N7b'i8=<b]*N6pa,0?5/]"iZPNflc[gs="fo(/DjTWo99_ri0Um82e),Yhj2F8antBtM#,)"nGkb8VQIq.Q&>mVTo0BGWe.(:L1I#0m[l"j(n^?=%h`]-C&,#,4=C%kr[8f0b4dPR)Z5_KJU"_\hK3%Ile!B&=68AeL46$(X"!KSIr#=%(D!"UL#uC3IfC^tg)oT7Dq+55Vd%;(h4VFX6H)->P*lF[P(_K9c;.f6YMO^)E;.E/[s+H/^-7[,Y*0jH$E!6F6rOVd0nI!jWo'FNMt6DU+!6VX<?oqd84CfREirr)(d]E>`][ZarUEunI93?4N;h>N,`WQ5&F9rrHkQ.0j!;oHipt&7M5,0kCR;,-Vo"Z[M(eP&_l+=l;_Ct2%Rq,OG7-,RdddRAr]FX%,c=&S])XQF*_L33UNHDiY<;Pk%_L(8Sf<<ddhb]=*E5iH:+n6:DQcDFY^Y;K\WKBu=6`kBETN<[E[X$Y(uiUg6ODFVZma:2>M"fA<*o=Nn+CKdeQAUQ-X7U-6`'/T(^%N$Sm6]A]ZG0X1B['oo87!53Ao^Ld"8F>9U.Mj.j<.YdiCL!A[InG=;L64IWKIna_<upPN9'BHSTuGKHRPaNq"LF#O>&IH[Y*J4oPW\m!3s7qHBB96Ci4bn']aM5X8]mgN&2NB9P98#ZZD:hADMiq(B9rC.^G+@ocS@+p\79WAaMPC!c'Bb?Unu;"KR)(j$qYFqn^dZ>Z]RH*p"66icKD<mH:X..i'&UM9L
 KPOh9!bbRk-q2@&c;.7CXc0?Z4pf\/WC;i6O;B(K5q[;/_`^!94L%0$j<Kf...@Te>dA#lnT_H>%(?Z:M&C)(?SugZ.]9^Y>FXF$s9Ytd)I=0F%AC,pt7g@p@mV<gt^E=],R$MS6c?9sNM+AI1(O$
 WBJY/,fY6J;iL1ieKcS6t3].HqAeM]'mem85q?H\62`T[iOMZ-/i]"mY#M1e(Km/4X>fL9lZgpGRpnW?Y3A#tD])88a'Yft+N8-tbH?7,Msp_#hL#ck>.-i)4eM!+X2brrXNLI.(`QL&s.RTK+J&6,.Zqp76BCXp6(R'G*;<G1MSP9iA[TFABK'.VK2,&s:UJ;0MO[<R%$l#YlG939*[<elRDd5C6bjN1!/L.T22]t,UI!O0k3jHp]0e6q2*Vc0/SX2nIT^'sG_h.4t"_sN$:HbF^6%^\1hb]Y06]ncetE7%aC4UUU3I]tEt1M6j"5`Wu5?j_#j&,ruP;L)GZ*e>sh45(:'!kDRhrHE%]IQL\^9W8%$"UXtVQbOp:qc/*c*3XFg\^G\hD;E8Dn0T%V,_:CYg\[%cY?:bA-TW)eh7J5j1u!2HSsC8*FSo'iHN(diU6BB9puY<.];Il=m)?tr)'=UF)tZgZhR]?8!P&.0pZn^i~>
+Gatm=>BAQ-&q9SYi:Nj@CW")E\%F_8S0h/r4gi^5Vs`eG&gX`U#aL`)m]Sh_?A&JN;X0ZF*b&%"`U740gMao0Z\t<b^...@ic>7X^3pR1=\F>P?OULW*_$T5;1YXt*>uL71\RqF^J,,<+X%IECQ!%8&E.3"Cmk<PA0)bodXl8Y9,L$AuIGYXEb]OI/k2asY?i9*HQ/7lhPVjE7Rkg&7T%UI$IWOZmXep!g/f-g[r-eK'2F^RgaHnFK/<b*!F7[&eeJ9+]BQ\cMlWc+^Osofc\KEGB[LV<unO;*D80+%M?Jt1@a2XTL2IANNo8F/hi+&%[45s?uiO6nR8sPI*k&FKSOD08A3+`-2["AjpiO`1c6`.]!29M%qR>Kl58QL6oO%EdZhW8c(o3<nFhE8sOE1kV+JI:!R/@=I,n8\0uq`irprd=U`pE/h\9Vd;2r?LQ)[0"%3!Emu*fgoU[Y#K,,eB7^fX=BGqmsi&A:1m!5VeKB_.Ppl]P20FY'#2\/Fum7K-mEPEl0U*0Cuj3e87GCkJDWPH"=2KR5pKQ7Du8Oa`%X6r[PP<s`8s7%cq(P?c!mW]dif"UJD(S(1I;)b_cH^@P^:(i)/!#\_=.We/-KBIr$E6m`80lgS/%!8%V*<6H+d".C=q`/M\5Za'[!"V,L[>i<kFpF92m66Qga:j6WKDk-jD`I]>(BJ-1YP's"*ac_6p9IK%E03-+51fp(d`Vj985tZ1bMcWEc+-YtD#5YQPU7;nPSXp)BEZ38@Qd'n.sEeQ:YMcSGIA]R[Y[CR%,JV\^_EdYeT@8">^+Ye1(+O1X?Q6*4gkXQ0+t.>P0>PtUbm1+>D\n3O/:eY(>bZJJh&4"6N;A!LVE((b=6P:c;,dU7WpQ(lF>^^pW1@[rS-AHp:<fse7<PAH5AZ&J9P><,"a4Qp%CXWn2&LN_lc<8mTh)F6t)5IjGXU:_DdU<JK-5,GY<#G\n-]BA/5Z?#B,.Mj$T[?N'R^LA,
 t3:okOcVbK2#PZN;TOM0O'3(e<KSY!g5Thm&J0#W6_jb^tY#Q'qW/Kc7/9`acDUN8C1J-T;nIUthD_g_J9l&Y2+CXL-8*Wo=5%_D$7tQ$I\!=L@D@[h!;AT%_h0#a&TEeb^UX0$ncE\b#fL;b__FT0t;&4`CfN_F9i>hK>=d6FJWdGuWbW+oR3JU?2<cY,FIA._8\/1PlkF?4`"*ocDpup3e[.7f>,[gk+?7"hKLDte'nELTmJ4gI2(!%<p45i-]G[n*'lYa$P:1D_JV.;7hr5O8Aj5eN2a1>/_WqI3u/_"qOZ$C'Z%"(*dro'#jnpp!)"*i;i1&@ZE?dAgq%gX#gggo@cE+O4ns+CZ7&1n%2PH64ZM<<>Z!H;h;f6G$GS:.#;@KN)+kf-_8Q>0:]!O1_",>;_g.dJd_MHT#^XrKVV!.*4ar1Nc)@ek.a+\97n*_(rS*q*$,jtdhY1"9=$B92rbDO2l5JAm1NaH2ad3!PFgbn88BD08jiS_*>91646HXL`h`qP@joIrsCR4=&\km9OIt'8Eb7(_CFWng*bgTaSfr5C<1QlbdV(?T'C!f6]OX#6EIX38rGM*$r<!J;-ta$<,-JYU\H5GdYT/\A&F^ZV[,0;Cs8Zm*E7qNB/Zlm"<%%e\j@_V#15FGe8>44Ze]t3>GoYKDo7M9l:Tjrpl>E7N)J]eJ"p?I3K\;'#CqdM,_)533o&MD5>or?`qYpiZsBBJeAmjq(RbNa*V'/YM3k4V6M"Z2;hmJili.QK_RPiQICZZ%`cTtIJBCFX"5+:@("1A\3+uJ.V1M)NE\(r'Z\jrPH,%k:`7u5$Q[3*%bkdN-a`Jk#P2>SFUX<nE2]fEfn=X]Kaia[2;PMMJ.I<>hk%*jAHX$pJ<qYf<45EM<Sk0sOZ[$#86G'r`Ym]DTf=D/QmYEA7btJ1"]Y0/\3k*U+],tU[[WeL6<4k<X.h`0^@WEoo:rYH=++`8\b!B:hn_ZcV(o8tQ)#
 X7Z@+`7j_99@lONeF^Vnl4MT=k9[%?]K4Q%It_KP&UbnBO*8>o(`s*"0GP/j>MSsRKD>!.$M_dJ-5h+i,!ZZn!uJ=$+s6t'c0d*\CF?sk`U?UhNR36A6Qqm.cl#,WF^go)h$;8WDqh-3QGQ$nYLe'eD^@\YD8\BO&Rr%u7V*._'pCuT_d1p<V4.n4BH9sZG_nd.:;[GcsU".51C04Q*phY+81<62jS.5\o=aX?m;bq<l"g]3MQX60hLG7b/6M<UiKU];p8HY6VES,t&F`&&+Sg"__p^j\@!Ha?DcZEsr07.ENrqncC3iVKE@R;4cbciC/2P[C;4*uCH'^)h&NasG8@M^_k`98S1Uf$\R</,AVNrU%3%no-\hq*]^[kt@f!^)&sUOL/5'"\chY0Ribna).?*Ock,ji%\hQLcYY7ak/J^hI5b?0MT!Nl%%rl?:6o+d6g<$:OYEWplVf&rCMI_qf5D%Y=:'umZ2;JHa'I3k'n*[.#^BP,l\)tE+%b6"bgmpgVUhVj_s\^hsPXZq_q;HjQXWB#TsUS@STII4bEokJt69qTr\^PTjMKO#^kc>U@/bNGMnYW>ZR[&<h3DK!nPtR%j59,&O':f8aph5^2s%mo"Z4dEX-4?0PITbZ2G_afT78c\k'Y2a9(>ZcVC&:$/dh;!!d42[FFV)mheKd@s[sh4DLITl[%]-emqADd!T=[c];g@mb=e)k09GDqq\a,K36TpRtl=Y!^4_qN$%Hm+EmbeOCDdN~>
 endstream
 endobj
 31 0 obj
@@ -186,7 +186,7 @@
 34 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 459.648 633.666 482.316 621.666 ]
+/Rect [ 253.644 633.666 276.312 621.666 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://www-106.ibm.com/developerworks/java/jdk/)
@@ -197,7 +197,7 @@
 35 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 154.476 594.066 191.136 582.066 ]
+/Rect [ 154.476 607.266 191.136 595.266 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://jakarta.apache.org/tomcat/)
@@ -208,7 +208,7 @@
 36 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 164.328 580.866 199.656 568.866 ]
+/Rect [ 164.328 594.066 199.656 582.066 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://www.cygwin.com/)
@@ -219,7 +219,7 @@
 37 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 90.0 479.732 275.292 467.732 ]
+/Rect [ 90.0 506.132 275.292 494.132 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://lucene.apache.org/nutch/release/)
@@ -230,7 +230,7 @@
 38 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 339.6 466.532 391.596 454.532 ]
+/Rect [ 339.6 492.932 391.596 480.932 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (version_control.html)
@@ -241,7 +241,7 @@
 39 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 151.68 453.332 169.68 441.332 ]
+/Rect [ 476.604 492.932 494.604 480.932 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://ant.apache.org/)
@@ -250,10 +250,10 @@
 >>
 endobj
 40 0 obj
-<< /Length 2366 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2190 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GatU5D/\/e&H88.Tl3T8Qk?=lHqUefBS!&8C1%nD%\PE-&gE1$7+KD.rM]IcX;;gCJ\lMR8+PV[cQ1@#f2m/<Y_...@fXuk>@Us;',3N;V4G:qe!C:p!l9.3q>t'*>rJVVdHWrK+],kRVA!*>%%q%7*Ct+^&%]mrOP1e4rSCOLPSt!o]Nsk+k$8"]?U"-])#K8H/ILr2J@1'Y!;g>@L-20K1HsPlQFF1ogTO$6*cCU+.SoLDuDqU.%Ilaf?&prE]9S&X1LFY.Lk,o[HnXPdAj5O#*n+L%Ru1ClIc@c+=KE#,,5GXp\e0C'M/oaLP`o3!`kBLY[4Q(CZ'NT0?K5?B@8_hT4TcfU`+uC,%Eg0Ai@8n-H`nm!Nm<bhnW)R'fcQM,%p(ah!m@il3]6Zq&ld)6Q7q(gI(R3KKR@PLiqT@LF8aY@7"qnAOD82-O;T=V1ma.]CNk@Z`lqF`'^\B!=_N87nUEE<C8JiFZZ3>J!dL3i#.=hW,QIU+I>5tBFu`M7f$[m8IMkW8d(uTj`>Co0!\KXU!\\OlH[btB/6U0;H9Vk98[u;5^H=L@C'GC"U-$KqR'sF(I/Z8oJE=?`1f\*9ogFk,$[i<W_-&QQ?K+?.&rSiLh`]RN6op/O=P)f`@+FXE(@kmW%s@G!+OMPF?jD"T!6Bt(D+"WS&0WA)Ri't1Og9Z7n2'@BY-N
 8=+[?rF'tK_d,]I1hW5)"hA(Z3qSr.bN/RHn5*peka_$?A`^CTJ+0ZB1L5\IU7rmU6m:G!:V2KG#V,Tl6M1`e^h_]m4/sM\:G^i@4DdeNsnBc0"#R&(RZ.NeLK98eHc)f.7WjZY(@NsQHl9fC*j=Vlr$*eVAQ^a["Jb"7hVjiOBXUqjL"8o-1D*,,sV2E-SQfk_QZE=4e5`Xeq`@>OJ+N7G8PR9b&rX&M9/N[X6ZN9X4Is!TeLT1Gs2uGYn9Ra%daO5+HV^sSc$X)lEWX$Lb[<"W=<LMd>BPE6klPU!aA<l2CY.ACKKLX*bLR]9"DI@_)pZmsaX\XSb$_`juHk]VJ+JW48,-cKGmN<?1b@T)\:Eld&W2Hl:SJOlZN,Bk`T"BX`:g'fpZGPjFaB+u[67'JS#4f<TEEB]0<8&)KeTYC&cNZS2Bu\UQPR2OpWBq$sMRP73^s/,11uebX;^tg4=>*+[#QU0E]G?%64f$I&Oq9%B6;NK>id<0XjO="UBQNc0Z.m)6K%Y0@hD"^=;2\(RjH@AV/O:S>ANDI$0t3q9R\\PGaTNsV0i_f^cYpGra3.R;a#fTJVH&9,?7"*_30iHQ.Y1H/?(jA&PpfQ"b$W#,o)Dc\Z[j+Xnqj-=$7=kAH&%k68W:aj?.5__AccTE)=WHaNbmI"p"5gW4u&3U`7soIio_"1(iQ6S*KmDi<Zm5"L$T%scanpELZ-e!^.JsR*"u9G,,?m-o#TJ,J:FJm+D'?8kA9U4Y"Jbu-S?STVNFc]Q<2cRE3a[SLjWaE<dSJ(m++GnjH3*LVIJtA=M'i=i/jgeo3<])2P1=;IU2'GGn.$9mh\%mfQ@aC)h3+Ch-J=88CoA]I\N2+gsR2!!hX6lOKsWa*@hLs55jl=ElobdB<,'*<Z%W%5sr'M,*b#,P]h/l@0OJHAh.`4Q\6HE)0Rp23@6MGqh2*5WqW9mo,'/11-cI\)u3$#lSu:QRcmu=r)Qs0\VGcR*BE
 ul^P-&7,<SSY_/&pWDI@"EVWtp<3DU**`9IDA%,(m\TV.aH5e4"RI&Y]IP"4O`(aG,iVgIeC[N&=JatE"u3Pe^l(8],*J2N$gY7p(\l'a0P`fP:\Bk*Z!)["1;"&,M#2=,Q06`PZ,<)5M9`3KfC;d8V1Vh]&fG(:c4b)J7g-]6B@I=pjQltn;d,K<e7Oq>>=^31l)]JdeXj1"-k1:mA!ZV*3:>A^VV>Sd!pdUUW6F\`&(%W\YJV4a0ia^e*"[ge#tDKm"D7^L`c:%PGmbCCP^CK%o_>*p*#N>@kKhR9es"4cK08"RG+D-Nh0[36=R7mtt2IamRZ4a<oS=6[b4q-G&1X/Nf/:qeri"G))+?$4bOC@*""=jF;pI</2Yp)g0-'FF~>
+Gau0E=c_;q&:WMDTr0dL\r9&5GpnaW8W]V/OY"k7[L]`6gOaQJUuLaUn&W(P,g,g=/Jbs68fD^3S*M$iou#V?LV(=i*,?)"n*a_TfiAXenCR9dchH3&QkR&3/Zm:RDg/Cg$90ZukiioPI*:Jfj'd.ET7q+VE@f.j>"LqdJaHSN\b4"LLI8)5_iEpS4?KBB2QbD:Rl-%m/r8M,=u8*^FS`'L80fX*dGFfEHM@bl`M6al:-9"h*!]Fn;2O[+ZEi>JP5[er%H=30)[/P9:a#l\DQ_5NLNcMrCi%Pm6_S9m8H!S?oVj9s[+MQ!pSJ_(XP_C_+jO6SKqhR`cJg]7;&/Jc\\?Olpe.lWG^IdA3D@rdk-cgal+X-.o##RS^1b?kZX@l"HF4IP&V9PY;&VH%akP[^/b<3]#tA'u*\q33+%+6_7[KB8b<ddIn`At?`seL\7a-)R\,=@YIj+BoChP-S@Ggr-X[e4U.H/8tU(UR9ktVIM1P3t!,)++7>"b3hQ<RYG.*luqIBFK:UE^.i'ro&^maIg1M/\&=<r-bA/Dl)S6tE6P!NsLT;;b<FZq/WId&W7>BlQN@G$>Bu?!ZSCEckM/0IsCU&M;?mFXW_1RF[ifmP;>5[a1B51pfQc7qcPpnN,B+L5MAGG2e4;Q?Ac7X)JkL^6/)q/p@RL#pgus(b'lr'(lI6h+FNbb>ELWW;>!.:b$l6<u3XXBt1aQ]&)a?/OcBd+WEg#TMfj)-+;S=k<e'Zm'rfN6>>?68W@`.]t"c`a>0/<@gR<T$%>r"<TI5D=.)Hn73GSO.nEKAo**\l:\P*R6fKE[Qo5>bd.XTM.D$aAs+bR4ZKf-2Ie2$8X6[#S\C@'qX:qq%[TJ=egCQ8Llp0omSZ/*cGYp:<Aq<\!BtjeRUS_&C--2hilBB4`oOXt.]@4eB^RL-njX$5AW>k\m%oN>QiLQY`;&1R?PSU[HT`V5+"oqGKO7!Oc6*rck3=<J"X=/?!NkVS
 WbmL\lO]%k#GnL,KP)_)'d0fr0_;_cJ[.Bu[!Bb@KI(ka[M,_hu'-.%!\ON37AOD7\AR5LKb`hU<_8-ae+=1\BS#u?-((Jh-J,DQBE@&SrX/[eQ3e]2sh?e0cU[6eo3*@p(5uG,d9P_^"UF@04T5,^Ub:#CW&r1=`d=f1Ge@4(BF\F<,7$+/>=c.M@ER:OoOY.f/al)(pEmOuA)@(.mR"s\^pHt@jqifgZ#(uNE/$jdG5uWWrEAi>sFPp@T"`@NOL<=)[H3l?M@[dr+!bVX*mJsed+n33:9LL[6n)rQGZf<4J>pgGU_ho\%"A3X'0n<gT\SV?all8@PdThDfRQ$X0.r7g1g*i'Jl?qg,S8maQ]pg%+UX=VeVM#Ma`f\:!Bb&)*)]Mc?c9'OET-:rnYFfQZDFd8nKGJ2"P$2qD8b#nSF`i)k0hfNuhpc)$aQ&[][Ef*7Ga(I@]V51>KTZU6HL:bZ:Q(GIHr.'<=\BBs'"7m5j-*C9@o8g)F-rTIS9H@oJ\?2gc+Lm(g"u,GEJ`mo@'>aYVQQ(b*l,9F^s?qL56rF@qWD5E$FeH4PhbHKRhTn]>JdrJ#?En$%6McP/8`G7h6njL=!BsF@-Wq_a^)4s9p+^d+6p[nM9$aRq)l-EV@^\<8sN^UU]Y$3)0?6Y@;a7?&#*cWY'YeB4]DEmal_H"7K>%\;L$FI&X>S5SY[o.?/IPV%g4j,>k.hHbuVmHg%iY&M&MV[)cOhFgthO]'t>UAAH^50+r5Fq%Gb'0)XBEIqT.j,YG#l[CA,$=0$E8Nn_GCEH6>rW!3,M&%3PM&F+.F(-I)ZWQjK2>po2rh6JcniIoZVga[ib=N9o&F\SnR:+4^q(%6<9@^mOTKDF`jXUQcMEVT(rW[YRX9!b=8*Cm-E\E7X!%@&VDN_9(hka1R_$c6Z"U5$ML31lS:u4*6ki_^=fkOBQGsXX@`9G"F1W?_0PCToBrHX[`p4&DXeYRJDsb.?&_M!^?
 ,(fI3shJQi`X(0c@obi/)N;hcHR_gnBD^?YOFGR_kCCYaNe;F/%iBYS$A1pfUcqE5GkMVmEt)fTbT3lN.u_Hs'GHNlFsjs#E^&>;,Sd.?eZ>.tN2R;YMZf6KT+^+$,'H8p1b4`<X6o:9U7D;1[`4a69/YKl#h:$^-e:7lk#dTq.MNl#FLb)f_,"1lHsDhZb?anj2&:^k/<!s9ouGQ~>
 endstream
 endobj
 41 0 obj
@@ -265,10 +265,10 @@
 >>
 endobj
 42 0 obj
-<< /Length 2365 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2140 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GatU5gQ(#H&:O:Skb18)2G8rBWCqaWBUWgh,.An'"DG88BUcH\aHA&NEAm%$GB=q0.G:1ZJ;l!naI0q%1PbVOX4dDK30Y$,\Q[<aB/?<C$id.mh%1Y(_C*(@SZA=Qf>CUYX/4,4=;?me$RT,'iSbs2gL6neC)F%Y,fpO9\euP(jT<]tjH9&CF7gLI5^OTaoqUf#T/.+6mIHe>YD]1->BdVJGj"KP@ff].ZrpT+f)Dq^a,.i'dsd_.6h4Z\;O'nW-Iueu^_b5%:?;u',S:5Q%te[]HnP!n=m0\s]YLHq^"fVfld)^.4dWDM`/j;Tq!7%=J<)f*7I6=SQ>.;8`<\1*/Tk4K6)`Bk32>PTCOfq+SHd$G:[$HFnmA5>.dWh^F8sm/,4'bZ>MNj\l$=Vf:R'L\0CqMYd-AebTO@hdVW!@klZlRqbBek\%pD4MnF$sr@G_4$P$1VDRN>ZS8"Go+M:56[bu5>N:2/B41ks48cZXM%,7*^;isbf3a(r.2i<V!3dj/V30rs&=1c-Y5MI!c"eb.Lb6^>Qi`Mpj#I#eD9it/+-L[b+9]rneY$:bjDh`!.HFJZ]NjaMRp?P&ibVO>Y*A1u(O[$lnqQL?(kQZhX;KE-2D(9nYgO0Yog1,;PnI[_YKih.&_L1a;gXO+N5mu:4\5lG"@L;>\(nNp!VUiD%`,SK`#+=XFD`"m@h:G!'RO;,'>3/3u/XU:8,G&H!CKTLMRoRd3T?[4Gds*4F8(e\2ka85,Pm,(t+X7Q%q1ZNAl7G)o98,s.g*:?7K;SR^E3%bM+i#J82ZeoCkY<(usj7HajZ_4Op]mTck].2BL*+Vu(5C3)#iE#:CPPKU6bJ',jhor8Gh't,'%TWs[7^)P973lQCgC8c$1<p71d/i4</+GR!m#WQ^6qM;2b;*@8]7$i>Z%B9A'/W>@66"F>8Rh-C`ZtgD,A7R:72PT&DX)o@N37`Q0rBY1f.knUiT7pu(_s^#TODY-B^E?
 sT9OKt[5oFHj0[=oA\X!0lU\rC%=efAVrtB5^6"J-#7dr>05*`Tk2aZf1jkd"7Sj@Bl-'5q3&%\Yjfk_LX7+U\Zu!ldCXP!G#4kmWOQq`Z,b(u<]V-=&W1A-2VI/B^0_<p*UIBrZ.*5f-H`mjcJb`EH`(4NoD%9ghfaR&.;4.oI.L`_+Rk=*V[q0"*bYnn<Cr$QHI9-/<Q7=DdSkjS9`*nSda@ij<A,b_u3fZeM_,[@ioDr-;.sF(?O3)Z,lC_#0n^:)lXFa1&+S2\QV*Js?L!'at8"?F,GaV'((N3<EES$]4q&2Gm<(>AOL%I&5Y3V,1ZQ.qo12>Sc-TsXPhhHZu>%ZZ;EaG>)8)^PqF-%jq4=e`D"];JJa5&+&UCZTkA[`+r0+&!n>+7sNcClH4!k,LhJjAB<1p%tp2l,lNj;CYcV@oD4#rCUsk8/PMZk#QW90<!ll;e`7:0Y1Whrft=QnBO'SEIDU>7Ac:W%SfokFl)6gOZJ3,Pjsd:_7orVV*G?HUB?(gSh]Cd?[_pLc:C^XGkV16c-lNDpN9O;ac:]^skH%b/@bJcXqU(ZOb7XC.H?JK_@[unY'qk,kTFAZc>)"@[rq$ZKhcu"ZGf[(Dc:s1P\9]6s]E+%X,e"o!?"A*3dRlod]iCb(M;uDK$+8e,HMkY$g9(F7A6&K2i4"7GSQn4)r3Klu-pA!Fu50<%i&d&*6jZr<S&-VX,:?l)^9Yo2L<];S1iCKC]F&o0LNGr3#s.4s_B8U\mOM9Ja&$>c>mWlK?8=a1*7#cp;N)J8W?2@Wi/gAe`4*e9<L0&CMjW5L\5TLhfJ&[Q'#:g*^otq2ZCHD<6e'N;+D[WB):q!%`1;NAB)%NZtbKOKQf*3+cUn^Ucj'$SH<dOOZ(O@'O^/D;?PiE8`(X]5S4uACN,>XjiGZk%8,\O(-)dRgii-0Rl8Z:nrqZ\3#M,f^&o>(n?<irsLm(J'SX^J(ru,*3UtE!e0=M'6Bj<G*c
 #/rUFBG/($qXeQ<I1g%WBcrs^&92(-J:I^Er?NAqNO>uN?@,=$&7h'>1DFV)DE3'>U3i%-T08a9hTFWjE(Ak1D9cJ&jJ\0MW0Y.<'V#kuATDYm)I?/X]CiDGq)>;[<Mr`i`M,YG,"`\r,>GtK.q0B]>`'0YnBbON$3M7j-amHEuj6WrepN\/mB;'.a*UOIuBKcTOfLMlIhTbDqi[*-*`m8>J@lcAtP0#"IB[,JOr:ofT$"lWYh\*ei0^2+Q;,nX+/#laGLp"hs#)j]O:h%goqKIl$_s4Sq*M1"98n4'H^J'%CCH+_hq@BOAWikpS_Xr'WFRqW'kf>k%&r%;4>6[RSC4LqPHUss@d-HN9f_Te`[]0Kj0a.UaG*s(=!#OBYF"9~>
+Gau0DD/\/e&H;*)Taq7ZD@IggUaQu1LNQl0$uNS`*XZ^$:thd`D6fu&-!lK-pmks;3ngCi?n$[Q3_:UcjgjRBoQ!"gBfc&PU#$-*?Vb.'pg+eln<](...@BH>$`\)lT,n9ff8R`MjEcG]:Qo"XZbTHD5>#H'`/Gd5?6\CpM3;n%&NL8JK&:,1fig"RWp(RuK$@*i[Wn9?D^21T?EejfnrEpQi7,;$g9$Q$J!"W*Yf/ZPR.`Os<k
 @q&Qq+-ST'*.;p1;l!-9,Ja`J2^/,<HC...@BS>%]3`B0P6<UqesYu>Oq<]fShlQ5&LG/IHM$88'6*#RHN]XH_mRp\/mZ@b[nka.Sa9"ajtm^lJ?[E[kN7-lNE$s=B?ha&/QlHFeHSpa\hAD_Y&B/5ffL23b1U:>k,<Zuf8LdC"H*Is0LEZN+.TDK#dVH$CJbLE<MXAidg.=][D<:RT^9K^0Zp8k?L=URZs3!BA.]_)XQmAuf_*R`'0lfJmMqh#'AP;f`n8kCD<8Q`!M'b`IPb5i>8Otb7X&;G)s_r`X7=TRnB+pEr7ic8Sn@4H0?6Rr%Uc)B0`Dsd=7cXpK.nM.iJL-"r,s9Dq1E=:^lO<@q-_)6T=T;r?d=^rr/uIihY_T1KPiG3/*SEc^f_(`i;IA9hK?4(MJl8dDmqc:,a?\>,njHl=(Uf_)=^1fSW05LTKZu#R,fNU%jl$,8g5H<;0O?Nbc-2WO:F:\ekVRilh9(!Wb_"#R8'q?8u/l]\XF8nj\f/S>,.:Pm+tnEW"J"iM<Mi%";D?@Y;8L,hr+'^YKmLlo8+$e/@`aFCY[YG\B>#A_uF(?9>/iOcK8c)N$M&2@n)/T^fhsr*0\0Qme/@2f%qRfrOt.k>t$=u/ugp*deL/8ff=6dGYH?/QpPW`QkM3JB7Z)[PfXu?J(rF2(k4]+F<&QL@tDSn^3Hlc>Wc[*UU7(H0^B&U,^U^OO4_mp9>F=]a7j.%gLiA7,/S?h31#:"+oi.,Z@53Qm^Hh,P$!GI=qY+ArO7pf4TLNdO'd>)GOJ
 Om.pio<H<Bts+gdnG%\TPOC'd]aL]T5ICK.Lf07\3*5`X&,5j<p5,o>e22\k^j+Zo`QAc9"5@p[rUa_KYnTo</.h*;hr-0G)6Pkl/=-i?f>3L2njbBg3]FQ]ZpF]AnM,&#Yicuqa"G(jI4l10#a;8IJV!Ur`ic2~>
 endstream
 endobj
 43 0 obj
@@ -288,7 +288,7 @@
 45 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 403.788 525.147 439.116 513.147 ]
+/Rect [ 415.788 599.687 451.116 587.687 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://dmoz.org/)
@@ -297,10 +297,10 @@
 >>
 endobj
 46 0 obj
-<< /Length 1818 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1902 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau`T>Ar7S'Roe[d!u.2K8(^%;3q90BSNqI0Vho_C_,i^dP>YIPsnKCis$@ogNR`I%rKF3?8`KgF_L;M5CVclGI,E`Sa[IDe=/$;e6>Y78)YQ]&diEJi$>+L2qrS,]Xl_lfA6rQoae7M>$58WNL\0!XfQ)F"]^pF;eTU=9.S(G[t7qHR+TOrekiBC.TMV2KjC04NU4oIb[_>hWK\R0]g'3`:C#kTN!+dlmZG)W1?f_QD]]@pa$s)KL`G[#b^.2pUUN0^WlqJGfgS@Z4\3A*kOf@la^5]RP(9eCC=YV_T<r$GT7gOtm(3i9@A-aPDa*u>E`^jSnJH-/m0:m'ij1Q:GudUs>oRBH)uD-cW)=OF=41"7o4df?0gAq2U9Eq[%0Urp`AY;Y)UOQKU336jhgNeTMT(sN.DN;UrG<X9b]:(_I3(-mP)tKq26#$3[Mur_pu$lT,]PZ0WZE9qP_9XBj8%PKiDcf:`#e$pWlIW_2'j*56&4cuQ+<nadB!]YbDe-:<9dbo\.!p4n-KVO#_iYZr"98B*YOq>mgp1P'"Hgbd/S#,#cRKm@0l]s)hL$pTsu(o_b'pLd<NB4!($W)"G;f!R!0+SF-o!UB\_msThKV%Gf[Obng4:[ktZP+aTB0/cmQ*h_(!H_L&1(roB)P*O<Tb]6Qu8UHCqYi"XH@eIp_MHh<`\ieunsRRqN*,9VuJi7+;gdSQ\'e0RHhUfU9%N1AKs$<?h7E:7Gn8Qg,%F@iE*1c*6GlHlC7A<ht'%3%YNR319l,qJ(`bl6l80k]1[;J+hF+J=?Bq-:#7-2^K``W&si1,<Qn-r&3/$mLG:N]m,F*:;amY"gmAD"Z(Q6Z:D5k2-d1&T%'3WSI<Q%$X<f[M*fgPcLRpk4RnIk!<b<"+q_&T1D/c[hHr8"p`^o6^:]-g3bP?_fHq;jl@mcY?D"?t*tU'Wi/DsCZs+gmQmXaDY:S/q=b?3Y5l?)8$&ChLp!@B^J;nft8Wq$
 4n8!HVnrqqh5o?pbG($tY,FIl!d:YfjITU3m6\8Db(bW'tj^YHTNDp_@JRNL_d=6K8itADn%-6-=`a^X\0ZHM/-5Lo7jB=0@<jRk]DD7p0Q#f01Z3<BCrSf*H3Qht@MXN_IV\%>P_f,9f*$p;Kn-[YE6)ustfK]L+4XP@ZR.%>.bi>JH+g4Y&GfLAnfI3I>$t@g%faJ;FBl$J(,225Q*.4u_I!RpmXUjLC^[nn6G&@Pco8,u$?*TZ4&SHERibjV;m[n3r;jgEUo?M$sSFkTDHp4',4BI0_EDBUX?$u]\2SdV10@PV[bo(IsnpD0[E/$!V$?-mqemHD>%2tn_V%qcJ:1<(DgMJhHpu0-WH73Tq6uXgD[&.'.W$.dKdO+Y"EcN(2XfZ2EkaBm[+,qUP4\-s[,BGi3.VI_i!=A%O)nNIL40Y>nfRcMHgCPic^8/jlSIZJaS@'ieW""92-d^NihXPRLN$WMKHso]^n)#p,fYR6=\dXf3/gEIc?91>*!PL2TcuX_tHCfZe-&`(l<+r;q12mFJIf1k6@Kgbe@od0\M5o7kI=1KX=MTa]6f!9n@bABq!!Mt#]3iWB\93YLgNsHJCu+5ojZP\5Poq1"`b]RkD2;t5RG4+KFP=9V583T1C(6o^:0#ln\\[Y?41=Y;A42N,eu/>3oqJt4h9P5iq3HdLZKfR>S.UU\W_d,$(NnCIPmpqj(gQ&]A&#f:_V,XTd1-][,rQ)58cTNV,]FEXiJh``r*F<6b&"ID<nA]9q5hL`'isV0TbZEN)o;)t?5aq*[.:C!$j4OI(BeSjH[@8"[OWW(H7Df#F@#a>7aWbU~>
+Gatm<=`...@n>JJ48#W`[6Go2'3Ch!Uh]nt3I=B>:X?6@!`8&L(upF<8oPdsE6PC'^b3>pC<7#9;_s+BG+m`!!ghdL!<-,GEHH0^V=&o%BY22T&Mo^ZVHHX@j,V]3i'MrQFV`9%!6EfY0"_/e9AW!?"<#[!HcYI)/Wn%ag54^=>a[\@bt7<i8CGCbo>Yc[+aT#:aB]i1Vig$Knr="(hn<gb3f<W8LGaJFKE+lYU0DX`l?,f+dVr(4?hEBhg&NDWFT*b#%lB]5^iI#eR,*Ep`d<I,?O5nBlq:/O?DH>U%nN1#r'0tL>=dAHCb"?NkQ6"GF%Y!:I(q?=`]U_@%,-_k^S`%-PNNqpGoapu.GRP$Q4B^$2]LS]ldm;jIKML#Id+>G-mpEUkJ$)6j0nfnU;GcUp(&!180577gs7PsJE^GQa$d=jG+BGE[hVl@YRft&YJ?A)`o='_&u]10\J78uMoj$Fe8:"_8!-QEgAbTe;k/Y^9VIPBk^0Y&hKb*r`aO=@<*X&9fbEcH]&KO/>nK/7=EG+W.hX\9)n"jB1Z?=.$Q?Xn5(!SOa"G7&HM54SJ?7&EQiUS9*
 t,@nNrS]QD=$MP#\>0so`hlM@e\E)T*8g>[OEhZCcrGd0q.7pWD09QH.1s:ft&iL@&&J3V#?s1LkPf5#L_j(TZ`.V7Ek8rrgIU+]1gCi$nl]/L"d?Be0S.U&u:VOI[obN9dhEUTmcc_lElT1V^"tS09ZBMdP4/fRI:&D\N@TFtH(X4b"8[H9Tqdb0B'WO"5dAedsKN9,c;b:;o,f.Km:XcXF*;/*>aqG/>s.oB1%PrP^]C@o9TpLRO4Y5r5cXHfPqgC[.o^Uu$E\'3*L\Is#-srZ;d?LS&dY@b6Eq21.gTs".(^ggP"`>Hj-CeQO3iZB&nXQbaNQ5]X?'pU6qeS#0g>Ff=J.sAo#ej-u<"WVHi(@9lFZ*5%!J+Bn9HKui2eWea(2,<f')"d8o/![Yih;!8.^dtuVQ'b9IYE?EVKu7$qdOc?7N*9_B-:ln#GfUT7h/3m'&1j7Iq9Pk=Em*1cJoKI5h-&3EN@NI4uG.IGdb!9%l\Ye8*[mrQ2qJ;B(C;h4Uu&ZiuMKfpfL=An6\Il'Zn`2fE(CK4/kk8G@2euc1c3!(RFNL=Q9gRN!KG@JLW09HjA;gor"=/,6?s0(f2aGY4\n1Y/Aa.0IT4FCl;bP1N-RSR_6-:BL(aO)>G-eLU"KP&.)R/h(%_(6CGP)6Pp27K,aVnX`p:+fACGHZ(\88U_6X^'UDSi+J>%1<LG4X]?g#VQlNEN*U)B.aT>ER`k)9I+Rf1QoK<Zjdoda$k8j6rK%@O-^s;8C744ion_F\FP]4+Ok.8S[)mq,Jl+-g^p7#g=G<!i9%e[UA>]=&].$Mkt8a*\pA:jL3Z[O\,LFh:u)fii0?dH+7A]'C(l40ktYI'5>0W<q&SQQb/Q`##iD>d<FlF9Cl&o4DcG0uhNUU@8fDB4i_E;p#B+V6I~>
 endstream
 endobj
 47 0 obj
@@ -320,7 +320,7 @@
 49 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 141.336 145.214 244.02 133.214 ]
+/Rect [ 141.336 213.854 244.02 201.854 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://localhost:8080/)
@@ -491,61 +491,61 @@
 11 0 obj
 <<
 /S /GoTo
-/D [31 0 R /XYZ 85.0 522.266 null]
+/D [31 0 R /XYZ 85.0 548.666 null]
 >>
 endobj
 13 0 obj
 <<
 /S /GoTo
-/D [31 0 R /XYZ 85.0 317.272 null]
+/D [31 0 R /XYZ 85.0 356.872 null]
 >>
 endobj
 15 0 obj
 <<
 /S /GoTo
-/D [31 0 R /XYZ 85.0 251.738 null]
+/D [31 0 R /XYZ 85.0 291.338 null]
 >>
 endobj
 17 0 obj
 <<
 /S /GoTo
-/D [41 0 R /XYZ 85.0 586.48 null]
+/D [41 0 R /XYZ 85.0 645.8 null]
 >>
 endobj
 19 0 obj
 <<
 /S /GoTo
-/D [41 0 R /XYZ 85.0 306.707 null]
+/D [41 0 R /XYZ 85.0 412.827 null]
 >>
 endobj
 21 0 obj
 <<
 /S /GoTo
-/D [41 0 R /XYZ 85.0 241.173 null]
+/D [41 0 R /XYZ 85.0 347.293 null]
 >>
 endobj
 23 0 obj
 <<
 /S /GoTo
-/D [43 0 R /XYZ 85.0 553.4 null]
+/D [43 0 R /XYZ 85.0 659.0 null]
 >>
 endobj
 25 0 obj
 <<
 /S /GoTo
-/D [43 0 R /XYZ 85.0 313.387 null]
+/D [43 0 R /XYZ 85.0 417.507 null]
 >>
 endobj
 27 0 obj
 <<
 /S /GoTo
-/D [47 0 R /XYZ 85.0 446.02 null]
+/D [47 0 R /XYZ 85.0 547.58 null]
 >>
 endobj
 29 0 obj
 <<
 /S /GoTo
-/D [47 0 R /XYZ 85.0 319.447 null]
+/D [47 0 R /XYZ 85.0 401.287 null]
 >>
 endobj
 50 0 obj
@@ -556,74 +556,74 @@
 xref
 0 69
 0000000000 65535 f 
-0000017559 00000 n 
-0000017645 00000 n 
-0000017737 00000 n 
+0000017517 00000 n 
+0000017603 00000 n 
+0000017695 00000 n 
 0000000015 00000 n 
 0000000071 00000 n 
-0000000922 00000 n 
-0000001042 00000 n 
-0000001137 00000 n 
-0000017882 00000 n 
-0000001271 00000 n 
-0000017945 00000 n 
-0000001408 00000 n 
-0000018011 00000 n 
-0000001545 00000 n 
-0000018077 00000 n 
-0000001682 00000 n 
-0000018143 00000 n 
-0000001819 00000 n 
-0000018208 00000 n 
-0000001956 00000 n 
-0000018274 00000 n 
-0000002092 00000 n 
-0000018340 00000 n 
-0000002229 00000 n 
-0000018404 00000 n 
-0000002366 00000 n 
-0000018470 00000 n 
-0000002503 00000 n 
-0000018535 00000 n 
-0000002640 00000 n 
-0000005206 00000 n 
-0000005329 00000 n 
-0000005398 00000 n 
-0000005591 00000 n 
-0000005792 00000 n 
-0000005979 00000 n 
-0000006155 00000 n 
-0000006345 00000 n 
-0000006517 00000 n 
-0000006691 00000 n 
-0000009150 00000 n 
-0000009258 00000 n 
-0000011716 00000 n 
-0000011839 00000 n 
-0000011866 00000 n 
-0000012036 00000 n 
-0000013947 00000 n 
-0000014070 00000 n 
-0000014097 00000 n 
-0000018601 00000 n 
-0000014272 00000 n 
-0000014435 00000 n 
-0000014630 00000 n 
-0000014877 00000 n 
-0000015115 00000 n 
-0000015375 00000 n 
-0000015613 00000 n 
-0000015826 00000 n 
-0000016176 00000 n 
-0000016403 00000 n 
-0000016630 00000 n 
-0000016786 00000 n 
-0000016899 00000 n 
-0000017009 00000 n 
-0000017120 00000 n 
-0000017228 00000 n 
-0000017334 00000 n 
-0000017450 00000 n 
+0000000935 00000 n 
+0000001055 00000 n 
+0000001150 00000 n 
+0000017840 00000 n 
+0000001284 00000 n 
+0000017903 00000 n 
+0000001421 00000 n 
+0000017969 00000 n 
+0000001558 00000 n 
+0000018035 00000 n 
+0000001695 00000 n 
+0000018101 00000 n 
+0000001832 00000 n 
+0000018165 00000 n 
+0000001969 00000 n 
+0000018231 00000 n 
+0000002105 00000 n 
+0000018297 00000 n 
+0000002242 00000 n 
+0000018361 00000 n 
+0000002379 00000 n 
+0000018427 00000 n 
+0000002516 00000 n 
+0000018492 00000 n 
+0000002653 00000 n 
+0000005479 00000 n 
+0000005602 00000 n 
+0000005671 00000 n 
+0000005864 00000 n 
+0000006065 00000 n 
+0000006252 00000 n 
+0000006428 00000 n 
+0000006618 00000 n 
+0000006790 00000 n 
+0000006966 00000 n 
+0000009249 00000 n 
+0000009357 00000 n 
+0000011590 00000 n 
+0000011713 00000 n 
+0000011740 00000 n 
+0000011910 00000 n 
+0000013905 00000 n 
+0000014028 00000 n 
+0000014055 00000 n 
+0000018558 00000 n 
+0000014230 00000 n 
+0000014393 00000 n 
+0000014588 00000 n 
+0000014835 00000 n 
+0000015073 00000 n 
+0000015333 00000 n 
+0000015571 00000 n 
+0000015784 00000 n 
+0000016134 00000 n 
+0000016361 00000 n 
+0000016588 00000 n 
+0000016744 00000 n 
+0000016857 00000 n 
+0000016967 00000 n 
+0000017078 00000 n 
+0000017186 00000 n 
+0000017292 00000 n 
+0000017408 00000 n 
 trailer
 <<
 /Size 69
@@ -631,5 +631,5 @@
 /Info 4 0 R
 >>
 startxref
-18652
+18609
 %%EOF

Added: lucene/nutch/trunk/site/tutorial8.html
URL: http://svn.apache.org/viewvc/lucene/nutch/trunk/site/tutorial8.html?rev=412849&view=auto
==============================================================================
--- lucene/nutch/trunk/site/tutorial8.html (added)
+++ lucene/nutch/trunk/site/tutorial8.html Thu Jun  8 13:12:22 2006
@@ -0,0 +1,450 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.7">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Nutch version 0.8 tutorial</title>
+<link type="text/css" href="skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
+<link type="text/css" href="skin/profile.css" rel="stylesheet">
+<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="images/favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<div class="breadtrail">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a> &gt; <a href="http://lucene.apache.org/nutch/">Nutch</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<div class="header">
+<div class="grouplogo">
+<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/java/docs/images/lucene_green_150.gif" title="Apache Lucene"></a>
+</div>
+<div class="projectlogo">
+<a href="http://lucene.apache.org/nutch/"><img class="logoImage" alt="Nutch" src="images/nutch-logo.gif" title="Open Source Web Search Software"></a>
+</div>
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="lucene.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input attr="value" name="Search" value="Search" type="submit">
+</form>
+</div>
+<ul id="tabs">
+<li class="current">
+<a class="base-selected" href="index.html">Main</a>
+</li>
+<li>
+<a class="base-not-selected" href="http://wiki.apache.org/nutch/">Wiki</a>
+</li>
+</ul>
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<div id="level2tabs"></div>
+<script type="text/javascript"><!--
+document.write("<text>Last Published:</text> " + document.lastModified);
+//  --></script>
+</div>
+<div class="breadtrail">
+             
+             &nbsp;
+           </div>
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">Project</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="index.html">News</a>
+</div>
+<div class="menuitem">
+<a href="about.html">About</a>
+</div>
+<div class="menuitem">
+<a href="credits.html">Credits</a>
+</div>
+<div class="menuitem">
+<a href="http://www.cafepress.com/nutch/">Buy Stuff</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.2', 'skin/')" id="menu_selected_1.2Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Documentation</div>
+<div id="menu_selected_1.2" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="http://wiki.apache.org/nutch/FAQ">FAQ</a>
+</div>
+<div class="menuitem">
+<a href="http://wiki.apache.org/nutch/">Wiki</a>
+</div>
+<div class="menuitem">
+<a href="tutorial.html">Tutorial ver. 0.7</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Tutorial ver. 0.8</div>
+</div>
+<div class="menuitem">
+<a href="bot.html">Robot     </a>
+</div>
+<div class="menuitem">
+<a href="i18n.html">i18n</a>
+</div>
+<div class="menuitem">
+<a href="apidocs/index.html">API Docs</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Resources</div>
+<div id="menu_1.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="release/">Download</a>
+</div>
+<div class="menuitem">
+<a href="nightly.html">Nightly builds</a>
+</div>
+<div class="menuitem">
+<a href="mailing_lists.html">Mailing Lists</a>
+</div>
+<div class="menuitem">
+<a href="issue_tracking.html">Issue Tracking</a>
+</div>
+<div class="menuitem">
+<a href="version_control.html">Version Control</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" class="menutitle">Related Projects</div>
+<div id="menu_1.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://lucene.apache.org/java/">Lucene Java</a>
+</div>
+<div class="menuitem">
+<a href="http://lucene.apache.org/hadoop/">Hadoop</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<div id="credit2"></div>
+</div>
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="tutorial8.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<h1>Nutch version 0.8 tutorial</h1>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Requirements">Requirements</a>
+</li>
+<li>
+<a href="#Getting+Started">Getting Started</a>
+</li>
+<li>
+<a href="#Intranet+Crawling">Intranet Crawling</a>
+<ul class="minitoc">
+<li>
+<a href="#Intranet%3A+Configuration">Intranet: Configuration</a>
+</li>
+<li>
+<a href="#Intranet%3A+Running+the+Crawl">Intranet: Running the Crawl</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Whole-web+Crawling">Whole-web Crawling</a>
+<ul class="minitoc">
+<li>
+<a href="#Whole-web%3A+Concepts">Whole-web: Concepts</a>
+</li>
+<li>
+<a href="#Whole-web%3A+Boostrapping+the+Web+Database">Whole-web: Boostrapping the Web Database</a>
+</li>
+<li>
+<a href="#Whole-web%3A+Fetching">Whole-web: Fetching</a>
+</li>
+<li>
+<a href="#Whole-web%3A+Indexing">Whole-web: Indexing</a>
+</li>
+<li>
+<a href="#Searching">Searching</a>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+
+
+<a name="N1000C"></a><a name="Requirements"></a>
+<h2 class="h3">Requirements</h2>
+<div class="section">
+<ol>
+  
+<li>Java 1.4.x, either from <a href="http://java.sun.com/j2se/downloads.html">Sun</a> or <a href="http://www-106.ibm.com/developerworks/java/jdk/">IBM</a> on
+ Linux is preferred.  Set <span class="codefrag">NUTCH_JAVA_HOME</span> to the root
+ of your JVM installation.
+  </li>
+  
+<li>Apache's <a href="http://jakarta.apache.org/tomcat/">Tomcat</a>
+4.x.</li>
+  
+<li>On Win32, <a href="http://www.cygwin.com/">cygwin</a>, for
+shell support.  (If you plan to use Subversion on Win32, be sure to select the subversion package when you install, in the "Devel" category.)</li>
+  
+<li>Up to a gigabyte of free disk space, a high-speed connection, and
+an hour or so.
+  </li>
+
+</ol>
+</div>
+
+<a name="N10035"></a><a name="Getting+Started"></a>
+<h2 class="h3">Getting Started</h2>
+<div class="section">
+<p>First, you need to get a copy of the Nutch code.  You can download
+a release from <a href="http://lucene.apache.org/nutch/release/">http://lucene.apache.org/nutch/release/</a>.
+Unpack the release and connect to its top-level directory.  Or, check
+out the latest source code from <a href="version_control.html">subversion</a> and build it
+with <a href="http://ant.apache.org/">Ant</a>.</p>
+<p>Try the following command:</p>
+<pre class="code">bin/nutch</pre>
+<p>This will display the documentation for the Nutch command script.</p>
+<p>Now we're ready to crawl.  There are two approaches to crawling:</p>
+<ol>
+
+<li>Intranet crawling, with the <span class="codefrag">crawl</span> command.</li>
+
+<li>Whole-web crawling, with much greater control, using the lower
+level <span class="codefrag">inject</span>, <span class="codefrag">generate</span>, <span class="codefrag">fetch</span>
+and <span class="codefrag">updatedb</span> commands.</li>
+
+</ol>
+</div>
+
+<a name="N10070"></a><a name="Intranet+Crawling"></a>
+<h2 class="h3">Intranet Crawling</h2>
+<div class="section">
+<p>Intranet crawling is more appropriate when you intend to crawl up to
+around one million pages on a handful of web servers.</p>
+<a name="N10079"></a><a name="Intranet%3A+Configuration"></a>
+<h3 class="h4">Intranet: Configuration</h3>
+<p>To configure things for intranet crawling you must:</p>
+<ol>
+
+
+<li>Create a directory with a flat file of root urls.  For example, to
+crawl the <span class="codefrag">nutch</span> site you might start with a file named
+<span class="codefrag">urls/nutch</span> containing the url of just the Nutch home
+page.  All other Nutch pages should be reachable from this page.  The
+<span class="codefrag">urls/nutch</span> file would thus contain:
+<pre class="code">
+http://lucene.apache.org/nutch/
+</pre>
+
+</li>
+
+
+<li>Edit the file <span class="codefrag">conf/crawl-urlfilter.txt</span> and replace
+<span class="codefrag">MY.DOMAIN.NAME</span> with the name of the domain you wish to
+crawl.  For example, if you wished to limit the crawl to the
+<span class="codefrag">apache.org</span> domain, the line should read:
+<pre class="code">
++^http://([a-z0-9]*\.)*apache.org/
+</pre>
+This will include any url in the domain <span class="codefrag">apache.org</span>.
+</li>
+
+
+</ol>
+<a name="N100A9"></a><a name="Intranet%3A+Running+the+Crawl"></a>
+<h3 class="h4">Intranet: Running the Crawl</h3>
+<p>Once things are configured, running the crawl is easy.  Just use the
+crawl command.  Its options include:</p>
+<ul>
+
+<li>
+<span class="codefrag">-dir</span> <em>dir</em> names the directory to put the crawl in.</li>
+
+<li>
+<span class="codefrag">-threads</span> <em>threads</em> determines the number of
+threads that will fetch in parallel.</li>
+
+<li>
+<span class="codefrag">-depth</span> <em>depth</em> indicates the link depth from the root
+page that should be crawled.</li>
+
+<li>
+<span class="codefrag">-topN</span> <em>N</em> determines the maximum number of pages that
+will be retrieved at each level up to the depth.</li>
+
+</ul>
+<p>For example, a typical call might be:</p>
+<pre class="code">
+bin/nutch crawl urls -dir crawl -depth 3 -topN 50
+</pre>
+<p>Typically one starts testing one's configuration by crawling at
+shallow depths, sharply limiting the number of pages fetched at each
+level (<span class="codefrag">-topN</span>), and watching the output to check that
+desired pages are fetched and undesirable pages are not.  Once one is
+confident of the configuration, then an appropriate depth for a full
+crawl is around 10.  The number of pages per level
+(<span class="codefrag">-topN</span>) for a full crawl can be from tens of thousands to
+millions, depending on your resources.</p>
+<p>Once crawling has completed, one can skip to the Searching section
+below.</p>
+</div>
+
+
+<a name="N100EA"></a><a name="Whole-web+Crawling"></a>
+<h2 class="h3">Whole-web Crawling</h2>
+<div class="section">
+<p>Whole-web crawling is designed to handle very large crawls which may
+take weeks to complete, running on multiple machines.</p>
+<a name="N100F3"></a><a name="Whole-web%3A+Concepts"></a>
+<h3 class="h4">Whole-web: Concepts</h3>
+<p>Nutch data is composed of:</p>
+<ol>
+
+  
+<li>The crawl database, or <em>crawldb</em>.  This contains
+information about every url known to Nutch, including whether it was
+fetched, and, if so, when.</li>
+
+  
+<li>The link database, or <em>linkdb</em>.  This contains the list
+of known links to each url, including both the source url and anchor
+text of the link.</li>
+
+  
+<li>A set of <em>segments</em>.  Each segment is a set of urls that are
+fetched as a unit.  Segments are directories with the following
+subdirectories:</li>
+
+  
+<li>
+<ul>
+    
+<li>a <em>crawl_generate</em> names a set of urls to be fetched</li>
+    
+<li>a <em>crawl_fetch</em> contains the status of fetching each url</li>
+    
+<li>a <em>content</em> contains the content of each url</li>
+    
+<li>a <em>parse_text</em> contains the parsed text of each url</li>
+    
+<li>a <em>parse_data</em> contains outlinks and metadata parsed
+    from each url</li>
+    
+<li>a <em>crawl_parse</em> contains the outlink urls, used to
+    update the crawldb</li>
+  
+</ul>
+</li>
+
+
+<li>The <em>indexes</em>are Lucene-format indexes.</li>
+
+
+</ol>
+<a name="N10140"></a><a name="Whole-web%3A+Boostrapping+the+Web+Database"></a>
+<h3 class="h4">Whole-web: Boostrapping the Web Database</h3>
+<p>The <em>injector</em> adds urls to the crawldb.  Let's inject URLs
+from the <a href="http://dmoz.org/">DMOZ</a> Open Directory. First we
+must download and uncompress the file listing all of the DMOZ pages.
+(This is a 200+Mb file, so this will take a few minutes.)</p>
+<pre class="code">wget http://rdf.dmoz.org/rdf/content.rdf.u8.gz
+gunzip content.rdf.u8.gz</pre>
+<p>Next we select a random subset of these pages.
+ (We use a random subset so that everyone who runs this tutorial
+doesn't hammer the same sites.)  DMOZ contains around three million
+URLs.  We select one out of every 5000, so that we end up with
+around 1000 URLs:</p>
+<pre class="code">mkdir dmoz
+bin/nutch org.apache.nutch.tools.DmozParser content.rdf.u8 -subset 5000 &gt; dmoz/urls</pre>
+<p>The parser also takes a few minutes, as it must parse the full
+file.  Finally, we initialize the crawl db with the selected urls.</p>
+<pre class="code">bin/nutch inject crawl/crawldb dmoz</pre>
+<p>Now we have a web database with around 1000 as-yet unfetched URLs in it.</p>
+<a name="N10166"></a><a name="Whole-web%3A+Fetching"></a>
+<h3 class="h4">Whole-web: Fetching</h3>
+<p>To fetch, we first generate a fetchlist from the database:</p>
+<pre class="code">bin/nutch generate crawl/crawldb crawl/segments
+</pre>
+<p>This generates a fetchlist for all of the pages due to be fetched.
+ The fetchlist is placed in a newly created segment directory.
+ The segment directory is named by the time it's created.  We
+save the name of this segment in the shell variable <span class="codefrag">s1</span>:</p>
+<pre class="code">s1=`ls -d crawl/segments/2* | tail -1`
+echo $s1
+</pre>
+<p>Now we run the fetcher on this segment with:</p>
+<pre class="code">bin/nutch fetch $s1</pre>
+<p>When this is complete, we update the database with the results of the
+fetch:</p>
+<pre class="code">bin/nutch updatedb crawl/crawldb $s1</pre>
+<p>Now the database has entries for all of the pages referenced by the
+initial set.</p>
+<p>Now we fetch a new segment with the top-scoring 1000 pages:</p>
+<pre class="code">bin/nutch generate crawl/crawldb crawl/segments -topN 1000
+s2=`ls -d crawl/segments/2* | tail -1`
+echo $s2
+
+bin/nutch fetch $s2
+bin/nutch updatedb crawl/crawldb $s2
+</pre>
+<p>Let's fetch one more round:</p>
+<pre class="code">
+bin/nutch generate crawl/crawldb crawl/segments -topN 1000
+s3=`ls -d crawl/segments/2* | tail -1`
+echo $s3
+
+bin/nutch fetch $s3
+bin/nutch updatedb crawl/crawldb $s3
+</pre>
+<p>By this point we've fetched a few thousand pages.  Let's index
+them!</p>
+<a name="N101A0"></a><a name="Whole-web%3A+Indexing"></a>
+<h3 class="h4">Whole-web: Indexing</h3>
+<p>Before indexing we first invert all of the links, so that we may
+index incoming anchor text with the pages.</p>
+<pre class="code">bin/nutch invertlinks crawl/linkdb crawl/segments</pre>
+<p>To index the segments we use the <span class="codefrag">index</span> command, as follows:</p>
+<pre class="code">bin/nutch index indexes crawl/linkdb crawl/segments/*</pre>
+<p>Now we're ready to search!</p>
+<a name="N101C1"></a><a name="Searching"></a>
+<h3 class="h4">Searching</h3>
+<p>To search you need to put the nutch war file into your servlet
+container.  (If instead of downloading a Nutch release you checked the
+sources out of SVN, then you'll first need to build the war file, with
+the command <span class="codefrag">ant war</span>.)</p>
+<p>Assuming you've unpacked Tomcat as ~/local/tomcat, then the Nutch war
+file may be installed with the commands:</p>
+<pre class="code">rm -rf ~/local/tomcat/webapps/ROOT*
+cp nutch*.war ~/local/tomcat/webapps/ROOT.war
+</pre>
+<p>The webapp finds its indexes in <span class="codefrag">./crawl</span>, relative
+to where you start Tomcat, so use a command like:</p>
+<pre class="code">~/local/tomcat/bin/catalina.sh start
+</pre>
+<p>Then visit <a href="http://localhost:8080/">http://localhost:8080/</a>
+and have fun!</p>
+<p>More detailed tutorials are available on the Nutch Wiki.
+</p>
+</div>
+
+
+</div>
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("<text>Last Published:</text> " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2005 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
+</div>
+</body>
+</html>

Added: lucene/nutch/trunk/site/tutorial8.pdf
URL: http://svn.apache.org/viewvc/lucene/nutch/trunk/site/tutorial8.pdf?rev=412849&view=auto
==============================================================================
--- lucene/nutch/trunk/site/tutorial8.pdf (added)
+++ lucene/nutch/trunk/site/tutorial8.pdf Thu Jun  8 13:12:22 2006
@@ -0,0 +1,652 @@
+%PDF-1.3
+%ª«¬­
+4 0 obj
+<< /Type /Info
+/Producer (FOP 0.20.5) >>
+endobj
+5 0 obj
+<< /Length 775 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gaua=9lo#B&;KZQ'fqLF<.3...@4VoIpco>8.\0DW48oKYNui\2YL7QiKQ]5$TaY%::)u/1"DsT#fKc&DHO]B<T7DBho":`I]obg2q!Y3GVL\@iSqX--=KGTo^A$ZbaQ2_`cEAmH$Z1rj+jb,a)/5NT)^9IO^VT?<I3H(dD"BPCN=P&5JCkpf%IjFpHiBq!-UglNrGT0Kli#44`b2!a>a4f-11\sIqqae-=15$k&T=,'3=YiL4o\IQ;e\^fbNdje8+C$*qiU,&C0D@)B.M^[qu3LTn+3CRF)ba7fqGEk5B7UMXUOcLAC#`PKt?oB^4o=BOhW0XZQ#dtLl5+5,GS,F0*i1#PQ\&F7kh283,+Ock%>;]m`j[WEu9ZP`.i`eI917bWcYr%mATuAE84V"+l6Bo?/W-\Be't54Y'QZ-^8gf>#b=GN<%=P/^%>8`@a;XQ;YE;-#D!/!?`bKWW~>
+endstream
+endobj
+6 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 5 0 R
+/Annots 7 0 R
+>>
+endobj
+7 0 obj
+[
+8 0 R
+10 0 R
+12 0 R
+14 0 R
+16 0 R
+18 0 R
+20 0 R
+22 0 R
+24 0 R
+26 0 R
+28 0 R
+]
+endobj
+8 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 559.666 176.66 547.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 9 0 R
+/H /I
+>>
+endobj
+10 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 541.466 182.996 529.466 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 11 0 R
+/H /I
+>>
+endobj
+12 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 523.266 194.984 511.266 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 13 0 R
+/H /I
+>>
+endobj
+14 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 505.066 234.488 493.066 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 15 0 R
+/H /I
+>>
+endobj
+16 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 486.866 258.488 474.866 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 17 0 R
+/H /I
+>>
+endobj
+18 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 468.666 213.644 456.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 19 0 R
+/H /I
+>>
+endobj
+20 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 450.466 230.48 438.466 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 21 0 R
+/H /I
+>>
+endobj
+22 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 432.266 340.784 420.266 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 23 0 R
+/H /I
+>>
+endobj
+24 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 414.066 227.816 402.066 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 25 0 R
+/H /I
+>>
+endobj
+26 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 395.866 228.476 383.866 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 27 0 R
+/H /I
+>>
+endobj
+28 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 377.666 171.488 365.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 29 0 R
+/H /I
+>>
+endobj
+30 0 obj
+<< /Length 2685 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gatm=>BAQ-&q9SYi:NkkN"(sNGfuS?`b@39F':*]FIG!+8qJ=s'VU+h'`\':i!g'NUtD(kR;kn=]@^EUIet_lAoVtf&3:j[Y-Zbc\^'okF'SM'3O&t\!mZVB!b\c^rj_[C/*E5pqYg(?ih%]#@P@;XGiekT=a[l.\%)8>UpYsO=,f&s,ROU.f.sgD9W4_>Zb6/1lAaZQF$//mCi;poiqd95>5R-.J%"'PUNSX.S)k`UYDG!^,Fj.n1!_$qG=%_\NKSX)I&#6fjh5_(]njU8!6R<qTsJqk$VA./mR?9J,k==ckWCf\['FH4o]@#3`k^aeDg0.)VVH$RS!?m2RH?;-b`QUJ5aY(AQ"doAZf-ZuO$fe\WAVh\Bt9)Z:MF-`1QQ6YIQo6c&P@m;b+!$@p'2M.*@Q,[66eQ%:S/GAJ,JourNGsFrqPaJh*a=!?>q5sb#[FGB0_c+96S2)VkblgPMDP_?Y"jgkMrb,aQ^>cP:TAL<9>N78$^m1,8.B:9eU.g+32<:/\O@oX.B%"(eG.^kMUOa+sDeb@X,.Z=)[tF:1>%\B%r$pYEEoK2nYNeqTWKJ\B?%Oi.0MmYSeU7j\`)X'2#sqd[\^SZ![^)0H,Kr-UAE)(ucTY04kB_f3o(i]kibo:^nBBAhh/oNC;GulpR/5a6IW*W^LFhjnaV#HDmjL"N<XhGP?GaTL=73Q=#=q;I$8C+F)`6;IFj9YdYGt+[;b`NjYL5aM\G9NE&lqJ0g;uIj\I-kdV<%Lr4(Ph;C4:>CH6upaWT<bR;KrZ'FU.I!Kih.K-dF3daCp_X\1I4s,Li"LXt@\kSJDV&74<N=tG.la6F+Kb%W=D?cBodd?J23!ccY*m6[$Z[c_!R='u9O9Q*BX;$pH#)48Q&S%%n/i?JVahAR&RH@_<N+J_UD<2%#n=aoS[Z2b\!OTb[U'g)(cj4rhi?o/8.a"6C/BY(CiD\HfE\P'TH$C2j/h?+VWcGMb;JUhMnN40
 fKgWV@a#oR-H>md+"dS"dStIQU+F"lf&-AQY!;+X*p2B'n?)o.pE>Qf(=WUo,h.>,/jFSY"iuq<;mrIg`?#/?R+CXL-8*Wo=53KNP7tQ$K\!=L@D@[h!=r-lDLYGL4_$P3@N^<sV43Q3j@TTC\#UB:>Te$8cZ+7.Y_`?r\U*t!b<GEiHba<OGN'Sfl.iHii5#DN$glK^L3@EPF5b;F)5!(V+Xh<<h8Q`f9<b]"^iC;`7]R%L4i"@;S3V%pB:AE'RDi>HBh0hK*8W7u&PROETckt,K*;)(-X;dR=nn>km9()EbS(EtP^o'Q`+"dj_(/k*\#]CVG7fR/efD!,:*W]c<Rk4I>Y3ZYV+6O6p]S59TRQ'=gdC^AH!,bO%)UEVpZQE+>9V<%"h&)'o>-9><!7nf,K]u/tAK=6>0e8M1b2L5>TVn@&:\';m(>gVM6'Coa0LDj?Em.@J045X8:h,WZ,OXTIK9@,RM[@@a+g3P=$l61<,L.<HF]H#Df,sQ],rojDh7bhGV.`;IFP<H?,0Z&5?##oDL=%[p&8Fu2,4T<.$cG8s4oFO:;7FYc4.1r[UKIMR!:25+E*Gkn&mkW(6Re;=e?UR*9"+h-*jIEe08%.ne>@t"bDA(UX6sAjNcP3tn5S[b@[f8R5mV;>?+u#aXccRU`Ad:[5?LgIRtTY_nr9#+)@D";,#T6S6oqn)L2"gDW=E]_AA+Me8@QW<\Mb[jM^4U.O1::tr@lqGms2IWD6n)D`\P?[O@;<l"U5ZqC^uM;?;+IVj5YhWI*]*b(5ut33iFkakDiW?a@E1K$O2$!N6O@T<`k("dFN[..#)fq?Fp7.3j0&J%i/9fnAk]e\uCccR$V%0:^Eo^Ng0T\+S>O(N:rSMhEV:X7O]JO9tIH+g[[i)J-HUZOl,=&@t`5iBg@)AU+#H4>qDYKpVe.f#75q_B!pH:7LE:$YcirT@f+StTJVI;\$,YRZubDI%DIIMg2la<(e8@#=b=
 <?UtNg[D-u@(.P&lf52]P"Dor!?i=UF2"K"71pLt(FQK+;[R7@*1Td%I\WfLoQ%YhjUbWCr8]%u?86dOP/!c!EC:\J61UcADijn?t\\egb^8=`E=#+VLbGg?QD_rpnu<K%Ar-T#llpL6+.RT"BqB_Xk2EfXq=Zp,M"kW]*N@OEZg-nT:V]%SIRltd/"7:"Q7D8&&&2dE!peFmY.anVHW0%m&>5h*F`IWhcP[]eeq6KYb4qgTNJ]%qW6Xc,.iQA"nIT[X;MDtTJ^lZV;$%dJE"ON4\AX<q.XLR[b`kucr>Qk,?69lL/OX4*WuXp1k03,HqA"IGA1VC3eON:9b/ef^gmN.%bKCi_bV@<f5&4T8*)q"/h2iJB\Q:Of@khg%tnd4N4,pj<(_DNtqjNE3sdE&+B[PB;c`*7Fsb9G@$WKs$Puh:V$6`\&@>F?c3(GSE5r#Y],E*t`cB5Ft.,9\AG*,aE#?E_T)C7P"e=+iY*kO6D=6:a[IB"u<,V5QSY#imDqa*cn$6j"R.O2>X2s^OqZjH7g^U'krh6#R!i'WF?\-Gt6:fblIi82WicdM-3$0_]n4C!(C=3eUQ:k)#]1'\^fXM(e$g[j%i+X%ghVb&I/QSQ6+/cMs<?JW6a`)$hZ[S6s\D':Q$RTbsV).coaP99mLQY1R^65R\4l^-[W+qa#+D#h?A3@21b1.HALDW!"pMY-N~>
+endstream
+endobj
+31 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 30 0 R
+/Annots 32 0 R
+>>
+endobj
+32 0 obj
+[
+33 0 R
+34 0 R
+35 0 R
+36 0 R
+37 0 R
+38 0 R
+39 0 R
+]
+endobj
+33 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 218.976 633.666 237.648 621.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://java.sun.com/j2se/downloads.html)
+/S /URI >>
+/H /I
+>>
+endobj
+34 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 253.644 633.666 276.312 621.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://www-106.ibm.com/developerworks/java/jdk/)
+/S /URI >>
+/H /I
+>>
+endobj
+35 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 154.476 607.266 191.136 595.266 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://jakarta.apache.org/tomcat/)
+/S /URI >>
+/H /I
+>>
+endobj
+36 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 164.328 594.066 199.656 582.066 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://www.cygwin.com/)
+/S /URI >>
+/H /I
+>>
+endobj
+37 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 90.0 506.132 275.292 494.132 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://lucene.apache.org/nutch/release/)
+/S /URI >>
+/H /I
+>>
+endobj
+38 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 339.6 492.932 391.596 480.932 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (version_control.html)
+/S /URI >>
+/H /I
+>>
+endobj
+39 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 476.604 492.932 494.604 480.932 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://ant.apache.org/)
+/S /URI >>
+/H /I
+>>
+endobj
+40 0 obj
+<< /Length 2377 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+GatU599\*g%)226d&jqE/m"e(HV6+cVE+:2Gc$6UmEdb.CK;'JM2JY<o`...@-a>k?c6DEBSr%a79OX)L6@5#fuELC^Omh)HT>%BB$Beb5!;\r_T`cWoh(9>igVUSm:?@<bt2^GcdpL+m"SV/qfYX9&e&m/Q$_RTY@e'UT^QLJAO\jSR98s,lq-:Rqp/*2J99Z^F=3A0j)F-Qi1XE0Xhk+(gr-$OWrHZc<]d+DpZoS5ap/pX$Vl)`Lb1>200?].'rZ.ZC3^lT6&N47tjH^rAr)9Z/&oD#t*+j2t!q%Y0,*eHM<a!Iq#%\^Im/i!IF^a=WqkX&.XMmc=)3]2rGB*?G)Mp>2187pq'+XD6cJ^=/+3/TKJp$9j6c[9rngJCW/Fl'Q'G(#GrqfU$6N^"6RFn*2`%dLc<J[=i?f_6dCPKWHs*-rcsYs3:^o8%nVaPBs[1Q;2J?Ao+\\oF<uZ?2L/B.6!=.H$;eN:-`r];54.+FEp.Q=M^?<K&*g0,`[`QPbI::85X'@NR_k!r_.IY!0/[&uRDI92&)>'lZHe^G^3JV2o=n-Q:=\Z?NV
 XC/so,\gYh9g89dOD54:LCq!'h>QAYi8r"%k]h>E[bqZ4d,"6K',g.J<+tob31Z7Ymd.]+P@B-W.p`TO#BpoMp>JOskBn3;E?@*pCe:B!O7RLXmVSuCFaa$X'`U0_k`Dq,^?*8)^&sWob2KT$!e9\-`TYir6$a&me,tcQV:CN7ImfZK[SSX*R[otBjgV(B9gLmSt4(H;=TJjDb:MN:@lrJN)19HeG:!>7hQO8TEVbX0J9LhI_mW^4(+ADRGUl[5jIP\g\/'-U`N_Zirk]<'O,0M2ZbO_PHB1eC)pE`Re$cJXuU;[%aN7BR^kAJ/h!B.;8DX2g=*&9'obnX(10neVf.6i"[W9K7pep%/CG?Z%1>Z1kQLuX4YVkBb8!5^^"U2lYed8o)KrM4M./a@@3+FsW1e$Eljq*gOh]UTeBhXY-]ptF)SG$./H'&tfrAD5"![976=VKRkSIhg;W,qS"2BDEYj(!m6NV1M)2fD9i,U57LP+c^'aL,fOmIi_&&+&7445C2'e3n(t#Q:EL`mcqIr*6>N@l/?KE(#"O0Z1Zbkpkl'SG=Z]X`1B$lQ>l9h`c8a1ZhuM9-6D[s,@$NIL0ICGN$M2h57\ku`Xu3PXgPKh`mXV_7l2Z)).g'BKbXr@bg)5g.!3sF3u;so2&0d]a*B08i`S3c(e:%+QJuq%TOCXbOt]fr+Fpu!1FT[!EQ9>o%^5Ge-uaFMrp4<N;W+<^Z^!tF\r_fL;eco&G%88^=b/WsL(u[_@VH09<HA8"[1+UV]?O5o"qDW!\s-6?#1Ze\8=olJnkKDUO_k4J.9sUog4]#W'rQ-Sc&L1GT7gB1n*q">&5#=]l,Y$/Tr]3lDN'RSU/&b5E`=_"ENa5!I[FW!%^B5Wd.?0ln,&=,(ps6CA&EmFb0fl4Q-7Nn-D[f[`aE[]$oluM"Os\g9!V4J!CtTeQiN3_=N#&NfEb1+Zr>P`Gm:;fh.>jELhVe.he29pNGm+[`WN`[Yd#
 j3NJGs<CL!p<B_(d\-)eiPR\kZY&n'Ed@mMVumNump3<YIg>/V>51]2IUgaF/K6^BO1b4JG?)W<%(F(_bTFUCs&W3li=j5C8blr,a!ZFs'dZVIRD%FT:*l<&!_h%h0Z"UK\R]*)<`j.MiamT:=.6NX$6/mf?Y^CNHgH.<MO-P1O\\Q"n:bh7IglmO)pVIJDPLDg257\94&6Wc/b:]hdlSF=j_ZkZ:el^jLid+5L%;.A6T9^3G23\jO3I(*N8-D@U%/,PX9=HdBLr#5@TOa_3qZe]LW18t(5Op'9Y>l:WJi%ak/,66.\S,VBKaBnF\m\Vs!1j;3`q@tk^[pM#cVI$p<Id67NT>b-.RO_E'H*>rPWpgZI<]=jfU>!4ECL6N.><b7Ta8H6VN;;K~>
+endstream
+endobj
+41 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 40 0 R
+>>
+endobj
+42 0 obj
+<< /Length 2410 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gatm=gQ(#H&:O:Skb18)2G8rBWCqaWBUWgh,.An'"DC`0Zq]:iABEA5SR(mJ4/=-;BM5Y?]*OReP(oLMR56YIo;g!Z=-J+\e60WFQ]oK:Y2fCCr6'fnI3C_F7)&-Nb*btQSNK+c&.6;$e'gtK:^/k]Q4qjU\aYA8e.&g]n;6USkA'&Tnb<c-ie__BWS-L?I,b(g>l=^cq"l**dN0bW$Z5]b/pGG#V(1Zo]r3n+NB@hBlp*C#9,XW2*7*p!bI-UN74HCeh9;2@Df]6TY.?,UC'E<kPp_PL#GuR'nGAT5jgG(;/]Z'F(]fh]`CA).n(MFKR9"Vd@J@#>bAUruW6_=:3bi=FJ>=cA_G7H+!o5[\gr!eD&GJ@XA,4jBKe2=6W9LSJZ.2uW-?8kc?'-SAH_X29+#N&HAY*c,lj_PkiI/@ijm*mFC5oeLkReg?6/rp-T&M2&g(;BQSLlfq%HW[PGVRr'995;p'IlFEB\6uJaI$haWVZERHX3c(QlfI!JA<an3*iJdWYdh;(W>L1/LGOLfrJkj;K]7gnr6'%dVRa-&3qN<//BB8.'#;hKTU/1O6\>o(HXL$em3WoAOW$1mFJ"8bLI]bXBW=;*7*[e--&GI^iKMeg9S]Q#jU21iNa3m!*k,Ija'OYl`ijJriP<oQB1iJ:fF)>3Or6+2E:T]fS;ZOgK1D&<8_G(D7]CYmp?esl!CMEDq;K\mpA*h%XAhC!#B5`5^@#&E%`E"qYMe"j-!4AcHc5^]=3pJ=3f[hDAQjWMq;lsDbe:="6Zc=+$KLEX&=V$3&cl3+U>AR8!.edQk?uio)^p\LHN)Gn=<"V99W$n,-V?[9'=l>S#^"SA<q4e<_6P\(7\s!o[b+!PM.<'7B]Cn[HgV=aV[MbZ[K#)W(Wl9'?kU6HTe\M7O2)<5f6gp@]Xo*^F8F#Y$9U'ho9A1K(>P*=L\Fh$![L]$)eXorI4fKC9.j#e1duK!>Np6YA$B+]-!#_6@7.
 L8&?Cu\7)jE3pOFpoN[aEp=XPV0:$.Ra_j\9YOl;XoLD=,W'[f$m;jq9L,b'ZI90Ep)fN?ZLNXL[+#':r?5'D!<hFt@>H#J4CD;=>&<!m+W+L`%BQjH"Kc5Tt7s)3iqEo_s5T<Y3Pc/A_hdi_OFXsif@I&a*)XWYgG)aNj/Lqrs=<aOn10(-2d%P6cfr0:3&<IjDMHf`HVri!>+nMePKMemnKujO^.*g7IH_GBP>C/5#j*E]uH/h*<isbRfg=+kU\?7o\ol:%Rb$r4>VM9+SliIN,g%FO]"0qt%+KJXHjWbtdZe0e^"DUTsm`h(eS9IQ*3M8<!1aIOsaNWXc$LD@Cj@0VmK?,Y:b_hcLUs--?+>7-7GIjJ:8(bK$?,,#>:NJhOhJ6.VoVr'(@n7QH[-lDSGo.nI04I2%\BD-h!gFf_Z1%e<Dc`G`l:2t\\7Qn?f`enMr;2CfKhIN1>UW)pitSNZc-q..`bAZZ/]>,RHQTlK$_X&.*Fnpr6mf5`eCuN`EYOQJ3[3Vc@IFAaKO#1K8Ec[uHI(bBLg^GT]>YP_gAL2a`9BjT@=3&cYc'-afrdOlCO+`C<-Ge'?gN.<s$JfP\@BBJW(P;b*?6-4.umPee<>NFVeI<3g-Nb@1$Dm1h^8jA/foZunG'`6#q62+R9Q%"MS679BU#gBgk!CGg7@a@-GJ7RG3-P(\u-Ph+:a%tODN60i:kMSkJEgEN%iN^@?7K2#C_*3:ob%epIU6R^/%kX#/oe*g(T7/o[qQZ`Q75$&Z2$bnYe/9+aD5\_9$GC+Dd<t*lY?`gI0>,>2_m7*DMoOKPEZ7Wa14&P^0F-`M&:GO[Wp`lrA73U0mp7\j(;plt4&>AW47>fG_7=[<lOa#"*IaRVOd'((FG[V,g*$#92uXA1Mi;?(KORj6'T4_`UT'f,W0MRQ\InK>HBl^RuhHpO(o;6\u%Z!Y8$7pmn<J`]+:YpM^<7r\*l3V<tu46`E7\hfcL.m=%
 D!T-/FU=)Z_?-P:.><-'k=1_S])HI5:4."q+R4AeXX-lVB>9M-Q'aO7CLUs&*l7SUY;VW,o!9g]G_*9Q_PPL*U*l3ASng.YbP6'pNeqV=rA8i9F;7pcq%C143!F&c123Uf2s34KJ;+Wp]CmN*Of\ejm"&ZU8#>Y:&,loD?BoUCEGKK.r\2',$`kBW$Pj8CKEY*LP=l27V$dS(oGq,"-6S<.]+3TgF:&35OcTr_rdh_\)?5sV0[B0bT/0B,%/pX`X_>3kSs$%CL<C?"[d,S3]F?,D8Trj%MI4]G()3aV#1&I4bC[!Ds`Yn#j9X;3t%T%^`j+,kmrOY7^QTnG:E_b\tZ-BD5D6V2k.0(ScN'=:suf+m,A.K9#"7l-!GlOV[Sgbg05l783IC60b:M]f8co(Bki?(eTWanWHJmbk_W!2NX]%f~>
+endstream
+endobj
+43 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 42 0 R
+/Annots 44 0 R
+>>
+endobj
+44 0 obj
+[
+45 0 R
+]
+endobj
+45 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 403.788 545.547 439.116 533.547 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://dmoz.org/)
+/S /URI >>
+/H /I
+>>
+endobj
+46 0 obj
+<< /Length 1916 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gau`TD/\/e&H;*)T`P=Z"q=:)U*p2tLLsYH%U6M%`qj*a:thd`+gU=r`GU37^O<"=lY&q7!X'HofHRHX*UfSHm`=/)kf:g/Y7YiAnGdqO;F2D]pYjR7jn#m!I3JdN8[U>prAM5M/&4IU!pKUQ45hk'5>;n<>)?,O@nnU*3:X!29\.K2QZm'9g:?@r3gVqa4YLn@>BN<`4XM)(A9tf;8WMAXE[6sSd#trm>\>jV7`hs*A<bM[Zr'Jeh7Rq1F='6&];EO@,S^e8P.?aBh\'N@-XAdN5CRqI1k,!X''pVX''<D9$6;TO2q]g(,n[6PcnnA78PqReVj3N?S`j&7\so+aC);r3ch[3P](&YKc!Q)Rm^cioK5/`@)-de]e7N7hql__\@QpT"bceUMrpChK'u`_8II1%V,`uN;;U8C@'DO3?I0(T$#aL%FC123rOWYcof\aY[%c0Bmm#f&pj`(LWW[&tICXE*fc7cIhbaS`dGAU578kkGl?P99RpBXmO!7_Sdj\GoWn0HuOrsi!/q;Spo:u2-SVuh!,aF9en]`M/r5Wg'c]o.-/,iPuBT)hpc*)O<KApFL.gIKJe&]3nS6l,adMsV[GlZk.E0//IM.oTt.6#Te'9Y0a[Y!gB:J$Xr[rG'(nkqKSb92Ko$bNg_\hU1V\=!lMM4$C:Ak!#"ZWaaAPR8jAQ+Eutk2JYXO#X2&gD*-N.!?8b`eI*n8UV578Z5BE@NaLZ.'TH*4,Q:dR'Z)h%*jR`'L`62cb552Be`3>"UL[ufQI.15Ue&nEqHMg7BNF7mj,4Si]7n.\0qLm&,#Ri#n>+M!;,056>]Ata<$"6I_K,2]l(-*i2ZS*-`_dCj.MIirUT?\S7A^UV)ABt4'=dO&."0j-7e<;/4EQX<!%;VRF9Fg^9;%,OZ[:(8b`r3ko\"e=,pNE8'7m=BNedJ!0csbnNOf\>CKnW-B)0=/#dg%1Ou=-[.\3]eZD5SH&L)&E;':%pY?!V
 OKl3<uiP'kNcqq8?-N[L&"V(uo@p%>`GN21li%k?c.X8:h+s4m[2L_e.'Omt/'O)91<s6Jk2CmV')X3WW"<%L.F-+/N>^ff5jg#l#@h\Gg'6<jV>>NJf/r>RVgRQt\hV"AiFfZ>'B$4CTJnGU[_^pgurQR1A6%`I!MobkcGAjQO&kh0e/j9Mol8W07%Zk8jh`,"I7.HAX8"i:NSL>Wjo:08M=jflL>GA.sVTI^fojGqRS.U&q:VOL0h5pZTCu9N-AVFDS97PqrW^o%j%cYF.B=LuP)Z=:gS!f/SH1fHjcn+qH4ZPa.:11)KGNZNTD0K&.!-BR?q"%p?d2Kf+@F5aQr[47T3!UL?mjcaC3YeHKDI@g<$sf[_CpNT/Nuo`N^!:$e*4D;9B:Ee4MP@7EmJ?F4PLF3HF]JB4bHFq^<@d#FK@:EJjbM[#[O+bGOXGt.Hs8P/:E_+?"T\Wd&4>(RP#HY5[;L*5G#gXE,!^Z#mZJrQ=b.N"X!pqpiF>/EG\c3.<4_5g6,+[e=TEl+oUagO0F;kZBJ=U[TsC/=D["CB+rTZ[)F'c^'GKS>8V\_4-eg&-Ebk-/=LB%/1#fc.LeC'#Hjqe"b%l`T,)4>IE2;>Np\!A]iR1H&!Sns@L/jg`DT;>b=!l+/!ZKF*@g9YrjIWFf,%3!F.qK`-Mr[lVr8$)b9)]Xmn2An[jagFsMVP"iMG`di/>9KpTVe)_bnCukF7^$+IC-KdUiI/#5S[_p%F&3#aqOF/*!3"d/?8C1k9(,_\D;]Vf4BS0$C+@Ci1u$a&t=dpS#k5=cm(i'a7h)(lRZlSD5[Ur=N%$`:a?pc`M"rT!'oCIh#1V=O(kt+<J_2KJ(]Ts_7C5V<-4mi$gYW5.'@fBD\i/OM,QS/Y.S`VqCr:B@Wf^i%k?BQ)XF\1e8o_Fr>4'RGC]~>
+endstream
+endobj
+47 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 46 0 R
+/Annots 48 0 R
+>>
+endobj
+48 0 obj
+[
+49 0 R
+]
+endobj
+49 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 141.336 166.414 244.02 154.414 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://localhost:8080/)
+/S /URI >>
+/H /I
+>>
+endobj
+50 0 obj
+<< /Length 311 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gaqcq4\rsL&;GE/MAt#q_fgF41U`)L$j_MF@#/"L6OHP-S0Iqq:2#n\2a&PEqf+^@me7>&.^15Z:b_u5NW>n4$;R6_MF-H5^Yh8#*l=W-^n&snF.Gln0$a2cG?XAnRMCT$FM93X%=EbU@ZQh':KBKrkeo>n!_">QPQ]i/a^3Y<N$`GiDQtV08PKQ&6DL``?Acn-%(!"`=A=ac@lH5B.p=bD7$qTi7`Bu=?g==Hs8&Um_k^r)C%<E=bTo3HR;D8&fUe#=P2Ei+r"OUbflt?u=G6H&>b&4h%$PnM@+RJiECZOKpBOejA-W~>
+endstream
+endobj
+51 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 50 0 R
+>>
+endobj
+53 0 obj
+<<
+ /Title (\376\377\0\61\0\40\0\122\0\145\0\161\0\165\0\151\0\162\0\145\0\155\0\145\0\156\0\164\0\163)
+ /Parent 52 0 R
+ /Next 54 0 R
+ /A 9 0 R
+>> endobj
+54 0 obj
+<<
+ /Title (\376\377\0\62\0\40\0\107\0\145\0\164\0\164\0\151\0\156\0\147\0\40\0\123\0\164\0\141\0\162\0\164\0\145\0\144)
+ /Parent 52 0 R
+ /Prev 53 0 R
+ /Next 55 0 R
+ /A 11 0 R
+>> endobj
+55 0 obj
+<<
+ /Title (\376\377\0\63\0\40\0\111\0\156\0\164\0\162\0\141\0\156\0\145\0\164\0\40\0\103\0\162\0\141\0\167\0\154\0\151\0\156\0\147)
+ /Parent 52 0 R
+ /First 56 0 R
+ /Last 57 0 R
+ /Prev 54 0 R
+ /Next 58 0 R
+ /Count -2
+ /A 13 0 R
+>> endobj
+56 0 obj
+<<
+ /Title (\376\377\0\63\0\56\0\61\0\40\0\111\0\156\0\164\0\162\0\141\0\156\0\145\0\164\0\72\0\40\0\103\0\157\0\156\0\146\0\151\0\147\0\165\0\162\0\141\0\164\0\151\0\157\0\156)
+ /Parent 55 0 R
+ /Next 57 0 R
+ /A 15 0 R
+>> endobj
+57 0 obj
+<<
+ /Title (\376\377\0\63\0\56\0\62\0\40\0\111\0\156\0\164\0\162\0\141\0\156\0\145\0\164\0\72\0\40\0\122\0\165\0\156\0\156\0\151\0\156\0\147\0\40\0\164\0\150\0\145\0\40\0\103\0\162\0\141\0\167\0\154)
+ /Parent 55 0 R
+ /Prev 56 0 R
+ /A 17 0 R
+>> endobj
+58 0 obj
+<<
+ /Title (\376\377\0\64\0\40\0\127\0\150\0\157\0\154\0\145\0\55\0\167\0\145\0\142\0\40\0\103\0\162\0\141\0\167\0\154\0\151\0\156\0\147)
+ /Parent 52 0 R
+ /First 59 0 R
+ /Last 63 0 R
+ /Prev 55 0 R
+ /Count -5
+ /A 19 0 R
+>> endobj
+59 0 obj
+<<
+ /Title (\376\377\0\64\0\56\0\61\0\40\0\127\0\150\0\157\0\154\0\145\0\55\0\167\0\145\0\142\0\72\0\40\0\103\0\157\0\156\0\143\0\145\0\160\0\164\0\163)
+ /Parent 58 0 R
+ /Next 60 0 R
+ /A 21 0 R
+>> endobj
+60 0 obj
+<<
+ /Title (\376\377\0\64\0\56\0\62\0\40\0\127\0\150\0\157\0\154\0\145\0\55\0\167\0\145\0\142\0\72\0\40\0\102\0\157\0\157\0\163\0\164\0\162\0\141\0\160\0\160\0\151\0\156\0\147\0\40\0\164\0\150\0\145\0\40\0\127\0\145\0\142\0\40\0\104\0\141\0\164\0\141\0\142\0\141\0\163\0\145)
+ /Parent 58 0 R
+ /Prev 59 0 R
+ /Next 61 0 R
+ /A 23 0 R
+>> endobj
+61 0 obj
+<<
+ /Title (\376\377\0\64\0\56\0\63\0\40\0\127\0\150\0\157\0\154\0\145\0\55\0\167\0\145\0\142\0\72\0\40\0\106\0\145\0\164\0\143\0\150\0\151\0\156\0\147)
+ /Parent 58 0 R
+ /Prev 60 0 R
+ /Next 62 0 R
+ /A 25 0 R
+>> endobj
+62 0 obj
+<<
+ /Title (\376\377\0\64\0\56\0\64\0\40\0\127\0\150\0\157\0\154\0\145\0\55\0\167\0\145\0\142\0\72\0\40\0\111\0\156\0\144\0\145\0\170\0\151\0\156\0\147)
+ /Parent 58 0 R
+ /Prev 61 0 R
+ /Next 63 0 R
+ /A 27 0 R
+>> endobj
+63 0 obj
+<<
+ /Title (\376\377\0\64\0\56\0\65\0\40\0\123\0\145\0\141\0\162\0\143\0\150\0\151\0\156\0\147)
+ /Parent 58 0 R
+ /Prev 62 0 R
+ /A 29 0 R
+>> endobj
+64 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F3
+/BaseFont /Helvetica-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+65 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F5
+/BaseFont /Times-Roman
+/Encoding /WinAnsiEncoding >>
+endobj
+66 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F6
+/BaseFont /Times-Italic
+/Encoding /WinAnsiEncoding >>
+endobj
+67 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F1
+/BaseFont /Helvetica
+/Encoding /WinAnsiEncoding >>
+endobj
+68 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F9
+/BaseFont /Courier
+/Encoding /WinAnsiEncoding >>
+endobj
+69 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F2
+/BaseFont /Helvetica-Oblique
+/Encoding /WinAnsiEncoding >>
+endobj
+70 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F7
+/BaseFont /Times-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+1 0 obj
+<< /Type /Pages
+/Count 6
+/Kids [6 0 R 31 0 R 41 0 R 43 0 R 47 0 R 51 0 R ] >>
+endobj
+2 0 obj
+<< /Type /Catalog
+/Pages 1 0 R
+ /Outlines 52 0 R
+ /PageMode /UseOutlines
+ >>
+endobj
+3 0 obj
+<< 
+/Font << /F3 64 0 R /F5 65 0 R /F1 67 0 R /F6 66 0 R /F9 68 0 R /F2 69 0 R /F7 70 0 R >> 
+/ProcSet [ /PDF /ImageC /Text ] >> 
+endobj
+9 0 obj
+<<
+/S /GoTo
+/D [31 0 R /XYZ 85.0 659.0 null]
+>>
+endobj
+11 0 obj
+<<
+/S /GoTo
+/D [31 0 R /XYZ 85.0 548.666 null]
+>>
+endobj
+13 0 obj
+<<
+/S /GoTo
+/D [31 0 R /XYZ 85.0 356.872 null]
+>>
+endobj
+15 0 obj
+<<
+/S /GoTo
+/D [31 0 R /XYZ 85.0 291.338 null]
+>>
+endobj
+17 0 obj
+<<
+/S /GoTo
+/D [41 0 R /XYZ 85.0 626.08 null]
+>>
+endobj
+19 0 obj
+<<
+/S /GoTo
+/D [41 0 R /XYZ 85.0 340.307 null]
+>>
+endobj
+21 0 obj
+<<
+/S /GoTo
+/D [41 0 R /XYZ 85.0 274.773 null]
+>>
+endobj
+23 0 obj
+<<
+/S /GoTo
+/D [43 0 R /XYZ 85.0 573.8 null]
+>>
+endobj
+25 0 obj
+<<
+/S /GoTo
+/D [43 0 R /XYZ 85.0 333.787 null]
+>>
+endobj
+27 0 obj
+<<
+/S /GoTo
+/D [47 0 R /XYZ 85.0 467.22 null]
+>>
+endobj
+29 0 obj
+<<
+/S /GoTo
+/D [47 0 R /XYZ 85.0 340.647 null]
+>>
+endobj
+52 0 obj
+<<
+ /First 53 0 R
+ /Last 58 0 R
+>> endobj
+xref
+0 71
+0000000000 65535 f 
+0000018453 00000 n 
+0000018546 00000 n 
+0000018638 00000 n 
+0000000015 00000 n 
+0000000071 00000 n 
+0000000937 00000 n 
+0000001057 00000 n 
+0000001152 00000 n 
+0000018783 00000 n 
+0000001286 00000 n 
+0000018846 00000 n 
+0000001423 00000 n 
+0000018912 00000 n 
+0000001560 00000 n 
+0000018978 00000 n 
+0000001697 00000 n 
+0000019044 00000 n 
+0000001834 00000 n 
+0000019109 00000 n 
+0000001971 00000 n 
+0000019175 00000 n 
+0000002107 00000 n 
+0000019241 00000 n 
+0000002244 00000 n 
+0000019305 00000 n 
+0000002381 00000 n 
+0000019371 00000 n 
+0000002518 00000 n 
+0000019436 00000 n 
+0000002655 00000 n 
+0000005433 00000 n 
+0000005556 00000 n 
+0000005625 00000 n 
+0000005818 00000 n 
+0000006019 00000 n 
+0000006206 00000 n 
+0000006382 00000 n 
+0000006572 00000 n 
+0000006744 00000 n 
+0000006920 00000 n 
+0000009390 00000 n 
+0000009498 00000 n 
+0000012001 00000 n 
+0000012124 00000 n 
+0000012151 00000 n 
+0000012321 00000 n 
+0000014330 00000 n 
+0000014453 00000 n 
+0000014480 00000 n 
+0000014655 00000 n 
+0000015058 00000 n 
+0000019502 00000 n 
+0000015166 00000 n 
+0000015329 00000 n 
+0000015524 00000 n 
+0000015771 00000 n 
+0000016009 00000 n 
+0000016269 00000 n 
+0000016507 00000 n 
+0000016720 00000 n 
+0000017070 00000 n 
+0000017297 00000 n 
+0000017524 00000 n 
+0000017680 00000 n 
+0000017793 00000 n 
+0000017903 00000 n 
+0000018014 00000 n 
+0000018122 00000 n 
+0000018228 00000 n 
+0000018344 00000 n 
+trailer
+<<
+/Size 71
+/Root 2 0 R
+/Info 4 0 R
+>>
+startxref
+19553
+%%EOF