ࡱ> [ ibjbj  Pjjd9l>>>>>>>R...8..RTj/////222SSSSSSS$nU WS>2-2^222S@>>//{S@@@2 >/>/S@2S@@GGRh>>S/z/ k5R0,.I<RRSS0TR4X?4XS@RR>>>>How to install and operate the ASPSeek Search Engine These instructions are intended to be a simple step-by-step installation and operation guide for the ASPSeek Search Engine. The ASPSeek Search Engine is a collection of programs that will allow a server administrator to index the content of specific web servers and allow browsers to search through the indexed content via a CGI application. The diagram below summarizes how it works:  In a nutshell, the ASPSeek Search Engine consists of 4 main components: The Indexer program (index), which is a web-spidering robot application. It gets its instructions from the aspseek.conf and db.conf files. The aspseek.conf file can be altered to get its server list from sites.conf The MySQL database, which interacts with the Indexer and the Search Daemon. The information storage system uses a combination of SQL server tables and binary files. The Search Daemon (searchd), which is used to search the data storage system when a request is received from a web user. The s.cgi program, which runs as a CGI application on the Apache web server. Any conventional web-based form can call this program, such as the form that might be included in the search.html document. The remainder of this document will detail the installation of ASPSeek. Requirements: Hardware: Low End the ASPSeek packages have been installed successfully on a discarded Intel-based workstation: Pentium-S 133mHz with 64MB of RAM and a 1.5 GB IDE HD. This size of machine would probably suffice if you want to index a small number of servers. High End the ASPSeek packages have been installed successfully on a Dell PowerEdge 1500SC with twin 1.4 GB P-4 processors, dual 18 GB SCSI HDs in a Raid 5 configuration. Operating System: ASP-Linux the ASP-Linux operating system is a variant of RedHat Linux. This operating system features a very efficient installer and it is the OS that ASPSeek was originally designed on. RedHat Linux 7.2 Since ASP-Linux is based on RedHat Linux, this OS is compatible with the ASPSeek Search Engine. Source code: The latest version of the ASPSeek Search Engine is aspseek-1.2.10.tar.gz The source code is available at http://www.aspseek.org/pkg/src/1.2.10/aspseek-1.2.10.tar.gz Installation from source requires compilers and compiler libraries Packages (RPM): On RedHat Linux and compatibles, installations can be done using the RedHat Package Manager system (RPM). The RPMs are available at http://www.aspseek.org/pkg/rpm/ Current package builds are based on aspseek-1.2.9-1 rather than aspseek-1.2.10. Depending on the system that you are using, you may need to find and install the Apache web server and the MySQL server packages. Both packages will probably be available on the Linux install CD. You should also consider installing PHP with MySQL support. Networking: Linux recognizes most modern Network Interface Cards (NIC). It is advisable to check the hardware compatibility lists for your Linux distribution prior to installing the OS. Most Linux flavors recognize 3Com, Intel, and other brand-name cards. When the Indexer is running, it can consume quite a bit of your network bandwidth. Depending on the number of servers that are indexed and the depth to which a search is working, a single indexing run can take hours. A T-1 (1.54 mbps) connection should provide sufficient bandwidth for indexing as well as end-user search connections. Stage 1: Installing the Linux Operating System If you have never installed Linux, dont panic. Most of the latest distributions include very efficient installer programs. On most modern, high-end machines, the installer program will work as effectively as Windows or Macintosh installers. Since the GNU Public License protects the Linux OS, it is free to download and burn to CD. These brief instructions are for the ASP-Linux distribution. Getting Ready: You will need a high-speed Internet connection and a workstation or laptop that has a CD-RW drive. Most computers with CD-RW drives have CD-burning software installed. Step 1: Download the ISO image from  HYPERLINK "http://www.asp-linux.com" http://www.asp-linux.com. The most current version is asplin-rc3d1.iso. It weighs in at approximately 680 MB, so make sure you have plenty of disk space and lots of time for the download. Save the image to an easily accessible location on your hard drive. Step 2: Create the CD using DirectCD, EasyCD Creator, Nero, or your favorite CD-creation program on your machine. Step3: Once the CD is created, you can use it to install ASP-Linux on the machine that is destined to become the search engine server. Most of the newer computers will boot from the CD-ROM. If yours does not, you may be able to modify the BIOS settings so that it will. If the server-to-be will not boot from CD-ROM, then you can create a boot installer diskette that will let you install the OS. Creating a Boot Installer Diskette Getting Ready: This presumes that you have successfully created the ASP-Linux Installation CD. Step 1: While youre still using Windows, insert the ASP-Linux Installation CD in to the CD-ROM drive. Place a BLANK diskette into the floppy diskette drive. Step 2: Go to Start ( Run and type in command (Win98) or cmd (Win2K/XP). Once the command window appears, type d:\dosutils\rawrite.exe (without quotes). This will launch a disk imaging utility that will prompt you for Source: and Destination: Source: d:\floppy\boot.img [Enter] Destination: a: [Enter] Step 3: Once the Boot Installer diskette is created, place the CD in the CD-ROM tray and place the diskette in the diskette drive of the server-to-be. Then boot or reboot the machine. If your machine will boot from the CD-ROM drive, you do not need to use the Boot Installer diskette. WARNING: INSTALLING LINUX ON A COMPUTER WILL ERASE THE HARD DRIVE(S) AND COMPLETELY REMOVE EXISTING OPERATING SYSTEMS, PROGRAMS AND DATA. Step 4: Follow the on-screen dialogue to install ASP-Linux on your system. Ethernet connectivity will allow the installer to proceed more rapidly as the installer probes the network for information. Installation can take several minutes. For more information on installing ASP-Linux, see: http://www.asp-linux.com/en/docs/install/ For more information on using ASP-Linux, see: http://www.asp-linux.com/en/docs/guide/ Stage 2: Installing MySQL The ASPSeek Search Engine relies on a relational database management system (RDBMS), such as MySQL. MySQL is a small, compact database server ideal for small go medium applications. ASPSeek requires MySQL version 3.23.xx or later. To test for the presence of MySQL, issue the following command from the root command line prompt: # whereis mysql If it is already installed, the system should return: mysql: /usr/bin/mysql /usr/lib/mysql /usr/include/mysql /usr/share/mysql /usr/man/man1/mysql.1.gz If the system returns the following: mysql: then MySQL is not installed on the server and you will have to install it. Installation of MySQL from RPM is the preferred method on RedHat or ASP-Linux. The following packages should be installed prior to installing ASPSeek: MySQL-3.23.51-1.i386.rpm MySQL-client-3.23.51-1.i386.rpm MySQL-devel-3.23.51-1.i386.rpm MySQL-shared-3.23.51-1.i386.rpm The packages can be found on the ASP-Linux CD, the RedHat Linux CD (Disk 1), or from the http://www.mysql.com/ web site. For more information on copying files from the CD-ROM to the server filesystem, consult the User Guide. You must be root to install packages on your Linux server. Once you have acquired the MySQL packages on your server, issuing the following commands will install them: rpm -ivh MySQL-3.23.51-1.i386.rpm rpm -ivh MySQL-client-3.23.51-1.i386.rpm rpm -ivh MySQL-devel-3.23.51-1.i386.rpm rpm -ivh MySQL-shared-3.23.51-1.i386.rpm Stage 3: Installing Apache Web Server Chances are that the Apache Web Server is already installed on your server. If it is not, you will need to grab the RPM from the Linux CD or from the Apache web site. To test for the presence of the Apache Web Server, issue the following command from the command prompt: # whereis httpd If Apache is already installed, the command should return something similar to the following: httpd: /usr/sbin/httpd /etc/httpd /usr/share/man/man8/httpd.8.gz If the system cannot find the Apache Web Server, you will need to install it. As with all package installations, you must be root in order for RPMs to install properly. rpm -ivh apache-1.3.20-16.i386.rpm You should also check to see that zlib is installed on the server. # whereis zlib zlib: /usr/include/zlib.h /usr/share/man/man3/zlib.3.gz Stage 4: Installing the ASPSeek Search Engine Once again, installation from RPM is the simplest approach to installing ASPSeek. There are 6 packages that are required. aspseek-1.2.9-1.asp.i386.rpm aspseek-client-1.2.9-1.asp.i386.rpm aspseek-mysql-lib-1.2.9-1.asp.i386.rpm aspseek-cgi-1.2.9-1.asp.i386.rpm mod_aspseek-1.2.9-1.asp.i386.rpm aspseek-1.2.9-1.asp.src.rpm Install each package using the rpm ivh command. The contents of these packages are listed in the Appendix of this document. After installing all the packages, your machine will benefit from a reboot. This can be accomplished from the command line with either of the following commands: # shutdown r now # reboot Once the server reboots, you can start testing out the system. Stage 5: Testing and Configurating the ASPSeek Search Engine All of the components of the search engine should now be operational. There are a few tests that need to be performed to ensure that everything installed correctly. The first thing to check is to see that the s.cgi binary found its way into the correct directory. On RedHat and ASP-Linux, it should have been installed in /var/www/cgi-bin. You can check this by issuing the following from the command line: locate s.cgi Your system should return the following: /usr/share/man/man1/s.cgi.1.gz /var/www/cgi-bin/s.cgi To see if the Apace Web Server is able to serve this CGI application, open a browser on a workstation and type in the following address: http://{yourservername-or-IP}/cgi-bin/s.cgi If successful, you will see the generic ASPSeek Search page. You can give it a try, but prior to indexing some web sites, the database will be empty. Next you will want to test the Indexer. The index application is a component of ASPSeek that performs Web-crawling, document downloading, parsing and storing. It can also be used to manipulate the ASPSeek database. During the indexing process, index walks across the sites and stores the pages it finds in special data structures called delta files, and in a MySQL database. In order to run index, you must become an unprivileged user. The ASPSeek installation process created a user called aspseek. You must become this user to perform certain tasks, such as performing an index run. To become the aspseek user, issue the following from the command prompt: # su aspseek Once you become the aspseek user, you will have a different shell. From this shell prompt, issue the following command: bash-2.05$ index S This instructs the index to read its configuration files and to show the database statistics (the sample below is from a database that has already indexed sites): Loading configuration from /etc/aspseek/db.conf Loading configuration from /etc/aspseek/ucharset.conf Loading configuration from /etc/aspseek/stopwords.conf Loading configuration from /etc/aspseek/sites.conf Loading configuration from /etc/aspseek/aspseek.conf ASPseek database statistics Status Expired Total ----------------------------- 0 22675 22675 Not indexed yet 200 85 130351 OK 300 0 193 Multiple Choices 301 0 1414 Moved Permanently 302 0 3392 Moved Temporarily 401 0 50 Unauthorized 403 0 565 Forbidden 404 9 14913 Not found 500 0 8 Internal Server Error ----------------------------- Total 22769 173561 If your system returns a screen similar to the one above, then the index program is working properly. You will have to return to the root prompt by issuing the exit command to quit the aspseek user shell. bash-2.05$ exit The next step is to add the sites that you wish to index. Prior to making the first indexing run, you will need to add web server URLs to the aspseek.conf file. All of the configuration files are located in /etc/aspseek/. To edit this file (and other files), change directories by issuing the following command: # cd /etc/aspseek List the contents of the directory by issuing the ls -l command: -rw-r--r-- 1 root root 22651 Jul 3 14:26 aspseek.conf -rw-r--r-- 1 root root 59 Feb 18 16:42 db.conf drwxr-xr-x 2 root root 4096 Feb 18 16:42 langmap -rw-r--r-- 1 root root 15254 Jul 15 11:51 s.htm -rw-r--r-- 1 root root 6351 Sep 24 2001 searchd.conf -rw-r--r-- 1 root root 566 Jul 2 14:33 sites.conf drwxr-xr-x 3 root root 4096 Feb 18 16:41 sql drwxr-xr-x 2 root root 4096 Feb 18 16:42 stopwords -rw-r--r-- 1 root root 1105 Sep 24 2001 stopwords.conf drwxr-xr-x 2 root root 4096 Feb 18 16:42 tables -rw-r--r-- 1 root root 2274 Sep 24 2001 ucharset.conf Edit the aspseek.conf file using the text editor, pico # pico w aspseek.conf Use the down-arrow key (or the ctrl-v key combination) to find the following section: ####################################################################### #Server # It is the main command of aspseek.conf file # It's used to add start URL of server # You may use "Server" command as many times as number of different # servers required to be indexed. # You should specify FQDN in URL, so put http://myserver.mydomain.com/ # instead of just http://myserver/ # You can index ftp servers when using proxy: #Server ftp://localhost/ #Server http://localhost/ Add the following lines immediately below this section, taking care not to use the comment symbol (#) at the beginning of the line: Server http://www.server-to-index/ Server http://www.anotherserver-to-index/ You can add as many servers as you wish to index, one per line. When you are finished adding servers in this fashion, close the pico editor by using the ctrl-x key combination. It will prompt you to Save modified buffer to which you will type in a y; then it will ask you if youd like to save the file under the name aspseek.conf, to which you will agree by pressing the [Enter] key. If you have just a few sites to index, then inserting the Server http:// directives into the aspseek.conf file will work just fine. If you will continue to add servers over time, then it may be better to create an external file that contains only the server directives and call that file from the aspseek.conf file with an include statement. Heres how that works: Edit the aspseek.conf file with the pico editor, and locate the #Server section. Instead of adding line after line of servers to index, simply add an include statement as shown in the example below: #Server ftp://localhost/ #Server http://localhost/ Include sites.conf Save the file and exit from pico. Next, create and edit a sites.conf file: # pico w sites.conf Add the Server directives one per line as in the following example: Server http://www.server-to-index/ Server http://www.anotherserver-to-index/ Server http://www.yetanotherserver.com/ Save the file and exit from pico. When the Indexer program reads in its configuration information, the aspseek.conf file will pull in the values in the sites.conf file as if they were part of the aspseek.conf file. The web pages that are returned by the Apache web server are created from a template that resides in the /etc/aspseek directory. By editing the s.htm file, you can change graphics, fonts, arrangements, and other cosmetic features that are rendered in a browser. Study this file carefully prior to making changes. It may be advantageous to make a backup copy of it before you start hacking on it: # cp s.htm s.htm.bkup If something goes awry, you can always recover the original file by switching the filenames in the command above. Stage 6: Indexing with the ASPSeek Search Engine Finally, the ASPSeek Search Engine is ready to do an indexing run. Once again, you will need to take on the identity of the aspseek user. # su aspseek After you become the aspseek user, you can run the index program: bash-2.05$ index The screen should show that the configuration files are loading and then show that the URLs are being indexed. When the indexing run is completed, you will be returned to the command prompt. You should exit the aspseek user shell and return to being the root user. At the end of its run, index will create a set of Delta files and organize the database so that it is easily searchable by the Search Daemon (searchd). There are dozens of command line switches that can be used with the index command. For example, if you have 20 servers that are being indexed, you may want to start more than one threaded process to do so. Issuing the following command will create 10 parallel processes that will spider and index the 20 servers: bash-2.05$ index N 10 You may find that automating this command relieves you of the chore of logging into the server, becoming the aspseek user, and remembering which command to use. You could create a cron job to have the indexer run on a repeating, regular basis. Perhaps you would like to re-index the servers at 2:00 a.m. every Sunday morning. To make this happen, you can create a shell script called index-run.sh and then use the crontab utility to add this to the list of cron jobs executed by the system. To set this up, begin by creating the index-run.sh script. Issue the following command: # pico w index-run.sh Type in the following: #!/bin/sh /usr/bin/index N 5 Save the file and exit pico. Next, change the ownership and permissions on this file so that the aspseek user can execute it: # chown aspseek.aspseek index-run.sh # chmod 700 index-run.sh Next, create an aspseek.cron file that will be used to schedule the indexing process. From the command line, type: # pico w aspseek.cron Type in the following information; pay close attention to spacing. This will run the index-run.sh script every Sunday morning at 2:00 a.m. (server time). * 2 * * 0 /etc/aspseek/index-run.sh Save the file and exit. Finally, set up a cron job for the aspseek user that executes the shell script that you created: # crontab u aspseek /etc/aspseek/aspseek.cron Stage 7: Going Further There are literally dozens of different mechanisms that can be switched on and off in this search engine. Your best bet is to read the documentation thoroughly, with heavy emphasis on how to modify the configuration files. Be aware that indexing numerous web sites can fill a small disk drive quickly. As a system administrator, you will have to monitor the disk and might occasionally have to prune the database. To monitor the used and available disk space: # df -h To flush the database prior to starting anew: # su aspseek bash-2.04$ index C w Simple web forms can be produced that point to the ASPSeek CGI program. A simple example is shown below: Simple Search with ASPSeek
Search for:
Unlike the larger search engines, such as Google or Altavista, the ASPSeek search engine returns information to the user in a somewhat different fashion. Since ASPSeek indexes only specific domains, then when an end user submits a query, ASPSeeks first screen returns only a couple of highly relevant links from each site on which it found a reference. The web interface displays this information in a fashion similar to the screenshot below: In this example, out of the 20 web servers currently being indexed, searchd found references to the descriptor communication on 16 of them. Each listing has an additional hypertext link to more documents that are available on each server as shown below: By looking at More results from on a specific web server, the additional references are presented in descending order based on the relevance of the information to the original query. As a bonus, each page is cached on the ASPSeek server so that it will continue to be available even if the original resource is removed. {additional information will be added in this section} APPENDIX: Contents of aspseek-1.2.9-1.asp.i386.rpm /etc/aspseek /etc/aspseek/aspseek.conf /etc/aspseek/langmap /etc/aspseek/langmap/arabic-iso8859_6.lm /etc/aspseek/langmap/arabic-windows1256.lm /etc/aspseek/langmap/czech-cp852.lm /etc/aspseek/langmap/czech-iso8859_1.lm /etc/aspseek/langmap/czech-iso8859_2.lm /etc/aspseek/langmap/czech-keybcs2.lm /etc/aspseek/langmap/czech-koi8cs.lm /etc/aspseek/langmap/czech-macce.lm /etc/aspseek/langmap/czech-utf_8.lm /etc/aspseek/langmap/german-iso8859-1.lm /etc/aspseek/langmap/greek-iso8859-7.lm /etc/aspseek/langmap/hebrew-iso8859_8.lm /etc/aspseek/langmap/russian-cp1251.lm /etc/aspseek/langmap/russian-cp866.lm /etc/aspseek/langmap/russian-iso88595.lm /etc/aspseek/langmap/russian-koi8r.lm /etc/aspseek/langmap/slovak-windows1250.lm /etc/aspseek/langmap/slovenian-iso8859_2.lm /etc/aspseek/langmap/ukrainian-koi8_r.lm /etc/aspseek/searchd.conf /etc/aspseek/sql /etc/aspseek/stopwords /etc/aspseek/stopwords.conf /etc/aspseek/stopwords/README /etc/aspseek/stopwords/catalan /etc/aspseek/stopwords/czech /etc/aspseek/stopwords/czech.iso88592 /etc/aspseek/stopwords/danish /etc/aspseek/stopwords/dutch /etc/aspseek/stopwords/english /etc/aspseek/stopwords/french /etc/aspseek/stopwords/german /etc/aspseek/stopwords/hungarian /etc/aspseek/stopwords/italian /etc/aspseek/stopwords/italian-small /etc/aspseek/stopwords/norwegian /etc/aspseek/stopwords/polish /etc/aspseek/stopwords/portuguese /etc/aspseek/stopwords/russian /etc/aspseek/stopwords/slovak /etc/aspseek/stopwords/spanish /etc/aspseek/stopwords/turkish /etc/aspseek/stopwords/ukrainian /etc/aspseek/tables /etc/aspseek/tables/README /etc/aspseek/tables/big5.txt /etc/aspseek/tables/chinese.txt /etc/aspseek/tables/cp852.txt /etc/aspseek/tables/gb2312.txt /etc/aspseek/tables/iso8859-1.txt /etc/aspseek/tables/iso8859-10.txt /etc/aspseek/tables/iso8859-13.txt /etc/aspseek/tables/iso8859-14.txt /etc/aspseek/tables/iso8859-15.txt /etc/aspseek/tables/iso8859-2.txt /etc/aspseek/tables/iso8859-3.txt /etc/aspseek/tables/iso8859-4.txt /etc/aspseek/tables/iso8859-5.txt /etc/aspseek/tables/iso8859-6.txt /etc/aspseek/tables/iso8859-7.txt /etc/aspseek/tables/iso8859-8.txt /etc/aspseek/tables/iso8859-9.txt /etc/aspseek/tables/keybcs2.txt /etc/aspseek/tables/koi8cs.txt /etc/aspseek/tables/koi8r.txt /etc/aspseek/tables/koi8u.txt /etc/aspseek/tables/macce.txt /etc/aspseek/tables/windows-1250.txt /etc/aspseek/tables/windows-1251.txt /etc/aspseek/tables/windows-1252.txt /etc/aspseek/tables/windows-1253.txt /etc/aspseek/tables/windows-1254.txt /etc/aspseek/tables/windows-1255.txt /etc/aspseek/tables/windows-1256.txt /etc/aspseek/tables/windows-1257.txt /etc/aspseek/tables/windows-1258.txt /etc/aspseek/tables/windows-874.txt /etc/aspseek/ucharset.conf /etc/rc.d/init.d/aspseek /usr/bin/index /usr/bin/searchd /usr/share/doc/aspseek-1.2.9 /usr/share/doc/aspseek-1.2.9/AUTHORS /usr/share/doc/aspseek-1.2.9/COPYING /usr/share/doc/aspseek-1.2.9/FAQ /usr/share/doc/aspseek-1.2.9/INSTALL /usr/share/doc/aspseek-1.2.9/NEWS /usr/share/doc/aspseek-1.2.9/README /usr/share/doc/aspseek-1.2.9/README.rpm /usr/share/doc/aspseek-1.2.9/RELEASE-NOTES /usr/share/doc/aspseek-1.2.9/THANKS /usr/share/doc/aspseek-1.2.9/TODO /usr/share/doc/aspseek-1.2.9/multibyte.txt /usr/share/doc/aspseek-1.2.9/unicode.txt /usr/share/man/man1/index.1.gz /usr/share/man/man1/searchd.1.gz /usr/share/man/man5/aspseek-sql.5.gz /usr/share/man/man5/aspseek.conf.5.gz /usr/share/man/man5/searchd.conf.5.gz /usr/share/man/man7/aspseek.7.gz /var/aspseek Contents of aspseek-cgi-1.2.9-1.asp.i386.rpm /usr/share/man/man1/s.cgi.1.gz /var/www/cgi-bin/s.cgi Contents of aspseek-client-1.2.9-1.asp.i386.rpm /etc/aspseek/s.htm /usr/lib/aspseek/libaspseek.la /usr/lib/aspseek/libaspseek.so /usr/lib/aspseek/libaspseek.so.0 /usr/lib/aspseek/libaspseek.so.0.0.0 /usr/share/doc/aspseek-client-1.2.9 /usr/share/doc/aspseek-client-1.2.9/templates.txt /usr/share/man/man5/s.htm.5.gz /var/www/html/aspseek /var/www/html/aspseek/img /var/www/html/aspseek/img/asps.png /var/www/html/aspseek/img/aspseek-big.png /var/www/html/aspseek/img/e.png /var/www/html/aspseek/img/e_.png /var/www/html/aspseek/img/k.png Contents of aspseek-mysql-lib-1.2.9-1.asp.i386.rpm /etc/aspseek/db.conf /etc/aspseek/sql/mysql /etc/aspseek/sql/mysql/tables.sql /usr/bin/aspseek-mysql-postinstall /usr/lib/aspseek/libmysqldb-1.2.9.so Contents of aspseek-1.2.9-1.asp.i386.rpm /usr/lib/apache/mod_aspseek.so /usr/share/doc/mod_aspseek-1.2.9 /usr/share/doc/mod_aspseek-1.2.9/README.APACHE_MODULE Contents of aspseek-1.2.9-1.asp.src.rpm aspseek-1.2.9.tar.gz aspseek.spec doc-pathfix.patch Documentation: Available on-line at http://www.aspseek.org Also available as a set of man pages. Examples: # man index # man searchd # man s.cgi # man aspseek.conf P-16 Portal Project Documentation [Draft]  PAGE 13 q}] r |}<=>VWvIln\"#''**,,-- ..C.H.../ /x//44 j5\0JjY8UH*56CJOJQJ\]5CJOJQJ\^J jUP5  ) &   * s    & F & F 8^` & F]$a$hi # ( pqr12CBCK  !h^h !8^8 & F & F 8^`HIlm|mnvn\]eOP  !^  !h^h !"#op@AHI- . G ^`  !` !  !h^h !hh^h`hG g !!4"5"W""""""" $ $$${$|$$$h%i%%% ^` !%%%%&&J&K&&&&'6'Y'z'''((((((())Z)[)*****++0+1+P+g+h+++,,,,,,2.3.U/V/c/d/////^h^h/000041g1111111.2R22223C3n333334444h^h444Y5e5L6Q6]629<9H9e9i99;<<< ==T=i=====P>^>t>>A?M?\?c???????????Y@@@@@@@@@AOAAAA-B4B5B9B^BcBdBhBBBBBiEpEEEFFFFGGG"GsGzGGG?IFIIIVJbJuJ|JJCJOJQJ^J5CJOJQJ\^J]4556666\6]666"7`777$8f8882939k99999h^h%d'dOQ^9":0:^::::2;U;;;;;;<<<_<<<>>??X@Y@r@@@@%d'dOQ@@@@AANAOArAAAABB/D0DFDGDDDDwExEEEEE^%d'dOQEEE}G~GHHHHJJJJKK4K5KLKMKWKXKlKmKKL*L+LLL^JJJJKKKK;LBLCLGLMMMMMMVMWM{M|MPQSSSSTTU"Vyh|hhhhiiiiƻ0JmHnHu0J j0JU 6CJ]jCJUmHnHu5CJOJQJ\^JaJ 5CJ\5CJOJQJ\^J(LLLUMVMWM{M|M}MMM'N?N@NOOPPPPJPKPZPrPsPPh^h^ ]^`PPPQ#QcQ}QQQQSTUU"V,VUVbV|VVVV W1WYWWWW$a$h^hh^hWWX=XfXXXXY-YYYYYYYYYZ:Z`Z~ZZZZZ[6[[[|[[[[[[\7\X\l\\\\\]#]F]i]]]]]^7^Y^{^^^^^_:_:_X_}____`6`[`````` aa:a_aaaaab8bcbbbbbcc=cbcccccc d)d@dAdqddddde,e^e}eeeeef;f[f\ffffffg%gNgmggggghh!h"h1h]h^hhhhhhhhhh !hhhiiii !$a$$a$/ =!"#$%nKKIV@AoPNG  IHDR isRGBJIDATx^KeWqnmKA`@62F) {G0H A`0HpL`$$v ~\#?]׳k9SVկj]guN988yHHHH8J$@$@$@$@VHL     BbN +$ >=>Νc: LO`J5/UHG9l;8|{    I;_"gf?*G^z%ǎ]GZ'Mb/ 6:s믟9}zxURLJWH\rˏ]yǏ_.;:iɰ   %bUk~W_z<3gDn;vW_7_s ]5W]u &*Hߜ$@$@$r(b_y~?^xm HW\q_p7ϱ! *{?V}UOIH`R"=sӏ=W^ҥŢ[rmOo7_}цUIMr.0U?k6$ ?, /#z`Im 86<7^{qz? \#n'YyƯ9&Xe {7y#%|IWHN;uvM8ڬ֕ o?j!/FkZ ,*$Ftԓ=_<SzkE+wsϻx-7_wUX[>Fu!pKΞ ?Ft<q@+6! >$TB>?GTK+׃kHB.TH#ҥŒa$ 0~@F? RHf&~P!*zATHcBrf $(&1JIH` X!mz.}u6XD6L; ͰaѩS|љ$b7:UwCcp|| !w!Ibż&&4$=l5q&`#0i= *ި6m'%Fy=~I 4g͉~c;_wlN~]{ G>rj/~q=<Q<'>qlj#[CbÏ~tÛ7޸<~?=TV|nhMuʓ  5}K.K b՘װڽQ-0^RmjZ=Ⅵ'hPIަ4ɓ/Q@(>k6੧6bP!};O~rGu~ Nԧ6Љ&_Pvz啛IȠ؃?lÀ^/( &lrOBٛ)FS@S-rk֓IMr \*/di\F!@|T4  .ެk0Tރlje((toA"k6̦W7ϱƃux"Y"B'I8z@S)@{w TldMG$*$.Qa9#KR!UՈ`A"`*t *X)XUWΤ qb~6,SA/9djȟ,` A7P@"Fj&P`B&PI.b,C$ma Juv  f &K|*/OΤ. lՒUO/;(#G_lpMp σkHV m$5|S3ḾoBN@XgBaSkzVk ȣ7C9qWQ!AG (tW@9!\PN9׾ց!U !X袋"ƣ}RY21xN)/ɚ} _BZ>]HpTH )o-zZ;AU$@$ K;$qV]4 0~@qٚHHBjۇE5 @=~"UH$@ iA $@$@$@ # ia9$@$@$@ iA $@$@$@ # ia9$@$@$@ iA $@$@$@ # ia9$@$@$@ iA $@$@$@ # ia9['Q\ !v(te<  X!1HHHH $ 9A$@$@$@$@$@$@$P#5!O$@$@$X!_1 @+!O$@$@$X!_1 @+!O$@$@$X!_1 @+!O{I=du02MQbAR.ѕ,+],)b"߇%&iF?~3G\(smmԯ?mLV 4~:4]o'$ϝ?.]́Uê#6_PTuf`ܒgp(6^.ΤA=Z$8J7vɑL)m;OGe8:rm9'vb8;IZHV;⹜,jɟ{LEn #7 *$hJ}iGmK920x@ N~N9Q:!ףU(Ynxm^B\, /̞hE&Gj T6 lx4U x;T˼^X&\iU2x\/Uyut$zAhFnTHU"/ =ʪldt.1kȱ=|SH5iH *?B|h6tv檊%\Shnc & 3xIIU;d`; aT-.Wu TH W=ZJqG2XUl'rZ>OLGƘ10ۙ# e#?R&.ZQ K91;@r5yi:mz9Yot2I;vWf7=lB*GbbhY2("9ƻ9@0ƷOiG#;dUI{)7s!KP&'@.j_7^ACtL]ܟ(i+$iS-52$&X~W22x 3$qS!~۪IU%3`rW.{ [%$b0ĤB'+?lsj"cԭ<=2U~Owdͷ1/?wvmBj2E9#/-8H?Fh V y$/7ФIau:dVd(;5;ӣwKA0j|@tJj׃V=_um\c;_&ʳ4,USTڜTu`3'+<4L[!u;g%asgT0!i|p~kXJ5r՘Vbʱl-")m]Yk@!&9#9 $%o"F]=@;ȥ2q0Q|-U]3%;rC3=^ HcRullRrl.AT>(fU8ʍ$(GQnM rcI̴R)&[tc %}}oeWzVH(eꏃeA_lP6Ap`   " 6 !  R}'ׅgtj/' $  %0a$;hI StD$@$@$@&0apD$Yˉד->@Vmkȅ6ZT㞤o[Ryz Bt?X|%B"etL-d+UM&)L$@$@$0add[lc39mcZE$@$@$J` Is:CJzkuU~XZl%+{Mʇ$@$@$"Vu:Ul[$ lwRHHH &0azg-)SҪKu:5S/خ.Jϻp  X +`^<`YXniK]X5\rYca8+QzHHH` LX!IG(b!yLV_θߠ/16vS0ՔU䜑L0 i+DGHHH+ 7%  p`D!   " iMgIHH\&|sRj<}}QmxҪ/?@y+D1p!yUV&& Rl\^}AϹoc2igPo>zANc(F$@$fֈr:#@1O/ka?Kl_1~V4D~}WVMƓ "0m$cNdB|VeWb|29^I.<; ,wǬ$TK)G&  BT!d:q e+*Ys } WS\86w9Q(jG2[fS8pH`iV_!\39t'ipP$b;QL#nAԖǬ9#Kl$ [ߚd/H`iV_! tvN#}iaNAI.>NV6ƄOݍqܶjCkxLԶBʐ *x[ 񑰚C &ŷr`;UjL$S#ݨ o|y^BU=M-h\ (d-H.3dreL\'DkS1|MwlQ6~ AKZ\ņ/0^ MG :F/hܶ &UZJ!2Ɨclkm묌j>$so ǧA_L 7ruR \tƔSq۲bX@أ$id/\qēvc r/6~{ NTD3'݀1֞)QpUUU88>I `՞pʍذ1rP"+aXUVʰ^TH]&ԑ$g_U.ӷ@E(%V1ӄGI,-\,|J4=gZkkØLVú(93 +rEЪMۥS>EE?P )d?0̓ˊjǛ051nmSV1\U5,QrE>iH_MT:6dа^U<]2 cX;h\Lv:Kl}Rskq:ejXM:s&k+;/M ))U޵ӱǽHMt/r*^3~Dd'Uz$lHdlpēձ1vL9c𸓴-hXXKZ98Awz*38^),(0\V'Bb's笕rFu#B/JOx@uY_dͅxKa? HNX$P+̝ Lj%QI6#k`j0HVq դݠ 5i2ld '[OcZI ۓHSX`plsl[L'O !rFPu"*$m{nJ2N!*O40W H&= A mf' ábvܟA83X5'ij2UHSPN   X!1HHHH $ 9A$@$@$@8tLgtk]BH 5`Lɓ~h |u{y)p7oȐ_*' XYvwrc'-]_V3w4;4`9PS3 z B*֟|cVK5"AK",KzI1j`aC-)/HG=vI M< [u.Uh#& B*\% M1ڑTt[=z[%IѶK$ȴƒ&X{o%IH`N+jFp%9A;yˣM% hT[9-)DAVv3KĪ&])Le訓HH`QuLT䏇@0 !vRgDjgXr ]$3̵m"3FjL/l۝~UHbfwG$-dnM^5Ё$σOz׶*` Ͱ}v=iRsd++VqU;=F&dFթ KeQ $ ViPHB Ҭ0|tm{.Z$@5 Cu@VҎ0,qWhI1W4qgtqp2뫐lϓsˑU ne$m&Ul1grf`@'d@8TIA⊽n3/ iP@q!W_e49Uew,ςɠ'ONmٝ1ɡK¸X283Erۀ#w=Me50B)o%cܾLfKZKK0XN(%2]cYeW!p0 $?s/f>Lˢ1 4cH`OBړ@,`%Iw O 7-HHHNR%}EdF<@SNQ!$뫐[~44!v9GTޅpݥ.jMdu$0Γ ۤ. ucl $C VV!dӏ5k2@\Z$jϞByW /ؓIE|œK]HzRbEzܡ *B&ëS h.z F<*'6 B.pЮؒFrUyņÚa{Tb=,)u@u Ĝ_.XI[eN,.H8R6^MF99sP 1@0QT3$@SX}$s\ζ S4IN,ꔝ*t]Mm( Nz1񷪚dx +eғ5SxU#ŒUh:l_]Kn!٬Lq$8.ɨ1uP @L`vzl/xQUa]xZţQYO/M zB+'qKU8P\.˼^c-YX[67xO 2@- +Y6&h(#ur/F_ɮͰZ *KpѶIrV:JtZ0!TBL`,@S#M)L$# )vcUΰIIFKlkA`Ҁ&'(taue~Y?g,(F$|87ͳ@ IO LL#} r~-ѹ?O (C$ iuOǎ]zO鮻q=#_wU8+*QV=r9#Рj7n&uºf7v';ي_sª),Pɰ ԤaqƮi9yq(%596r2+.I2C>œۅ~J~M .7~_мQ07Fq_Lߵg]*o_!(8{ӯ?싧N=_ϟ{%x|o4Gu 7o?#O<3gs~1RgU/I~.csN1Oa2QK۾ITXm[8ư87Z; BSIDmK\L9:^#<ç~AbMMƑ{E6dn'VJbe,;3dH`' A= *9vPATD[^u.E`^ym[Fv*`h [α)IaIr'7LFF)vUc ^ ,O-i@S @L`*meT*M[F6q}"zm"8Z"_m &z ~5cJF ,Jw;ew&p3%I`U!UvcĘ^Z.vù~6]uYz)7Xa5jà9#2QNcyl9[M$ " eMwW8"%'v˧ʔK[K&I ]k\[Ʋڢ'lIZIe8+8w <KW`jV 3'8dRQ!H SC!|T$w>jũ:ѝFCԶmo!.nЖgS0-phک ! eKm~˔֭m[r +X2kU HH` X!mPsCKuyVUV1R5Xk֘!yivBSri!=$/' 4UHީٖ$@k!& +$#   X!մ}A~Jί<'E*jiYZϗG:CMa7$@#/RPd9Fs_W4.g??޶ eGhJ_:J᭙1iP}J7ݴs?O?}<򈋓^q_܆[8D@H&e>uv hqB*C܋K& 07zv8m~SG9f&_<'~ÿ;8[3_ɓS@H|_|#(uM[nT]NMeC`}\rNR_?׶)ҕ yb_&bVma&:ח.g[cr%pVJڻ, yP1 ,0ilL!X@$08W^T>,Mm ~iJ_[A7pfn>8qp%>{aE B/nzzfUo 5²@ƤM%[l㼼op?s/}wl osr!1=}hb'F_ݼT?T&/op@'L[8_` $aX|-+.>vNBĚ^mdo~ӟ^/U5 6x~%D mXQH\G`@&8x\'4A3KlG A 5 0aq{6+8Ew6}$C6@&Ʌ%%ŻXѡ#΄,p28x -‚r+P߿1I_~ ^&:bҕW|V8_RT،0%C6Ɏ>W(d&&\D.ik;ɺBb A-l^j!Ic9 Ey}Ѱc\ p h ez@a3_ZNlVuGkG}ۛk-(88(B@(h kwms= T9Z.I\@r .T'h: ^&1ܑ{ e.u}HzCe3`!72fpXtup/A8 R~ҷPl=aX\^e',OMk ԃAo⥨nG5m%aad_;>s![w&9~c6Ql9ӭ`ݙ|X9[a ˀ~LoɪIKsN %(M\9W2\]OW;Rz pwqIZKp =G  {XR>XE)7Q"/*B],$vd,@ H6~sANt{rNU9ecIh%odRzvC[ysv@L7b'?m.U $Dt%'~~qěۺGQ-(NmHKélܴ aj-bp&RߺS-I! x׳u4 $N,VY1Kۘbvjc҅+ǎ]zO鮻q=#_wU8kN]w0To *.h8{XscXnc);1cEw!]y9>XcEP4OS@wx7;p/\"u.`A6ȝ5|w^粂%a/~lщ rcN\Bwp'Kh(w<pKd` ?+. P08PҦБ%Q.&@@r[D y!$$Ho#'7ɖK>ä88]}؉h8i;/¬\CF!>I`u؃/*\xJA:CACT?]k]]{|"stI|>fu2_kHh.د~{E %y9 Z 4@W@RmdD)?v k AnG!m֐D\f4&Dhy⸍l,#+=6@;N!߃1}ӧo[o_oB[І3!_x%1!a Ѽ첋U D4y p-6`5d`@% ,*?&6_l YM-5;r 5@U#"?N$k_LLPb|^z?wxꫧq>0b_Ğݐ>M 3=N$0=l3+s@$hذ" +5D6~ug<#$@;FҎ t Pڇ-|̹S%=sTA$0 %YdH@ ě[`g}? N=ڧOq:C%tn?wypˎ͹7]9IK?]; zӨP==zOz|.ʤ+k9p}o~1r 1&   P!ao~?=UH^zx[~wIK/9zC)"  ٳ^ /A#zϼ+^=$_ˮZ,#zx+|_{"  }؇tٗ_~gc=G<p>?q EvWpu_ .@.=$  %l_Ƣ3<Ͽ+z$H(ntxmbcy CHHH`_H6JK/GLp$֐6g`U׆G83W%PHHH`FU3gΠNUo٦+$1usWmsFf "  O`SHt oi )wIHHf$.98eF ]& L BZAh" X! ݑ !!}nIENDB`n$㋴i7v-ΦPNG  IHDRz3sRGB$qIDATx^ přgV+C$˖ 1ecǐr 9T 8r9R"aWHB$WwGrQ9*w1*0$&>Hd,[X~XH䷞dI  % vbbb||blLG vk/99¼gȅr0Y?HH{ŋCC؏MLD[!KJ f*(=x[I$@$,uppܹ3gzϟ*-BۂgT,^\="]Lr#  82YDuvyq<<|m8B8[U5{Қ+j-[PY9ɈoɗHHHb$y`bO֎Cڏ>`w| tѨlBg}D_e|M㗣'BZFM^L$t?F&|pB~ɪBu~ח S$BM訫Kuu=!ifF5l.QHin?;ol776ܡS߉~4I?KJg0̒.d3A@DqGhi$ Bc2CXm+䳧F悃0ÔN(i@ C㒌lFƖZ-?8_ \wuHf7g=eTШ&Xꨧ;˧1~2~A` L7&0V!F LP%B3 $, ˸@Fo :moXgLJd[< ޛJd*)4H`9$@$@p#zHHH ]k@s]sKnՍO6nٲ%c[ _ݻw]!R_te'+LB+BnIue)r{뭷f)Om["7~yShBi#.gl]t=r`K']ݽ#&om6'G WVWW`|Z1#PNٌڒY sj[= [kן+GeorBӡcv6:=. #ݤO! "m{m" ʭ: 66 gBwHHHr^e.P+K<U lWpm0[|{]v2!'TLۺ$S6i;=ρ twӻ>ȟ9q @u-3ïT!@IG |cJ,+;W>+SQ\ Ccv=B`U/B'o|HeRAkK)jS(6^Q2CX~G#~LdN~k7%q`^?23I뉺>-gTGtc4YD^frD-ߡcLCwҖs,F2:(q`hd%oS24!rmD3!ilH[ {9i/>HTz"6M}5yϔ% SIHn9ޣ;$@$@A$@ bM$@$@>#@Y  W&  0/{pNII~uUkW`_U]^ZRuᦖoeor>#x`Ѯ-wu Oۜ5//\^_YY\]]=!*^~km[6o$[G49ǣ8rJnnv^CÒucb3Qg{tHs{4ݎAkOx{ ! `37 HJ@ $Gr?bGzN$ Kr+Kv$`"92{ P 8׏Y3f %@$`OŹy' ʭ$&nύ_)*q<;HdPne(ц.F"CB$@(|ik&3klZv /$ʭ$(%|M}.JWuv  `8Z dm9['Yg"+V# {kZu^nX0xύTDӖ6[ztAϴ鷎B%D?kaB"twͬȂ˄\T,$@&@ piI@PaRz7-BY1|ztdvx[i򚢢ﷶ&U73 6p]%MXr]\ tDV ʹr*~`$(@u' /;-Œ\XrM#ҵN֮s%Oa!$@ @ F?xcSٴZEeSX~KD:"]L֚$Fsf g‚H Pn3`Z=:"ZPdlDX rB1tS0snag>)ȻnaI$ " 5V}e̟Co;W@_E, 5c)d= O@0Pnяl=]Y{[XBN$.vaa!R ɸǤ~ W&W}\zeZ}up^L FFFOn~w Pn}9t-BJF!cpKXysu_c8x4v"G0>#X=#c¢+~+q . rQ d!EYdl6ϟQ^^\Y9k9)HW67?l?fkgkUU{e٬/oW j%wF`ܾW7S-zlfYVjVcr]TҲ30S~hGZPZh?z&h4V'yٚ:uѣ([NNNaa>44RVV|u>D ȥ]]g:@ʊjk54,Yn98"=sf$?Բ7b;n,Rވ6|5=uU.,բBt^o3F_yRöhE8eGT!%Y)`PQJEkרne KV>ߺu˿.\Og5e߻wo'GGGo5k <}4]`wm̎tYZZ/~p#,#MǭnOx{Cqq7FYvvv~v,}ֺIJtʭ7ܧ6Zyuͧ ZZVh)Kv@TokMY Փ5J ;iޥͯ.[_[̜ooWTVݥ}w9 ]lٌ+E }'7m~nCsAq߆B_o(ډp8\]]Wmbԫi%Kg d![f&_AʊV :92F>ГMox.ZxEwB)3//_pS-D,+.Xm˯)zV%hۿ"o)7)C獎@'7^1+h1dh#u]׿ xW9sFhڵk1Όp{ϙ3g߾}av8QX<yE2(2hdPV&ySϐomcm?SbcQǴWo Kzߣ?T6 J Y[qѤlfMSqh=+~ zWW-i$g}g*Œ!={!rXCʝ6ehYp&}X: -*e폮婛߻Ay{ ]/t!ZբXn"G?xiYJ&&u+gmoza(k]Z|&4,Rvܹm۶&ã}я\=;? #ZCLNsRk3ἦ~$R~jP)ܿBEh+6lyFBh`lrۇ~x׮]<@UT~b_40!UW_ɬ/rONAZ*E͠е7băiQsgٜgbG ˒bF.0%{ߜdefuڏEo&xGû4}I9C<9'_R{U)ܘa^w*ܷYw p,sBzxʸ r4kܞ={#̱.3 䔭7'"K| -3ق 6/}fܿf4>b/VIAwb$y)A-,WLVnTFh ه[qaEƐR?Ī(myTD\ml+4IƥA")ʴmr.]ho0kΎg^({>k[B vvamL&_ Ņ= -(Wο?u =F^y:t%zcPXi?$yblW37??Bm_Fk/ 5w)+>=m=tx\[Fi#ɸ1^#nvAc1vǎXuk~~ -jjjJKB 6lE Ѕ@L9C ρƶ,=>ELjآBm:VbǣXL7Jp53 ;#ͅY/qc0 ("Zl$C_oAY1G477cBWLb VLbeqt ĵnrT,'`266_#ܕ{vQ^ID\K,&bucBW;aٔ;0#;0yX],@< @ Pnl NЃ \&-$@2(2h|I}K~]Ե?/& [&% PnG0M_l2B&V#at߉-i#Y[YRN֐טbT5 +=ڡ|=*Vk*+٧zl % 6&x158*rltAs%52%X*$T۠,ە0=4=kʌ-3al^Zt=Z} U>-6u" #]ODW2V#`}HFy_+?W$ Cr+C6YD R)̌Y,iZkEqR,3(GK 5i40ZJdۖ +p+n]qu/e@n3x5[D% Wz+,O=$M5M4]~<IrneHHE !ܭ:ސ 6F UK֭E*ˋsss.tW XM8s@[cQO n?c[xY-++jk믮3rlZIHH .A\!{x{{ϤNܷҢEW/~0OIHDr(qDS1;;m8*..ti͊˖-URRBW<$M b5$@$@$?Ht||b`bO֎Cڏ>788<> f̞]wJq\Xt DsԾ^8r%%fVTϞ]`7//77NOV  `2.C8{\3 co|Y+"ڢH #Zu5" VP\'cbܡa졾>,RU,$dž$Okr  |>211jd>^nEcmZʭ L+Sa[ǐu<̉iTVN$@$79o  39` ֏BHHFresHHHr^O$@$@# oUIENDB`nA;~T50JA!WqPNG  IHDR#.q#sRGBAmIDATx^}MWu Nb+c MTHeCi.ITJ,[‚ E"]E"%שky̝yyw5~}W^{VW/iA@s5nq{޳lP/7lX D`@ 3g^O?)b.aMlٲ A̻}w;}ݷہ%"@@믿y+>g9s ĹxM< V\N2wu?|~ޛvډC0"@Ȟ!Q~_9"ysX@4+tCﭷ۽Z:OF W<<ٳo©;;\4nLc=́4/O1 D,iU3V#`@kU e"@zeeH%4D ˀ=22m$DzYODe@fz6"@f=,ѧl"@2 @O L DfS6 D`Y^DY"@O3K)" ,YYf'3>%S*T8Ěن@M)-qevX݂;}06JqF۵+eźSҪpXVN|bW#%淢 x[셸J%gS[ f"g1IĎ'ȴZqT23&JCXtQMT*i]ہRN/jXFP2sAZ ~)q>+\nZ1Dr;0:LpDOw{ r&p=Jl^aW@4YgfXp*ޯa[H:hqvp|KoUz%q8Toc?T Q4$?,̉~Z8)mΨ ~.۱!ZT7o޼}}iO>}Q{߿fo3-?ch4`jvAm!מlȎi2PY:,A;b s+8͚ӓUՀ;}O( j͏Z s! A猽؀/(88 kc8Xiz#ٳm۶zu|P;G 3!;;;6{RJuDVAgjμm[nP֬ƉNAN^@ˢVc,9ֶSU^u{E̯ v+'־L az$RfmB@^,@˪Wjy!AprgGYͻ VM'bkU^TmCEnQ^v$"EJ`lۣnTcHD;f@ɞ>=U:)kwV]6(&r:Xe㞘V`"ntW1@h N[zųj٭&9bg\ڴĕPSih;&T tBisw97LspҲ1'P 1eKTכAAZaV"K~ִ=m|z˹ =,UҨNj菖l 6w* $iLVVUaddϰ"@g3[`5wZ?8nh[[ls9Xb_Ujk6hcR_OKLAb#>(+)AMvc1T18q*!Hc;8̂}$c#!S}Ǵ,V˞~Gfv;Ȥǿ 08&+A#`G8%ǪfϞx }ɞ焱4A{L_|( K=r{)]n nsuL@@h'Y"@S&a[vdc )dKix*/44Ci&kn-MَԠ "4rڥ c;iJE=Di -06ǦOQ&E|jC~Vv&De-~]4 W~}ù"l*bmk+N1 p09*Z)Œ[qp*c,A>aEӃrKzS>^e{'\4uX|s{'?HO;2O#%%p[1A*# s?I$V FBfնJZ&ɔi":X.!pL94ցP,YIdő`XD>}򓓟tr}Ozr\ aD,B}-_&yƵ:jk_!9ጢxaGI{4H[YŤtѭu97o#rf;N:lev|; 5'7޽Wp5zH\׿KO}AmtSCr@t>b0/<=C 8d``zM^)^:OSUV\…& ӳ)1jܒ6m`glbY6D9RC=L#m\ZC dν . {3M Cm{$cA#P͌ihy*gGO$ g)tF%]%jXB8<  R[o^NL%p(G4k޾!74~pGHcus,SA6 OS"@fGcz=]QP0K&M܆ N2]X&kh CQ^AM-)z)MQDLzI*AC x`56( (rG}2ǐ,F#7}Y& N q!iRXp7 ̡ԟ jU2͛7m߾mk[G knB2"@Lrb^ f;h&b0)c%ؿz V O6/N>ɏ~4u0([;Zpw<\#> rb%5yd!'&~u/3߽!/8lRBs[ni_5_| zԩW^|^Ex>E[ڵs~}8oh^IF&VyV" ~w* ųg8y'~o}8;>XyaC / Ȕ7@T(#&& V~m[1'(DX4)=oX;M's!CB<.}v@= @BHIFBp 4f\xO3#@fgo&)dk_xr6ZǬ@iZя,$Ƽc; †uu3@g1di R?dKW .}G+P F^x^^S,:M&Y"4=sɜV HIƤA&mpd#!$ƭ=dRK.yD4fiq,A;ҰӤn݆578|eQrx۶ݳ|ȑo=O<̩SgΟҥKӅ%NxrS=b촭ꩺ1c*-JÕ5-ڛ1mkdt!f3e6GN3Sϫ?;Ser@~7?}XMܚ356+  #֭`1M[/L%eڶ^}UӶWlmSiE7YC3CḪ4Jow GTB6xL, ~Ewګ߶>sR`f leo{ϼ[+_q66U'P5YYݡ Jcܔ>7{C'X ?KWi tkL27׉eY u m\vW!BqL{} r 12MF34z_;NW ',ϡ0p@|h`(^Gf'@eOI@idm+?␼Rӡ0< TƦD!pA(2X`K77W50ˋ74@0q~gL3]),Ӡ4z>n#g#a  lL;T]6'nI h dč'XodϬV6{#QB=`1T$D`9!KI|sSp:N"2'ѼfVd ? }z3:Ayp6MHOQalFS, s1|k9M53>| V-#4ATI{';vH̦'p34Oydőoq:#ǦAQ77g<e@`i?[)}_^{->I|s~[Sm&'2!&}#wⳘRNP-A扯d&>[gN~[5| qعsM=?wa4/F@'>M'+,gj"@H}v "D, 4 ӕ4"0RiF1T"0,LW"@HiP-"@ @O0]IC #EfC  =t% !Dzv "D, 4 ӕ4"0RiF1T"0,LW"@HiP-"@ @O0]IC #EfC  =t% !Dzv "D, 4 ӕ4"0RiF1T"0,LW"@HiP-"@ @O0]IC #EfC  =t% !Dzv "D, 4 ӕ4"0RiF1T"0,LW"@Hi̅Z+m檎Dn8S5hdr徲2ٺuˮ];{}߽Zoڴ fmm-?V&rTT+`8J8Nut3ĺ M/ w fV=U?}gw0]'|sR˗/^<{'_:qǎswuLagK!t^[t|p5m  sPmG5fNm,u> HPY팞N'R :˙I(25\|PcIVyJ;jdpPGh`}UxWO9]C;hNm% u/qBj'ڶ|:3wؘƏo+HPYi'>4!4ԙ,A^yι։ϡֿ9X {Dgvt7B97oo V8C,A\=d&XZg6N˂ƞ8d[ &'Pꑕ 䗂m&f^^70{a2F "%DiL75V+q#$e.; SBĕDVh9*ziHm0SYJnt4%wh)Tުp(g8NP9XꯜOH#kE"yPTV6W W/ ۈ4Fۭf<!gÔjҋ9 &Ch5'+**+3bjD]4 L41~v?ݥƩך[ec*iXjި,L+c8 n8Bm2t hQT("FEN,<\9OTVV=4Sâ#Py}D`pVk0rf %OZr=`A Q8ZF2+3.O=Aۉ @+O345"D,4YH@ UTD"E&   D z*ؘ"@d!" DT!@OS"@@z,D$ D*icc"@"@OD"P=M|lL Yi"@ D =M""@@4U1 DdBD"@B >6&D,4YH@ UTD"E& Ѳ,m$,mN uwkW82nw8 &8Pk4tD4+EsH`M V56mق~JqlPҹ`([{4;tv5"ª\ }LJVzGh %j; ^vԮcNQ qJV;qpsFN5/K <8-8y쬏vlyf0ܷo}G?~`'$vڋMkF jg 6c *IN~(6*!:{j[E/x#dVmeLm~+G%Z%PeVF֓[e 75g3Eg-,Q%uh WAUEM)}MB6贰}SNS|#G2h" !E'zLdPBU E5ͧw2'rgkJ| ɞ>8C5mOܮa8Yl;(꒮t(K0Yz$_KR!P1:3F|mB@jz))}I[]wTjRi2C^Xt8!7Q(20}ʷTA 7ԘAUsضei!/B0i+${[5g֭[vڹn?tע~ӦQxBIFd4ZZ˗WW/=ɓ/8c~_9;79jf["@#@OLjD`Jj`,X"@)YPBSw %G6e[&njr&KH=My$&MCKw61\Hʡ_Hh4l3CK$:'4VȖ" ixgE>U\ۋ1AISj Dv!V&ҝV=%ix E&"az&ds`giӛulEj+n;88duԊ}ξJD+N,1$AVuU?+*dxXI0i;$N[}vUvbݗ5D4<!xf!vI-pPdm%(2'D`:Lؖ5ҩ*-S+|V/i%Pz5$۶^ȳ! {~BtXJDU^Y9z4_Ac_)1'z #05v/1ib}W tцCl$&D FBy'kKjQaRN39zYJAz~di/;T+k C" i< gI?|N0%3"U۷&8 ӎ-Jud}Ԫ [z>n N82isDixva9/L"P=M J?d)Y"0C/QG"@<#@O3Ͻ׫Y(yVr{4Vp wnHiK`))GV}x.R^+&8b(խ!3!_gvB=k9T6I6[JmݙmnW1em/ kjmwh;D `ohn (hNFg.Ҋ:4~(4%K@苏5Ϭ-*~ dTΉye:AGҳ|ZJ_P վ-ms/G,Bθ9 &njʑɪ;hgɥ)EUZb:$ҫjY>v b;4*EL9~= gRIo$ QabYVi *׳P%`:֜Dn3˞Y/DZw9jU[_1u :a)tfgkѠ gJ/o~PN3왜6|^krn5YTb2VPE>JV)z biT'G*`&, u [ͭ\E008JǠ(ǿJ:µdPxV*YZ|Vw Ƨ\sygٞ={3L-̖[nٵk{Сw_MFʻDGҞGAd5N8l\|yuٳo<҉?vCcCZ"0 ҉Q8JC/Qq *:E-Vy-%nOOĝOӉ SA`ڞu=jRrP^a⯿Fz@i{As_{&weȲjbb)LsCϯ@N@lix10C56 >Qb{4&Xξ&F JL SL=4 fJm*7sBYV ѾEcA>q n|SRұͤ"@rLl= N {HN]Ki8} gժ2tIN.'iC쬚00-1h#w61hGd۪$h_CjmHse nu@ΎUە3?Ë/~ᇧl ˢ#0[[+.Yմ ۴,ǹЍr ÃLGttC;jϞ>}k^䗿`{Mɓa 4Li7%2<(1<'DRI=gid^[ۂ ^r冤UM-B!TPB{6Lnu'{'7{86<0A# 'n)!8pA2.n Pݴh+%&HQ# |y=KOK{3ؔTB^-S(4$jBhmVR D({̒~L2c>tq2ܹ.Ψ5sD~Q ObM@E" 9"ܐCP#d%=6 ?iDỏ?YHl&?aJ(Ql0j\GKZ 4ʧЕ1U+0McbS0&VqE ,/哟xJfL6MpE[?& P8 ӂ^<4A: '!z/7W˚cǚ6(`rΞ{ٷrHMt3#jA6*fMHLuZYm+G>vV+ÝKxC"ѭ>nAKǰ?'0MnM;1&aJ@L#7idlX!عђ 6ڂ+w`b+4]uc;"@fRF~O:җ6.)/)v$r5H=|#h8B|#^j%ؤVILWqGJb $YrSOpu dV,]j w$f^ iDAj*!l+iPHQMkSa/V!u .9zIiiB@PrF$ 2]z_eALCh @T$cy3G\dA{'  bM`3Hy` B͸\dXy۷#p-_.)Ж$D-X0b>}f&V ArL `߶m7Ӭ\/6Pj @C~G?!_|qrduuկN g'UCoM>h~!q\ 6(y͓[nĚ8OPByAf R uea׿ksHY >y|dԩW^|^E_w^ype=\XyZڒ%~եLxH/n/4͆2RXLY>_jֻWmØ2yBmɂ]D ):f]1@<85YwBşZD%8lX|ֲ-O/"4\dyM<}K9ť9:g5[ٚlsuuSmPkuj)&ݛz5b4ā= X®$ 4Vó[G"CӭUwN,wt( t`&C"0vO3)zjCSA\ip$nޔ#VE7{$_4[ i ؾMYa1e gJiX6-/ǔ+ecUM9vOdRPAYY vj6XrX{h=H;u)+89ⴊW>chOM+龒1nal}ܗل_mȣ6&小2Kze :' ,4<2Θw?'u^<7l485JbIw9EhII|ǾgZyL4<޶o8rGOHSWr;|x S~i%S\ X%v w_:GqJz~ O>ԈhrLms$<|<|<u+>5}=͘\zʒ^J7/7ǢifZVSmW!2edp7i.4yxV+ky ^,qPC BȤȧRn8롑CkmCDgȶpЗi <7|6d %qHx"b`o;".Gr n @[FTL#'PpvNh.h#A[&k{0VrGӌiS%" qq- v8 1֥궀48Q~M!h3itCql a1KαCbN"E-*i䨘E= J>J(X#UL34G@ Ye?")+UJ?[F} p!}!/" -~ ߀- B z'6D&v CVtH| q !AhC%)l-nDnJ!Al'oȆ/wji'ԈHaEH2c1 AȪgHK]Z⻟r] <\^ݏ_gvYq=LЭs'D^_5唏Xb.mheF[z:*NהُH~חu` 3< r]vp,8'%nx pHC"wS>}*p #`bw9ȧVn_&YpIF|_~A}y>l;71`jF< #,-8AhJ@-aYd79 4sBQP"%] n]@SgK/w(iF!TLNH fg1喆ܪAA| S%|(q䫚)hy.ȁ?@ bonWHB` 3|DKrI Y/vRܻoM%#X@o3$;X׹|KPcg4A BLAXNY|WW_֎] )oOڿ{#%q֩9 C+櫴iHs! \@ppC?\gR7hXg'm`v5PwX⛛okә^*&|֭wڹ˃^l۶|j|N"@Gpas>y򥧞Ss)Ԭ^rpOs;=wu?|~ޛinBO3N"@Y]?/ LJ[u.HWk%G5v;,ABPu/}? Kd82KqN-~7+߾,)}YʯbsnAxD$[ . ^?~_mVU8y_U }F3J?[ɰjxU%e=~x3-g˟<@U xԭx {|CrQ%xi|bQ{ypA=wOT^/}׸ _WAt؈[.yTZw#]me/vsik.C]jƳHVIғ[dp4xl TI@# [me&Јc7V@ 4 &Pfo8*xcl Y@# ^wP*ם.Z) oBG :8y(ʷ^Qk\C`|QlN m%9J4P-Wb o9.tM'5t$W OGu̽"}ӕkdTzE]V͋X;Fj=X4uVfuv:\ 0kSwީ{TZོy/OȥzF۽k8]CNݧΫÌ{TʀL^vZTw]wu^=fܣy%V%o5;ꁗ=FU&o5tђj}UMc=C ^Ncj<բ= 'x%xWu9x+?;;j:Rާ;/p)8U(^[ v5(N9xOӷtB}ݭ60tQC>4ލ۸IJw8Iۥƫ4h꧔P=:1'1nE 8Y!>k=a7wSj\uZAܡ P!gAanɀ4W~'H xg 48eTwZis/$x;@^ִ%:jaTW(P(7lG#s:_}cl<\ n硫].ܧI뿫=bOASȜ' O(lABEBciV-KycRIclT5ݽ>eGQrh%a %d}L*e;LXl9\U[a6V$"xK3rW*?.!/ ߸xJlv(<';'L>+ORĵl8Xm: TgWgr;PV^ɋkw"bU[gLӖNf$?ն{Ԓ^-%Qf<2p n*k?rpJ aAܠϾ% e zT绐d,s7ӖL.p v{8^\J4Q8z7`j_e<4aȁ'$c2 ~fy9uC8h1;QF"0W]ͺZs]ًSH>s~o)^%13_%-vw~ΜL$q} ٷ!C!҄MUDEzoEEU;L]mjCZY6YK_:ћe`v] %wY%0sxyȻ0Fl<1 \3H1loø=AdL gNW-ip aD,MfOox5XF1xF淡%R/ l_-?R 6RY00|NZjlT{t퀷QW.ź"u3-Jjj;^t^> xոi4s+O)yCg&ƃ #0ٷ;-VCe.R͜ګp׫ ^&`kExwu6 qV=*P6-;gɰ5;>{pUJn^Äam 6 V<9[)ZiQc[Y0xX#n=~]:x/5Xz&O>$d^0 x]:l)G4EOJȀȖzKUCT6^MϷ4SnVN3`fq!]W x ) ,<2AkSsٌt tP<I xJV.LJc x""xeUsٝz4o0nQxN~-]d1i;.d%0],능Zx^-`, x]T+OLW<+j# x*'uRt<0]EX'KZtYbV:W " x^W,JGQ ;.Bk_kxgյ_^j m|k2P e5}i=g23 0T[ x_Xk6cs[ײCݰtQ2j~NjVgӆl!n(r[࡫{ZaT=Mlڪ"xM.j$.mFz7j6ն@6i|5ӾMnkjպxaxhT۪Rܤb7ɻm-ϷtU}eYqW3JW{&f N}O gSM&^e'2ԟx0?#oULGXyOxg$e?cuQSL/j__\m=B캍>x˷'F_Q4^TީAߡ^|~Ǐ oH'0&7T"R/.RZr& A4޻DnnxY{Z0["~ptB9A@ q ֖ni7O(,X"T`D̎}Hs<cAOh AEs՚$izM':9x ڀ=3H\Әh~C§ Ux):[[wo]<: !C2~x[/PDsV 0Dڍh8v<HHcmVy$J!Fꂹnť bl4'_H[ج O+X9[z} r1Gb<݁oK+ x^ Ċj3 3lSBTxk',XQy> eeѤO a`mP %介k>x!&J 3hoE:إqI6nNEB+p :!ǀ by¡ t"]fpĢ]EB tꆎ~yNpi#N& {N&-曠8-=;85@~|24؉̰E]5"衇q qv06 iTrb]X 80#l<,5*rȉ`P=,VKJh;O8 ;hޒ8guH݅RFsĘVW66rj +;i<ŃK XOyU`яݵ:k%,[[$}6MĔYR3 14ųؠ1>oP^٧,]jSCryt Yu ^KQ|5D]A:˻xD4MTϕ&tԀ\[Uk wwJƯ◄.BWǀ"wa4|G3EKªiwGQ kJ-~T ^m1kГcS[K$oF6s%XekQx)=uf]qҼ=oM2cФΩĿZehjƾ,T1)_v.J-]vRX Zk3&v''~ )OL)>YSSxV5㌐^Oڤ=xxx6xr]di9ļ uǯ f|G%}<1>F=Πv:Cɚq'63Vx n?d+{.7QM<[a;wV:Z6LpWC>4-p(xGڛqnף[@ xᠻweϸƣqw{aT[=)zhA^!Ӗ3qz>Pz<9>̹N; X$E㝳 A VW Px}_w:>xv #eN~gym.Kji+6^Kq3A< ZՎ< "rkߪ#Hi3Sx@s$2=75Sg<g. 3pYTK_R|t=\ˌf3lk<9n~=tջfvW=nY4 ^'v4}zjͥ:}s'6!b@?^o-|ih/dz7ޥ8sQMo讖Odpx߹\mitXjitdLZm$ Cޣ)[˜L],;No"rߩdzS]۩M%m_DTS0E9msC-]/gM'엓 t޸J{67.vZ[o-]a vn)U#HBc7XڲsK `/Pj<ԳzkW~hXl?%G2AQ"1e`E$z^Po:G_^hp]hywn/ROe6;^o{a8"5%BkяGa~5i7# vE6-~7oGC~Hpf[`_X3"Pmې#3Rڢ3#lq/0<ҘdFuN{q-x#xx(Ó fΪ`1q<S\[4F;vIB,=&_#m]޹˅ŧl[T&'T]Ly/x5/CkcZxLDH#󖈑θbuQ-j-z;9vk]6Vø4QGca~iF5;:Bϊ1l+NޙCSW1pq gxeW'u!{|f k1%y,݂=%]q⚦. wp >*A;r} F޹V>D^VʥLgL\~G{\̴RJ;iЂ߃ ʡAq9ǍSӔW+Sl+x 8kNʦ/W;js2|M$oފl<dC6)%8)Juxx,xIzV$E(iqS;CrN,`T0˝w pt &:ZjPC]-aoCCzxG۸XH2& eOy2cWO/ 4t&;oǦjn!=ҽ/,Zmȁ}Msv?/y+UKkj V1D9SSicl vYʝ;J0ޣE0)+ubKEK5 m>{gt]ZW)ȿ.UD ZK3Oj%6esژe=6-SkOs;U^O͹J%E݉_qٱ!n?}#A ȨS6^6P]mu.k=eC;i _a3 3j }Bʠǣa{oPHo f x[lޅMC#?^WI;: 4WZ"RՒN/U8c xn[]qHLlCچgCj\u^kvX~V]X-Xf~iA3+B:;N Q/iu%jEFs6~Sp1xhtv{4&vW+P8oAU@KlknQ5hW2moS[qSt\Z'MEǢSa#g/x#A!.Wqmx9W7z xSsɝRo_*caƻJW[x?\F u \Qm͡1x|&;̓ xt`7xZKZu MZղNlFt䪍G3]߅jǓQm<)5˨YWg.2k:F!]z ն;sޅGS.g2᭺tZFq_kUTL3>%T[o!#֨@VtxX!ƙ4w*/%| fṴQ9\A k$e=XLl[|Hhyq1*mPEZQ9Id^29 a~TwC[X3Ní,²5oW&%z xJ_s2Z]I@JN- x%ו$%ZjK"w%+IJ:$ D 4lEDjrNk xE( 4DjrNk xE( 4DjrNk xE( 4DjݜcMj#KE@bm4J Rls|W+F7U12wP#u_$K;w["}ɝ7wt*}G ~Ç_&&Y`%黌<Ch" q ,$y^ dw}Zg^LJ/_zn2TXIa2/OwA5ˌ;;(U7/I?7,/iiNɛ_>#q x=]ÇGxRƼDO5ΒL*B*ph,@, Header  !, @, Footer  !&)@!& Page Number<C@2< Body Text Indent h^hXOBX URL or Command !`5CJOJQJ\^Je5)&*s  #    ( p q r 12CBCKHIlm|mnvn\]eOP"#op@AHI-.Gg45W   { | h!i!!!!!!""J"K""""#6#Y#z###$$$$$$$%%Z%[%&&&&''0'1'P'g'h'''((((((2*3*U+V+c+d+++++,,,,4-g-------..R..../C/n/////0000112222\2]222"3`333$4f4442535k55555"606^666627U77777;8<8_888::;;X<Y<r<<<<<<<==N=O=r====>>/@0@F@G@@@@wAxAAAAAAA}C~CDDDDFFFFGG4G5GLGMGWGXGlGmGGH*H+HHHHHUIVIWI{I|I}III'J?J@JKKLLLLJLKLZLrLsLLLLM#McM}MMMMOPQQ"R,RURbR|RRRR S1SYSSSSST=TfTTTTU-UYUUUUUUUV:V`V~VVVVVW6W[W|WWWWWX7XXXlXXXXXY#YFYiYYYYYZ7ZYZ{ZZZZZ[:[X[}[[[[\6\[\\\\\\ ]]:]_]]]]]^8^c^^^^^_=_b______ `)`@`A`q`````a,a^a}aaaaab;b[b\bbbbbc%cNcmcccccdd!d"d1d]d^ddddddddddddee(00000 0 0 0 000(0 0 0 00 0 0 00 0 0 0 00 0 0  0  0  0 0 0 0  0 00(000000000000000000000000000000000000000000000(000000000000000000000000000000(0000000000000000000(00000000000000000000(000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000(00000000000000000000000000000000000000000000000(00000000000000000000000(00000(0(0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000(0000(00000000000000000(000000(00000(00000(000000000000@0@0@0 0++888;4Ji7AF G %*/49@ELPW[:_cfhi8:;<=>?@BCDEGHIJKLMNi9=VeX+25;!Ob$By|h{b$IV@AoSKb$㋴i7v-Φ$qb$;~T50JA!WqAA@z(  J  # A"<  # AJ  # A"B S  ?OOPeQ "4!4!t4q}_gioryzAF:=\_    | n!q!!!!!!!!!!!##2%?%0&5&&&''Q'f''(((**+ +X+Z+[+b+x++,,,,-3-T-f-----..00Y1e1112 222L2N2^2`2v2z22222222222223!3#3%3;3?3a3c3y3}3333333333344 4#4$4.4=4A4\4e4g4i444444444445 5$515<5H5e5i5m5q5u55L6X6 9999t::A;M;;;;;<<<<<<<<<===->9>^>h>>> ??0?5?;@E@iApAzA|A}AAAABBsCzC?EFEEE\FbFuF|FFFFFG#G-G3GTGVGYG\GGGGGGGGH HHHH#H)H;HGHHHHHIIbIzIIIIIIJJ JJ&JLLMLOLRLYL0MVMNNOOZRaRgR{RRRSSUUUUUUUUUUVV"V9VeV}VVVVVVVVVVWW5W;WTW`W{WWWWWWWWWWXX6X?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry F9k5 Data 491Table4XWordDocument PSummaryInformation(DocumentSummaryInformation8CompObjjObjectPool9k59k5  FMicrosoft Word Document MSWordDocWord.Document.89q